diff options
Diffstat (limited to 'activesupport/lib/active_support/inflector/inflections.rb')
-rw-r--r-- | activesupport/lib/active_support/inflector/inflections.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/activesupport/lib/active_support/inflector/inflections.rb b/activesupport/lib/active_support/inflector/inflections.rb index af506d6f2e..9cf4b2b2ba 100644 --- a/activesupport/lib/active_support/inflector/inflections.rb +++ b/activesupport/lib/active_support/inflector/inflections.rb @@ -1,3 +1,4 @@ +require 'thread_safe' require 'active_support/core_ext/array/prepend_and_append' require 'active_support/i18n' @@ -24,9 +25,10 @@ module ActiveSupport # singularization rules that is runs. This guarantees that your rules run # before any of the rules that may already have been loaded. class Inflections + @__instance__ = ThreadSafe::Cache.new + def self.instance(locale = :en) - @__instance__ ||= Hash.new { |h, k| h[k] = new } - @__instance__[locale] + @__instance__[locale] ||= new end attr_reader :plurals, :singulars, :uncountables, :humans, :acronyms, :acronym_regex @@ -36,7 +38,7 @@ module ActiveSupport end # Private, for the test suite. - def initialize_dup(orig) # :nodoc: + def initialize_dup(orig) # :nodoc: %w(plurals singulars uncountables humans acronyms acronym_regex).each do |scope| instance_variable_set("@#{scope}", orig.send(scope).dup) end @@ -44,7 +46,7 @@ module ActiveSupport # Specifies a new acronym. An acronym must be specified as it will appear # in a camelized string. An underscore string that contains the acronym - # will retain the acronym when passed to +camelize+, +humanize+, or + # will retain the acronym when passed to +camelize+, +humanize+, or # +titleize+. A camelized string that contains the acronym will maintain # the acronym when titleized or humanized, and will convert the acronym # into a non-delimited single lowercase word when passed to +underscore+. @@ -79,7 +81,7 @@ module ActiveSupport # # +acronym+ may be used to specify any word that contains an acronym or # otherwise needs to maintain a non-standard capitalization. The only - # restriction is that the word must begin with a capital letter. + # restriction is that the word must begin with a capital letter. # # acronym 'RESTful' # underscore 'RESTful' #=> 'restful' @@ -97,7 +99,7 @@ module ActiveSupport end # Specifies a new pluralization rule and its replacement. The rule can - # either be a string or a regular expression. The replacement should + # either be a string or a regular expression. The replacement should # always be a string that may include references to the matched data from # the rule. def plural(rule, replacement) |