lib/core/facets/string/camelcase.rb in facets-2.6.0 vs lib/core/facets/string/camelcase.rb in facets-2.7.0

- old
+ new

@@ -1,22 +1,23 @@ class String # Converts a string to camelcase. # - # By default camelcase leaves the first charcter of the string as given. + # By default camelcase leaves the first character of the string as given. # If +first_letter+ is set to +:lower+ or +false+, then +#camelcase+ will # produce lowerCamelCase. If it is set to +:upper+ or +true+ it will # produce UpperCamelCase. # # +#camelcase+ also converts '/' to '::' which is useful for converting # paths to namespaces. # # Examples - # "camel_case".camelcase #=> "CamelCase" - # "camel/case".camelcase #=> "Camel::Case" - # "camel_case".camelcase(false) #=> "camelCase" + # "camel_case".camelcase #=> "camelCase" + # "camel/case".camelcase(true) #=> "Camel::Case" + # "Camel_case".camelcase(false) #=> "camelCase" # + # TODO: Is this the best approach? Should lowerCamelCase be default instead? def camelcase(first_letter=nil) case first_letter when :upper, true upper_camelcase when :lower, false @@ -40,10 +41,10 @@ def lower_camelcase str = dup str.gsub!(/\/(.?)/){ "::#{$1.upcase}" } # NOT SO SURE ABOUT THIS str.gsub!(/(?:_+|-+)([a-z])/){ $1.upcase } - str.gsub!(/(\A|\s)([a-z])/){ $1 + $2.downcase } + str.gsub!(/(\A|\s)([A-Z])/){ $1 + $2.downcase } str end end