lib/simple_enum.rb in simple_enum-1.1.0 vs lib/simple_enum.rb in simple_enum-1.2.0

- old
+ new

@@ -6,20 +6,24 @@ # Copyright:: Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland) # Licence:: MIT-Licence (http://www.opensource.org/licenses/mit-license.php) # # See the +as_enum+ documentation for more details. +# because we depend on AR and i18n +require 'active_record' +require 'i18n' + require 'simple_enum/enum_hash' require 'simple_enum/object_support' require 'simple_enum/validation' # Base module which gets included in <tt>ActiveRecord::Base</tt>. See documentation # of +SimpleEnum::ClassMethods+ for more details. module SimpleEnum # +SimpleEnum+ version string. - VERSION = "1.1.0".freeze + VERSION = "1.2.0".freeze class << self # Provides configurability to SimpleEnum, allows to override some defaults which are # defined for all uses of +as_enum+. Most options from +as_enum+ are available, such as: @@ -221,11 +225,12 @@ end include Validation def human_enum_name(enum, key, options = {}) - defaults = ([self] + subclasses).map { |klass| :"#{klass.name.underscore}.#{enum}.#{key}" } + klasses = self.respond_to?(:descendants) ? descendants : ancestors + defaults = ([self] + klasses).map { |klass| :"#{klass.name.underscore}.#{enum}.#{key}" } defaults << :"#{enum}.#{key}" defaults << options.delete(:default) if options[:default] defaults << "#{key}".humanize options[:count] ||= 1 I18n.translate(defaults.shift, options.merge(:default => defaults.flatten, :scope => [:activerecord, :enums])) @@ -239,11 +244,9 @@ end end end # Tie stuff together and load translations if ActiveRecord is defined -if Object.const_defined?('ActiveRecord') - Object.send(:include, SimpleEnum::ObjectSupport) - - ActiveRecord::Base.send(:include, SimpleEnum) - I18n.load_path << File.join(File.dirname(__FILE__), '..', 'locales', 'en.yml') -end +Object.send(:include, SimpleEnum::ObjectSupport) + +ActiveRecord::Base.send(:include, SimpleEnum) +I18n.load_path << File.join(File.dirname(__FILE__), '..', 'locales', 'en.yml')