9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/internal_name_helper/methods.rb', line 9
def self.included(base)
base.send(:include, InternalNameHelper::Helper)
instances = base.all
eigenclass = class << base
self
end
eigenclass.class_eval do
instances.each do |inst|
method_name = inst.dashlized_internal_name
define_method(method_name) do
inst
end
public method_name
end
end
base.class_eval do
instances.each do |inst|
method_name = "is_" + inst.dashlized_internal_name + "?"
define_method(method_name) do
self.internal_name == inst.internal_name
end
public method_name
method_name = "is_not_" + inst.dashlized_internal_name + "?"
define_method(method_name) do
self.internal_name != inst.internal_name
end
public method_name
end
end
end
|