class I18nable::KeyBuilder
Public Class Methods
new(base_class)
click to toggle source
# File lib/i18nable/key_builder.rb, line 3 def initialize(base_class) @base_class = base_class end
Public Instance Methods
build(key)
click to toggle source
# File lib/i18nable/key_builder.rb, line 7 def build(key) return key unless key.is_a?(String) && scopable?(key) scope.concat key end
Private Instance Methods
class_name()
click to toggle source
# File lib/i18nable/key_builder.rb, line 23 def class_name underscore @base_class.name end
scopable?(key)
click to toggle source
# File lib/i18nable/key_builder.rb, line 15 def scopable?(key) key.start_with? '.' end
scope()
click to toggle source
# File lib/i18nable/key_builder.rb, line 19 def scope @scope ||= class_name.gsub(%r{/_?}, '.') end
underscore(key)
click to toggle source
# File lib/i18nable/key_builder.rb, line 27 def underscore(key) key.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z])/, '\1_\2').tr('-', '_').downcase end