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