Refactored accessor definition into methods
This commit is contained in:
parent
d4280d3eca
commit
fde35639d8
@ -51,15 +51,21 @@ module Mongoid
|
|||||||
values.each do |value|
|
values.each do |value|
|
||||||
scope value, where(field_name => value)
|
scope value, where(field_name => value)
|
||||||
|
|
||||||
if options[:multiple]
|
options[:multiple] &&
|
||||||
|
define_array_accessor(field_name, value) ||
|
||||||
|
define_string_accessor(field_name, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def define_array_accessor(field_name, value)
|
||||||
class_eval "def #{value}?() self.#{field_name}.include?(:#{value}) end"
|
class_eval "def #{value}?() self.#{field_name}.include?(:#{value}) end"
|
||||||
class_eval "def #{value}!() update_attributes! :#{field_name} => (self.#{field_name} || []) + [:#{value}] end"
|
class_eval "def #{value}!() update_attributes! :#{field_name} => (self.#{field_name} || []) + [:#{value}] end"
|
||||||
else
|
end
|
||||||
|
|
||||||
|
def define_string_accessor(field_name, value)
|
||||||
class_eval "def #{value}?() self.#{field_name} == :#{value} end"
|
class_eval "def #{value}?() self.#{field_name} == :#{value} end"
|
||||||
class_eval "def #{value}!() update_attributes! :#{field_name} => :#{value} end"
|
class_eval "def #{value}!() update_attributes! :#{field_name} => :#{value} end"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user