From feaa6e2048fe86bcf07e967d6e47b865e42e055b Mon Sep 17 00:00:00 2001 From: Steve Klabnik Date: Sat, 16 Mar 2013 15:24:36 -0700 Subject: Revert "Merge pull request #8156 from fredwu/acronym_fix-master" This reverts commit 867dc1700f32aae6f98c4651bd501597e6b52bc0, reversing changes made to 9a421aaa8285cf2a7ecb1af370748b0337818930. This breaks anyone who's using ForceSSL: https://travis-ci.org/rails-api/rails-api/jobs/5556065 Please see comments on #8156 for some discussion. --- activesupport/CHANGELOG.md | 5 ----- activesupport/lib/active_support/inflector/methods.rb | 2 +- activesupport/test/inflector_test.rb | 2 -- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index c0dddd5b14..9e6b77e2f3 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,10 +1,5 @@ ## Rails 4.0.0 (unreleased) ## -* Fixed a bug in `ActiveSupport::Inflector#underscore` where acroynms are - incorrectly parsed as camelCases. - - *Fred Wu* - * Fix deletion of empty directories in `ActiveSupport::Cache::FileStore`. *Charles Jones* diff --git a/activesupport/lib/active_support/inflector/methods.rb b/activesupport/lib/active_support/inflector/methods.rb index 648508d68e..39648727fd 100644 --- a/activesupport/lib/active_support/inflector/methods.rb +++ b/activesupport/lib/active_support/inflector/methods.rb @@ -91,7 +91,7 @@ module ActiveSupport word = camel_cased_word.to_s.dup word.gsub!('::', '/') word.gsub!(/(?:([A-Za-z\d])|^)(#{inflections.acronym_regex})(?=\b|[^a-z])/) { "#{$1}#{$1 && '_'}#{$2.downcase}" } - word.gsub!(/(?!#{inflections.acronym_regex})\b([A-Z\d]+)([A-Z][a-z])/,'\1_\2') + word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2') word.gsub!(/([a-z\d])([A-Z])/,'\1_\2') word.tr!("-", "_") word.downcase! diff --git a/activesupport/test/inflector_test.rb b/activesupport/test/inflector_test.rb index 2b74055e68..4806ce07f6 100644 --- a/activesupport/test/inflector_test.rb +++ b/activesupport/test/inflector_test.rb @@ -167,13 +167,11 @@ class InflectorTest < ActiveSupport::TestCase def test_underscore_acronym_sequence ActiveSupport::Inflector.inflections do |inflect| inflect.acronym("API") - inflect.acronym("APIs") inflect.acronym("JSON") inflect.acronym("HTML") end assert_equal("json_html_api", ActiveSupport::Inflector.underscore("JSONHTMLAPI")) - assert_equal("namespaced/apis", ActiveSupport::Inflector.underscore("Namespaced::APIs")) end def test_underscore -- cgit v1.2.3