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')