8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/bitmask_attributes.rb', line 8
def bitmask(attribute, options={}, &extension)
unless options[:as] && options[:as].kind_of?(Array)
raise ArgumentError, "Must provide an Array :as option"
end
if default = options[:default]
after_initialize do
send("#{attribute}=", default) unless send("#{attribute}?") || persisted?
end
end
bitmask_definitions[attribute] = Definition.new(attribute,
options[:as].to_a,
options[:null].nil? || options[:null],
options[:zero_value],
&extension)
bitmask_definitions[attribute].install_on(self)
end
|