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