lib/reality/naming.rb in reality-naming-1.3.0 vs lib/reality/naming.rb in reality-naming-1.4.0

- old
+ new

@@ -19,12 +19,14 @@ def camelize?(word) camelize(word) == word end def camelize(input_word) - word_parts = split_into_words(input_word, true).collect { |part| part[0...1].upcase + part[1..-1] } - return word_parts[0].downcase if (word_parts.size == 1 && word_parts[0] == word_parts[0].upcase) + word_parts = split_into_words(input_word).collect { |part| part[0...1].upcase + part[1..-1] } + if word_parts.size > 0 && word_parts[0] == word_parts[0].upcase + word_parts[0] = word_parts[0].downcase + end word = word_parts.join('') word[0...1].downcase + word[1..-1] end def pascal_case?(word) @@ -102,16 +104,15 @@ def clear_pluralization_rules pluralization_rules.clear end - def split_into_words(word, downcase_all_upcased_words = false) + def split_into_words(word) word = word.to_s.dup word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2') word.gsub!(/([a-z\d])([A-Z])/, '\1_\2') word.tr!('-', '_') - result = word.split('_') - downcase_all_upcased_words ? result.collect{|w| w.upcase == w ? w.downcase : w } : result + word.split('_') end private def pluralization_rules