3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/decay/active_enum.rb', line 3
def active_enum(**rules)
rules.each do |enum_name, enum_values|
enumerated_type_class =
if enum_values.is_a?(Hash)
::Decay::EnumeratedType.create(nil, **enum_values)
else
::Decay::EnumeratedType.create(nil, *enum_values)
end
meta = Decay::Metaprogramming.new(
class: self,
enumerated_type: enumerated_type_class,
enumerated_type_name: enum_name
)
meta.define_enumerated_type
meta.define_active_record_attribute
meta.define_active_record_bang_setters
meta.define_active_record_question_getters
meta.define_active_record_scopes
end
end
|