Module: Aska::InstanceMethods
- Defined in:
- lib/poolparty/aska/aska.rb
Instance Method Summary collapse
- #__aska_aska(name) ⇒ Object
-
#__aska_get_var(name) ⇒ Object
Get the variable from the class If it’s defined as an attr_accessor, we know it has been defined as a rule Otherwise, if we are passing it as a.
- #__aska_send_value(m) ⇒ Object
- #are_rules?(r) ⇒ Boolean
- #attr_accessor?(name) ⇒ Boolean
- #look_up_rules(r) ⇒ Object
- #rules ⇒ Object
- #rules_values ⇒ Object
- #supported_method?(meth) ⇒ Boolean
- #valid_rule?(rule) ⇒ Boolean
- #valid_rules?(name = :rules) ⇒ Boolean
Instance Method Details
#__aska_aska(name) ⇒ Object
94 95 96 |
# File 'lib/poolparty/aska/aska.rb', line 94 def __aska_aska(name) self.class.aska_named(name) end |
#__aska_get_var(name) ⇒ Object
Get the variable from the class If it’s defined as an attr_accessor, we know it has been defined as a rule Otherwise, if we are passing it as a
90 91 92 93 |
# File 'lib/poolparty/aska/aska.rb', line 90 def __aska_get_var(name) # attr_accessor?(name) ? aska(name) : (supported_method?(name) ? name.to_sym : name.to_f) end |
#__aska_send_value(m) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/poolparty/aska/aska.rb', line 59 def __aska_send_value(m) if respond_to?(m.to_sym) self.send(m.to_sym) else m end end |
#are_rules?(r) ⇒ Boolean
105 |
# File 'lib/poolparty/aska/aska.rb', line 105 def are_rules?(r);self.class.are_rules?(r);end |
#attr_accessor?(name) ⇒ Boolean
97 98 99 |
# File 'lib/poolparty/aska/aska.rb', line 97 def attr_accessor?(name) self.class.aska_attr_accessors.include?(name.to_sym) end |
#look_up_rules(r) ⇒ Object
104 |
# File 'lib/poolparty/aska/aska.rb', line 104 def look_up_rules(r);self.class.look_up_rules(r);end |
#rules ⇒ Object
53 54 55 |
# File 'lib/poolparty/aska/aska.rb', line 53 def rules @rules ||= self.class.defined_rules end |
#rules_values ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/poolparty/aska/aska.rb', line 75 def rules_values returning Array.new do |arr| self.class.defined_rules.each do |name,rule_array| arr << "#{name} : #{valid_rules?(name.to_sym)}" rule_array.each do |rule| rule.map do |k,v| arr << " #{k} -> #{__aska_send_value(k)} (#{v[0]} #{v[1]})" end end end end.join("\n") end |
#supported_method?(meth) ⇒ Boolean
100 101 102 |
# File 'lib/poolparty/aska/aska.rb', line 100 def supported_method?(meth) %w(< > == => =<).include?("#{meth}") end |
#valid_rule?(rule) ⇒ Boolean
66 67 68 69 70 71 72 73 74 |
# File 'lib/poolparty/aska/aska.rb', line 66 def valid_rule?(rule) rule.each do |key,value| begin return __aska_send_value(key).send(value[0].to_sym, __aska_get_var(value[1])) rescue Exception => e return false end end end |
#valid_rules?(name = :rules) ⇒ Boolean
56 57 58 |
# File 'lib/poolparty/aska/aska.rb', line 56 def valid_rules?(name=:rules) self.class.look_up_rules(name).reject {|rule| valid_rule?(rule) }.empty? end |