lib/simple_enum.rb in simple_enum-0.9.0 vs lib/simple_enum.rb in simple_enum-1.0.0
- old
+ new
@@ -173,12 +173,13 @@
# allow access to defined values hash, e.g. in a select helper or finder method.
self_name = enum_cd.to_s.pluralize
self_name.upcase! if options[:upcase]
class_variable_set :"@@SE_#{self_name.upcase}", values
class_eval(<<-EOM, __FILE__, __LINE__ + 1)
- def self.#{self_name}(sym = nil)
- return class_variable_get(:@@SE_#{self_name.upcase}) if sym.nil?
- class_variable_get(:@@SE_#{self_name.upcase})[sym]
+ def self.#{self_name}(*args)
+ return @@SE_#{self_name.upcase} if args.first.nil?
+ return @@SE_#{self_name.upcase}[args.first] if args.size == 1
+ args.inject([]) { |ary, sym| ary << @@SE_#{self_name.upcase}[sym]; ary }
end
def self.#{self_name}_for_select(&block)
self.#{self_name}.map do |k,v|
[block_given? ? yield(k,v) : self.human_enum_name(#{self_name.inspect}, k), v]
\ No newline at end of file