lib/bitmask_attribute/value_proxy.rb in bitmask-attribute-1.0.0 vs lib/bitmask_attribute/value_proxy.rb in bitmask-attribute-1.1.0
- old
+ new
@@ -31,11 +31,11 @@
#######
private
#######
def validate!
- each do |value|
+ each do |value|
if @mapping.key? value
true
else
raise ArgumentError, "Unsupported value for `#{@attribute}': #{value.inspect}"
end
@@ -51,10 +51,10 @@
def serialize!
@record.send(:write_attribute, @attribute, to_i)
end
def extract_values
- stored = @record.send(:read_attribute, @attribute) || 0
+ stored = [@record.send(:read_attribute, @attribute) || 0, 0].max
@mapping.inject([]) do |values, (value, bitmask)|
returning values do
values << value.to_sym if (stored & bitmask > 0)
end
end