module HumanAttributeValues::ClassMethods
Public Instance Methods
human_attribute_value(attribute, value, options = {})
click to toggle source
# File lib/human_attribute_values/human_attribute_value.rb, line 12 def human_attribute_value(attribute, value, options = {}) return '' if value.nil? || value == '' options = {count: 1}.merge!(options) parts = attribute.to_s.split('.') attribute = parts.pop namespace = parts.join('/') unless parts.empty? value_scope = "#{i18n_scope}.values" # dots would mean a new nesting level in YAML files key = value.to_s.tr('.', '_') if namespace defaults = lookup_ancestors.map do |klass| :"#{value_scope}.#{klass.model_name.i18n_key}/#{namespace}.#{attribute}.#{key}" end defaults << :"#{value_scope}.#{namespace}.#{attribute}.#{key}" else defaults = lookup_ancestors.map do |klass| :"#{value_scope}.#{klass.model_name.i18n_key}.#{attribute}.#{key}" end end defaults << :"values.#{attribute}.#{key}" defaults << options.delete(:default) if options[:default] defaults << value.to_s options[:default] = defaults I18n.t(defaults.shift, **options) end