12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/business_rules.rb', line 12
def define_business_rules_for(name, &block)
self.class_eval { include InstanceMethods }
business_rules[name] = block
self.business_rules.keys.each do |method_id|
method_name = method_id.to_s.gsub(/\?/,'')
self.class_eval <<-CODE
def #{method_name}(reload=false)
@#{method_name} = nil if reload
@#{method_name} ||= validate_business_rules(:"#{method_name}")
end
alias_method :"#{method_name}?", :"#{method_name}"
CODE
end
end
|