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