Class: EnumerateIt::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/enumerate_it.rb

Constant Summary collapse

@@registered_enumerations =
{}

Class Method Summary collapse

Class Method Details

.associate_values(values_hash) ⇒ Object



171
172
173
174
175
# File 'lib/enumerate_it.rb', line 171

def self.associate_values(values_hash)
  register_enumeration normalize_enumeration(values_hash)
  values_hash.each_pair { |value_name, attributes| define_enumeration_constant value_name, attributes[0] }
  define_enumeration_list values_hash
end

.enumerationObject



200
201
202
# File 'lib/enumerate_it.rb', line 200

def self.enumeration
  @@registered_enumerations[self]
end

.listObject



196
197
198
# File 'lib/enumerate_it.rb', line 196

def self.list 
  @@registered_enumerations[self].values.map { |value| translate(value[0]) }.sort
end

.to_aObject



204
205
206
# File 'lib/enumerate_it.rb', line 204

def self.to_a
  @@registered_enumerations[self].values.map {|value| [translate(value[1]), value[0]] }.sort_by { |value| value[0] }
end

.translate(value) ⇒ Object



212
213
214
215
216
217
# File 'lib/enumerate_it.rb', line 212

def self.translate(value)
  return value unless value.is_a? Symbol

  default = value.to_s.to_s.gsub(/_/, ' ').split.map(&:capitalize).join(' ')
  I18n.t("enumerations.#{self.name.underscore}.#{value.to_s.underscore}", :default => default)
end

.values_for(values) ⇒ Object



208
209
210
# File 'lib/enumerate_it.rb', line 208

def self.values_for(values)
  values.map { |v| self.const_get(v.to_sym) }
end