Method: Morpheus::Cli::CliRegistry.cli_ize

Defined in:
lib/morpheus/cli/cli_registry.rb

.cli_ize(klass_name) ⇒ Object



205
206
207
208
209
210
211
212
213
214
215
# File 'lib/morpheus/cli/cli_registry.rb', line 205

def cli_ize(klass_name)
  # borrowed from ActiveSupport
  return klass_name unless klass_name =~ /[A-Z-]|::/
  word = klass_name.to_s.gsub(/::/, '/')
  word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)(?=\b|[^a-z])/) { "#{$1 && '_'}" }
  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.chop.tr('_', '-')
end