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 |