Module: EnumHelp::I18n

Defined in:
lib/enum_help/i18n.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(receiver) ⇒ Object



23
24
25
26
27
# File 'lib/enum_help/i18n.rb', line 23

def self.extended(receiver)
  # receiver.class_eval do
  #   # alias_method_chain :enum, :enum_help
  # end
end

Instance Method Details

#enum(definitions) ⇒ Object

overwrite the enum method



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/enum_help/i18n.rb', line 5

def enum( definitions )
  klass = self
  super( definitions )
  definitions.each do |name, values|
    # def status_i18n() statuses.key self[:status] end
    i18n_method_name = "#{name}_i18n".to_sym
    define_method(i18n_method_name) do
      enum_value = self.send(name)
      if enum_value
        ::I18n.t("enums.#{klass.to_s.underscore}.#{name}.#{enum_value}", default: enum_value)
      else
        nil
      end
    end
  end
end