Module: EnumI18nHelper::Helper
- Defined in:
- lib/enum_i18n_helper/i18n.rb
Class Method Summary collapse
- .define_attr_i18n_method(klass, attr_name) ⇒ Object
- .define_collection_i18n_method(klass, attr_name) ⇒ Object
- .translate_enum_label(klass, attr_name, enum_label) ⇒ Object
Class Method Details
.define_attr_i18n_method(klass, attr_name) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/enum_i18n_helper/i18n.rb', line 41 def self.define_attr_i18n_method(klass, attr_name) attr_i18n_method_name = "#{attr_name}_i18n" klass.class_eval " def \#{attr_i18n_method_name}\n enum_label = self.send(:\#{attr_name})\n if enum_label\n ::EnumI18nHelper::Helper.translate_enum_label('\#{klass}', :\#{attr_name}, enum_label)\n else\n nil\n end\n end\n METHOD\nend\n", __FILE__, __LINE__ |
.define_collection_i18n_method(klass, attr_name) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/enum_i18n_helper/i18n.rb', line 56 def self.define_collection_i18n_method(klass, attr_name) collection_method_name = "#{attr_name.to_s.pluralize}" collection_i18n_method_name = "#{collection_method_name}_i18n" klass.instance_eval " def \#{collection_i18n_method_name}\n collection_array = \#{collection_method_name}.collect do |label, _|\n [label, ::EnumI18nHelper::Helper.translate_enum_label('\#{klass}', :\#{attr_name}, label)]\n end\n Hash[collection_array].with_indifferent_access\n end\n METHOD\nend\n", __FILE__, __LINE__ |
.translate_enum_label(klass, attr_name, enum_label) ⇒ Object
70 71 72 |
# File 'lib/enum_i18n_helper/i18n.rb', line 70 def self.translate_enum_label(klass, attr_name, enum_label) ::I18n.t("enums.#{klass.to_s.underscore.gsub('/', '.')}.#{attr_name}.#{enum_label}", default: enum_label.humanize) end |