9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/bit_attrs/bindings.rb', line 9
def self.create(klass, attr_name)
ORM_BINDINGS.each do |orm_binding|
next unless orm_binding.should_be_created?(klass)
klass.define_singleton_method "with_#{attr_name}" do |*flags_list|
bitset = self.new.send(attr_name)
flags_list.each { |flag| bitset[flag] = true }
orm_binding.with(klass, attr_name, bitset)
end
klass.define_singleton_method "without_#{attr_name}" do |*flags_list|
bitset = self.new.send(attr_name)
flags_list.each { |flag| bitset[flag] = true }
orm_binding.without(klass, attr_name, bitset)
end
end
end
|