Module: ApiccoSDK::Helpers

Included in:
Client
Defined in:
lib/apicco-sdk/helpers.rb

Constant Summary collapse

ACRONYM_REGEX =
/(?=a)b/
ACRONYMS_UNDERSCORE_REGEX =
/(?:(?<=([A-Za-z\d]))|\b)(#{ACRONYM_REGEX})(?=\b|[^a-z])/

Instance Method Summary collapse

Instance Method Details

#underscore(camel_cased_word) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/apicco-sdk/helpers.rb', line 6

def underscore(camel_cased_word)
  return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)
  word = camel_cased_word.to_s.gsub("::", "/")
  word.gsub!(ACRONYMS_UNDERSCORE_REGEX) { "#{$1 && '_' }#{$2.downcase}" }
  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