Module: ActiveSupport::Inflector

Defined in:
lib/pluralize/active_support/inflector.rb

Defined Under Namespace

Classes: Inflections

Instance Method Summary collapse

Instance Method Details

#pluralize(word, count = 2) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/pluralize/active_support/inflector.rb', line 3

def pluralize(word, count = 2)
  result = word.to_s.dup

  if word.empty? || inflections.uncountables.include?(result.downcase)
    result
  else
    inflections.plurals.each do |(rule, replacement)|
      if replacement.is_a?(Hash)
        if result == rule
          if replacement.has_key?(:proc) && replacement[:proc].is_a?(Proc)
            proc = replacement[:proc]
          elsif replacement.has_key?(:proc) && inflections.procs[replacement[:proc].to_sym].is_a?(Proc)
            proc = inflections.procs[replacement[:proc].to_sym]
          elsif inflections.default_proc.is_a?(Proc)
            proc = inflections.default_proc
          end
          if proc
            result = proc.call(count, result, replacement)
            break
          end
        end
      else
        break if result.gsub!(rule, replacement)
      end
    end
    result
  end
  result
end