Module: Enumerative::Enumeration
- Defined in:
- lib/enumerative/enumeration.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #blank? ⇒ Boolean
- #initialize(key_hash_or_enum) ⇒ Object
-
#marked_for_destruction? ⇒ Boolean
Method is required for Rails > 3.2.x due to ActiveRecord’s autosave functionality.
- #to_s ⇒ Object
- #valid? ⇒ Boolean
- #value ⇒ Object
Class Method Details
.included(other_module) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/enumerative/enumeration.rb', line 5 def self.included( other_module ) other_module.module_eval do valid_keys.each do |k| const_set k.gsub( /\s/, '_' ).upcase, other_module.new( k ) end extend ClassMethods attr_reader :key end end |
Instance Method Details
#==(other) ⇒ Object
48 49 50 |
# File 'lib/enumerative/enumeration.rb', line 48 def ==( other ) other.is_a?( self.class ) && (other.key == key) end |
#blank? ⇒ Boolean
64 65 66 |
# File 'lib/enumerative/enumeration.rb', line 64 def blank? key.blank? end |
#initialize(key_hash_or_enum) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/enumerative/enumeration.rb', line 33 def initialize( key_hash_or_enum ) key = nil if key_hash_or_enum.is_a?( Hash ) key = key_hash_or_enum['key'] || key_hash_or_enum[:key] elsif key_hash_or_enum.is_a?( Enumerative::Enumeration ) key = key_hash_or_enum.key else key = key_hash_or_enum end @key = (key.nil? || key.empty?) ? nil : key.to_s.try( :dup ).try( :freeze ) end |
#marked_for_destruction? ⇒ Boolean
Method is required for Rails > 3.2.x due to ActiveRecord’s autosave functionality.
71 72 73 |
# File 'lib/enumerative/enumeration.rb', line 71 def marked_for_destruction? false end |
#to_s ⇒ Object
52 53 54 |
# File 'lib/enumerative/enumeration.rb', line 52 def to_s key end |
#valid? ⇒ Boolean
56 57 58 |
# File 'lib/enumerative/enumeration.rb', line 56 def valid? key.blank? || self.class.valid_keys.include?( key ) end |
#value ⇒ Object
60 61 62 |
# File 'lib/enumerative/enumeration.rb', line 60 def value key.blank? ? nil : self.class.translate( key ) end |