module QueueClassicPlus::Inflector

Public Class Methods

underscore(camel_cased_word) click to toggle source

Storngly inspired by github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb#L91

# File lib/queue_classic_plus/inflector.rb, line 5
def self.underscore(camel_cased_word)
  return camel_cased_word unless camel_cased_word =~ /[A-Z-]|::/
  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