Class: OpenHouse::SimpleInflector

Inherits:
Object
  • Object
show all
Defined in:
lib/openhouse/simple_inflector.rb

Instance Method Summary collapse

Instance Method Details

#demodulized(module_name) ⇒ Object



3
4
5
# File 'lib/openhouse/simple_inflector.rb', line 3

def demodulized(module_name)
  module_name.split('::').last
end

#underscored(module_name) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/openhouse/simple_inflector.rb', line 7

def underscored(module_name)
  return module_name.downcase if module_name.upcase == module_name

  ret = module_name                    # MyModuleName     ABCName
        .gsub(/([A-Z])/, '_\1'.freeze) # _My_Module_Name  _A_B_C_Name
        .gsub(/([A-Z])_([A-Z])_/, '\1\2'.freeze) #        _ABC_Name
        .downcase                      # _my_module_name  _abc_name

  ret.start_with?('_') ? ret[1..-1] : ret
end

#underscored_demodulized(module_name) ⇒ Object



18
19
20
# File 'lib/openhouse/simple_inflector.rb', line 18

def underscored_demodulized(module_name)
  underscored(demodulized(module_name))
end