Method: EnumExt::HumanizeHelpers.define_superset_humanization_helpers
- Defined in:
- lib/enum_ext/humanize_helpers.rb
.define_superset_humanization_helpers(base_class, superset_name, enum_name) ⇒ Object
t_… methods for supersets will just slice original enum t_.. methods output and return only superset related values from it
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/enum_ext/humanize_helpers.rb', line 110 def self.define_superset_humanization_helpers(base_class, superset_name, enum_name) enum_plural = enum_name.to_s.pluralize base_class.send(enum_plural).define_singleton_method( "t_#{superset_name}_options" ) do result = evaluate_localizations(send("t_#{superset_name}")) return result unless result.blank? [["Enum translations call missed. Did you forget to call translate #{enum_name}"]*2] end # enums.t_options_i base_class.send(enum_plural).define_singleton_method( "t_#{superset_name}_options_i" ) do result = evaluate_localizations_to_i( send("t_#{superset_name}") ) return result unless result.to_h.values.all?(&:blank?) [["Enum translations are missing. Did you forget to translate #{enum_name}"]*2] end # enums.t_superset ( translations or humanizations subset for a given set ) base_class.send(enum_plural).define_singleton_method( "t_#{superset_name}" ) do return [(["Enum translations are missing. Did you forget to translate #{enum_name}"]*2)].to_h if localizations.blank? base_class.send(enum_plural).localizations.slice( *base_class.send(enum_plural).send(superset_name) ) end end |