module HumanAttributeValue
Constants
- VERSION
Public Instance Methods
human_attribute_value(attribute, value, options = {})
click to toggle source
adapted from activemodel-5.0.0/lib/active_model/translation.rb
# File lib/human_attribute_value.rb, line 13 def human_attribute_value(attribute, value, options = {}) options = { count: 1 }.merge!(options) parts = attribute.to_s.split(".") attribute = parts.pop namespace = parts.join("/") unless parts.empty? values_scope = "#{self.i18n_scope}.values" if namespace defaults = lookup_ancestors.map do |klass| :"#{values_scope}.#{klass.model_name.i18n_key}/#{namespace}.#{attribute}.#{value}" end defaults << :"#{values_scope}.#{namespace}.#{attribute}.#{value}" else defaults = lookup_ancestors.map do |klass| :"#{values_scope}.#{klass.model_name.i18n_key}.#{attribute}.#{value}" end end defaults << :"values.#{attribute}.#{value}" defaults << options.delete(:default) if options[:default] defaults << value.try(:humanize) || value options[:default] = defaults I18n.translate(defaults.shift, options) end