class BazaModels::ClassTranslation

Public Class Methods

new(args) click to toggle source
# File lib/baza_models/class_translation.rb, line 2
def initialize(args)
  @klass = args.fetch(:class)
end

Public Instance Methods

class_name_snake() click to toggle source
# File lib/baza_models/class_translation.rb, line 6
def class_name_snake
  @class_name_snake ||= StringCases.camel_to_snake(@klass.name.split("::").last)
end
class_name_snake_with_parents() click to toggle source
# File lib/baza_models/class_translation.rb, line 10
def class_name_snake_with_parents
  unless @class_name_snake_with_parents
    name = @klass.name
      .split("::")
      .map { |name_part| StringCases.camel_to_snake(name_part) }
      .join("\\")

    @class_name_snake_with_parents = name
  end

  @class_name_snake_with_parents
end
human(args = {}) click to toggle source
# File lib/baza_models/class_translation.rb, line 23
def human(args = {})
  if args[:count] && args[:count] >= 2
    count_key = "other"
  else
    count_key = "one"
  end

  keys = [
    "baza_models.models.#{class_name_snake_with_parents}.#{count_key}",
    "activerecord.models.#{class_name_snake_with_parents}.#{count_key}"
  ]

  keys.each do |key|
    return I18n.t(key) if I18n.exists?(key)
  end

  @klass.name.split("::").last
end
i18n_key() click to toggle source
# File lib/baza_models/class_translation.rb, line 58
def i18n_key
  param_key.to_sym
end
name() click to toggle source
# File lib/baza_models/class_translation.rb, line 42
def name
  @klass.name
end
param_key() click to toggle source
# File lib/baza_models/class_translation.rb, line 46
def param_key
  @param_key ||= class_name_snake
end
route_key() click to toggle source
# File lib/baza_models/class_translation.rb, line 50
def route_key
  "#{param_key}s"
end
singular_route_key() click to toggle source
# File lib/baza_models/class_translation.rb, line 54
def singular_route_key
  param_key
end