Module: TranslateEnum::ClassMethods
- Defined in:
- lib/translate_enum.rb
Overview
include TranslateEnum in ActiveModel or ActiveRecord
Instance Method Summary collapse
Instance Method Details
#translate_enum(attribute, &block) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/translate_enum.rb', line 19 def translate_enum(attribute, &block) builder = Builder.new(self, attribute, &block) # User.translated_status(:active) define_singleton_method(builder.method_name_singular) do |key| I18n.translate("#{builder.i18n_scope}.#{builder.i18n_location(key)}", default: builder.i18n_default_location(key)) end # @return [Array] # @example # f.select_field :gender, f.object.class.translated_genders define_singleton_method(builder.method_name_plural) do public_send(builder.enum_klass_method_name).map do |key, value| [public_send(builder.method_name_singular, key), key, value] end end # @return [String] # @example # @user.translated_gender define_method(builder.method_name_singular) do if (key = public_send(builder.enum_instance_method_name)).present? self.class.public_send(builder.method_name_singular, key) end end end |