Module: Tram::Policy::Inflector
- Defined in:
- lib/tram/policy/inflector.rb
Class Method Summary collapse
Class Method Details
.camelize(name) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/tram/policy/inflector.rb', line 21 def self.camelize(name) name&.dup&.tap do |n| n.gsub!(/(?:\A|_+)(.)/) { $1.upcase } n.gsub!(%r{(?:[/|-]+)(.)}) { "::#{$1.upcase}" } end end |
.underscore(name) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/tram/policy/inflector.rb', line 11 def self.underscore(name) name&.dup&.tap do |n| n.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2') n.gsub!(/([a-z\d])([A-Z])/, '\1_\2') n.gsub!("::", "/") n.tr!("-", "_") n.downcase! end end |