module Rbvore::Resource::Names

Public Instance Methods

list_name() click to toggle source
# File lib/rbvore/resource/names.rb, line 20
def list_name
  @list_name ||= "#{singularize}_list"
end
pluralize() click to toggle source
# File lib/rbvore/resource/names.rb, line 24
def pluralize
  @pluralize ||=
    case
    when singularize.end_with?('y')
      singularize[0..-2] + 'ies'
    else
      singularize + "s"
    end
end
singularize() click to toggle source
# File lib/rbvore/resource/names.rb, line 16
def singularize
  @singularize ||= underscore(name.split("::").last)
end
underscore(value) click to toggle source
# File lib/rbvore/resource/names.rb, line 6
def underscore(value)
  return value unless /[A-Z-]/.match?(value)

  word = value.to_s.gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  word.tr!("-", "_")
  word.downcase!
  word
end