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
|
# File 'lib/simple_flaggable_column.rb', line 16
def flag_column(name, symbols_flags)
flags_symbols = symbols_flags.invert
define_singleton_method :"#{name}_flags" do |*symbols|
if symbols.empty?
symbols_flags
else
SimpleFlaggableColumn.symbols_to_flags(symbols, symbols_flags)
end
end
define_singleton_method :"flags_#{name}" do
flags_symbols
end
define_method "#{name}=" do |symbols|
if symbols.nil?
write_attribute name, 0
elsif symbols.kind_of? Array
write_attribute name, SimpleFlaggableColumn.symbols_to_flags(symbols, symbols_flags)
else
write_attribute name, symbols
end
end
define_method name do
SimpleFlaggableColumn.flags_to_symbols(read_attribute(name), symbols_flags)
end
end
|