12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# 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"
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
|