lib/lita/util.rb in lita-3.3.1 vs lib/lita/util.rb in lita-4.0.0.rc1
- old
+ new
@@ -1,30 +1,23 @@
module Lita
# Handy utilities used by other Lita classes.
module Util
- # A regular expression for acronyms.
- ACRONYM_REGEX = /(?=a)b/
-
class << self
# Returns a hash with any symbol keys converted to strings.
# @param hash [Hash] The hash to convert.
# @return [Hash] The converted hash.
def stringify_keys(hash)
result = {}
hash.each_key { |key| result[key.to_s] = hash[key] }
result
end
- # Transforms a camel-cased string into a snaked-cased string. Taken from
- # +ActiveSupport.+
+ # Transforms a camel-cased string into a snaked-cased string. Taken from +ActiveSupport.+
# @param camel_cased_word [String] The word to transform.
# @return [String] The transformed word.
def underscore(camel_cased_word)
word = camel_cased_word.to_s.dup
word.gsub!("::", "/")
- word.gsub!(/(?:([A-Za-z\d])|^)(#{ACRONYM_REGEX})(?=\b|[^a-z])/) do
- "#{Regexp.last_match[1]}#{Regexp.last_match[1] && "_"}#{Regexp.last_match[2].downcase}"
- end
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