Module: Aska::InstanceMethods

Defined in:
lib/aska.rb

Instance Method Summary collapse

Instance Method Details

#__aska_aska(name) ⇒ Object



75
76
77
# File 'lib/aska.rb', line 75

def __aska_aska(name)
  self.class.aska_named(name)
end

#__aska_aska_stuff(m) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/aska.rb', line 51

def __aska_aska_stuff(m)
  if respond_to?(m.to_sym)
    self.send(m.to_sym)
  else
    m
  end
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



71
72
73
74
# File 'lib/aska.rb', line 71

def __aska_get_var(name)
  # attr_accessor?(name) ? aska(name) : 
  (supported_method?(name) ? name.to_sym : name.to_f)
end

#are_rules?(r) ⇒ Boolean

Returns:

  • (Boolean)


86
# File 'lib/aska.rb', line 86

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

#attr_accessor?(name) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/aska.rb', line 78

def attr_accessor?(name)
  self.class.aska_attr_accessors.include?(name.to_sym)
end

#look_up_rules(r) ⇒ Object



85
# File 'lib/aska.rb', line 85

def look_up_rules(r);self.class.look_up_rules(r);end

#rulesObject



45
46
47
# File 'lib/aska.rb', line 45

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

#supported_method?(meth) ⇒ Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/aska.rb', line 81

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

#valid_rule?(rule) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
63
64
65
66
67
# File 'lib/aska.rb', line 58

def valid_rule?(rule)
  rule.each do |key,value|
    begin
      # puts "#{aska(key)} #{value[0].to_sym} #{get_var(value[1])} (#{attr_accessor?(value[1])})"
      return __aska_aska_stuff(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)


48
49
50
# File 'lib/aska.rb', line 48

def valid_rules?(name=:rules)
  self.class.look_up_rules(name).reject {|rule| valid_rule?(rule) }.empty?
end