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
|
# File 'lib/managed_enum/has_managed_enum.rb', line 10
def has_managed_enum(field, possible_keyvalues)
if possible_keyvalues.is_a? Array
possible_keyvalues.each do |possible_keyvalue|
ManagedEnum::HasManagedEnum.define_instance_methods_for field, possible_keyvalue, possible_keyvalue
define_singleton_method possible_keyvalue.upcase do
possible_keyvalue
end
scope "#{field}_#{possible_keyvalue}".intern, -> {where(field.intern => possible_keyvalue)}
end
define_singleton_method "#{field}_possible_keyvalues" do
possible_keyvalues
end
elsif possible_keyvalues.is_a? Hash
possible_keyvalues.each do |possible_keyvalue, possible_value|
ManagedEnum::HasManagedEnum.define_instance_methods_for field, possible_keyvalue, possible_value
define_singleton_method possible_keyvalue.upcase do
possible_value
end
scope "#{field}_#{possible_keyvalue}".intern, -> {where(field.intern => possible_value)}
end
define_singleton_method "#{field}_possible_keyvalues" do
possible_keyvalues
end
end
end
|