Module: Aska::InstanceMethods

Defined in:
lib/poolparty/aska/aska.rb

Instance Method Summary collapse

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

Returns:

  • (Boolean)


105
# File 'lib/poolparty/aska/aska.rb', line 105

def are_rules?(r);self.class.are_rules?(r);end

#attr_accessor?(name) ⇒ Boolean

Returns:

  • (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

#rulesObject



53
54
55
# File 'lib/poolparty/aska/aska.rb', line 53

def rules
  @rules ||= self.class.defined_rules
end

#rules_valuesObject



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

Returns:

  • (Boolean)


100
101
102
# File 'lib/poolparty/aska/aska.rb', line 100

def supported_method?(meth)
  %w(< > == => =<).include?("#{meth}")
end

#valid_rule?(rule) ⇒ Boolean

Returns:

  • (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

Returns:

  • (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