Module: English::Inflect
- Defined in:
- lib/can_has_fixtures/vendor/inflect.rb
Overview
English Nouns Number Inflection.
This module provides english singular <-> plural noun inflections.
Class Method Summary collapse
-
.plural(word) ⇒ Object
(also: pluralize)
Convert an English word from singular to plurel.
- .plural_of ⇒ Object
-
.plural_rule(singular, plural) ⇒ Object
Define a plurualization rule.
-
.plural_word(singular, plural) ⇒ Object
Define a pluralization exception.
-
.pluralization_rules ⇒ Object
Read prepared pluralization rules.
-
.rule(singular, plural) ⇒ Object
Define a general rule.
-
.singular(word) ⇒ Object
(also: singularize)
Convert an English word from plurel to singular.
- .singular_of ⇒ Object
-
.singular_rule(singular, plural) ⇒ Object
Define a singularization rule.
-
.singular_word(singular, plural) ⇒ Object
Define a singularization exception.
-
.singularization_rules ⇒ Object
Read prepared singularization rules.
-
.word(singular, plural = nil) ⇒ Object
Define a general exception.
Class Method Details
.plural(word) ⇒ Object Also known as: pluralize
Convert an English word from singular to plurel.
"boy".plural #=> boys
"tomato".plural #=> tomatoes
101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 101 def plural(word) if result = plural_of[word] return result.dup end #return self.dup if /s$/ =~ self # ??? result = word.dup pluralization_rules.each do |(match, replacement)| break if result.gsub!(match, replacement) end return result end |
.plural_of ⇒ Object
67 68 69 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 67 def plural_of @plural_of end |
.plural_rule(singular, plural) ⇒ Object
Define a plurualization rule.
44 45 46 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 44 def plural_rule(singular, plural) @plural_rules << [singular, plural] end |
.plural_word(singular, plural) ⇒ Object
Define a pluralization exception.
28 29 30 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 28 def plural_word(singular, plural) @plural_of[singular] = plural end |
.pluralization_rules ⇒ Object
Read prepared pluralization rules.
58 59 60 61 62 63 64 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 58 def pluralization_rules return @pluralization_rules if @pluralization_rules sorted = @plural_rules.sort_by{ |s, p| "#{s}".size }.reverse @pluralization_rules = sorted.collect do |s, p| [ /#{s}$/, "#{p}" ] end end |
.rule(singular, plural) ⇒ Object
Define a general rule.
33 34 35 36 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 33 def rule(singular, plural) singular_rule(singular, plural) plural_rule(singular, plural) end |
.singular(word) ⇒ Object Also known as: singularize
Convert an English word from plurel to singular.
"boys".singular #=> boy
"tomatoes".singular #=> tomato
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 81 def singular(word) if result = singular_of[word] return result.dup end result = word.dup singularization_rules.each do |(match, replacement)| break if result.gsub!(match, replacement) end return result end |
.singular_of ⇒ Object
72 73 74 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 72 def singular_of @singular_of end |
.singular_rule(singular, plural) ⇒ Object
Define a singularization rule.
39 40 41 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 39 def singular_rule(singular, plural) @singular_rules << [singular, plural] end |
.singular_word(singular, plural) ⇒ Object
Define a singularization exception.
23 24 25 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 23 def singular_word(singular, plural) @singular_of[plural] = singular end |
.singularization_rules ⇒ Object
Read prepared singularization rules.
49 50 51 52 53 54 55 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 49 def singularization_rules return @singularization_rules if @singularization_rules sorted = @singular_rules.sort_by{ |s, p| "#{p}".size }.reverse @singularization_rules = sorted.collect do |s, p| [ /#{p}$/, "#{s}" ] end end |
.word(singular, plural = nil) ⇒ Object
Define a general exception.
16 17 18 19 20 |
# File 'lib/can_has_fixtures/vendor/inflect.rb', line 16 def word(singular, plural=nil) plural = singular unless plural singular_word(singular, plural) plural_word(singular, plural) end |