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