lib/simple_enum.rb in simple_enum-1.6.4 vs lib/simple_enum.rb in simple_enum-1.6.5
- old
+ new
@@ -174,20 +174,20 @@
# raise error if enum_cd == column
raise ArgumentError, "[simple_enum] use different names for #{enum_cd}'s name and column name." if enum_cd.to_s == options[:column].to_s
# generate getter
define_method("#{enum_cd}") do
- id = respond_to?(:read_attribute) ? read_attribute(options[:column]) : send(options[:column])
+ id = send(options[:column])
values_inverted[id]
end
# generate setter
define_method("#{enum_cd}=") do |new_value|
real = new_value.blank? ? nil : values[EnumHash.symbolize(new_value)]
real = new_value if real.nil? && values_inverted[new_value].present?
raise(ArgumentError, "Invalid enumeration value: #{new_value}") if (options[:whiny] and real.nil? and !new_value.blank?)
- respond_to?(:write_attribute) ? write_attribute(options[:column], real) : send("#{options[:column]}=", real)
+ send("#{options[:column]}=", real)
end
# generate checker
define_method("#{enum_cd}?") do |*args|
current = send(enum_cd)
@@ -242,26 +242,24 @@
values.each do |k,code|
sym = EnumHash.symbolize(k)
define_method("#{prefix}#{sym}?") do
- current = respond_to?(:read_attribute) ? read_attribute(options[:column]) : send(options[:column])
+ current = send(options[:column])
code == current
end
define_method("#{prefix}#{sym}!") do
- respond_to?(:write_attribute) ? write_attribute(options[:column], code) : send("#{options[:column]}=", code)
+ send("#{options[:column]}=", code)
sym
end
# allow class access to each value
unless options[:slim] === :class
metaclass.send(:define_method, "#{prefix}#{sym}", Proc.new { |*args| args.first ? k : code })
end
end
end
end
-
- include Validation
def human_enum_name(enum, key, options = {})
defaults = lookup_ancestors.map do |klass|
:"#{self.i18n_scope}.enums.#{klass.model_name.i18n_key}.#{enum}.#{key}"
end