class Redress::Utils::ModelNameString

Attributes

original[R]

Public Class Methods

new(original) click to toggle source
# File lib/redress/utils/model_name_string.rb, line 8
def initialize(original)
  @original = original.to_s
end

Public Instance Methods

to_sym() click to toggle source
# File lib/redress/utils/model_name_string.rb, line 12
def to_sym
  underscore_original.to_sym
end

Private Instance Methods

underscore(camel_cased_word) click to toggle source

File activesupport/lib/active_support/inflector/methods.rb, line 92

# File lib/redress/utils/model_name_string.rb, line 27
def underscore(camel_cased_word)
  return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)

  word = camel_cased_word.to_s.gsub('::', '/')
  word.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
underscore_original() click to toggle source
# File lib/redress/utils/model_name_string.rb, line 18
def underscore_original
  if original.respond_to?(:underscore)
    original.underscore
  else
    underscore(original)
  end
end