Module: Aska::InstanceMethods
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args) ⇒ Object
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/aska.rb', line 43
def method_missing(m, *args)
if self.class.defined_rules.has_key?("#{m}")
self.class.send(:define_method, m) do
self.class.look_up_rules(m)
end
self.send m
else
super
end
end
|
Instance Method Details
#rules ⇒ Object
24
25
26
|
# File 'lib/aska.rb', line 24
def rules
@rules ||= self.class.defined_rules
end
|
#valid_rule?(rule, rules) ⇒ Boolean
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/aska.rb', line 33
def valid_rule?(rule, rules)
return false unless rule rule.each do |key,value|
begin
return eval(value)
rescue Exception => e
return false
end
end
end
|
#valid_rules?(name = :rules) ⇒ Boolean
27
28
29
30
31
32
|
# File 'lib/aska.rb', line 27
def valid_rules?(name=:rules)
self.class.look_up_rules(name).each do |rule|
return false unless valid_rule?(rule, name)
end
return true
end
|