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