module ModulePlus::CoreExt::String
Public Class Methods
acronym_regex()
click to toggle source
# File lib/module_plus/core_ext/string.rb, line 27 def self.acronym_regex /(?=a)b/ end
acronyms_underscore_regex()
click to toggle source
# File lib/module_plus/core_ext/string.rb, line 24 def self.acronyms_underscore_regex /(?:(?<=([A-Za-z\d]))|\b)(#{acronym_regex})(?=\b|[^a-z])/ end
underscore(origin)
click to toggle source
Camel case string to under score string
double column(“::”) to slash(“/”) dash(“-”) to underscore(“_”) reference ActiveSupport (MIT License) github.com/rails/rails/blob/master/activesupport/lib/active_support/inflector/methods.rb#L92
# File lib/module_plus/core_ext/string.rb, line 13 def self.underscore(origin) return origin unless /[A-Z-]|::/.match?(origin) word = origin.to_s.gsub('::', '/') word.gsub!(acronyms_underscore_regex) { "#{$1 && '_'.freeze }#{$2.downcase}" } word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2'.freeze) word.gsub!(/([a-z\d])([A-Z])/, '\1_\2'.freeze) word.tr!("-".freeze, "_".freeze) word.downcase! word end