Module: Language::English::Inflect
- Defined in:
- lib/merb-core/vendor/facets/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
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 103 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
69 70 71 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 69 def plural_of @plural_of end |
.plural_rule(singular, plural) ⇒ Object
Define a plurualization rule.
46 47 48 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 46 def plural_rule(singular, plural) @plural_rules << [singular, plural] end |
.plural_word(singular, plural) ⇒ Object
Define a pluralization exception.
30 31 32 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 30 def plural_word(singular, plural) @plural_of[singular] = plural end |
.pluralization_rules ⇒ Object
Read prepared pluralization rules.
60 61 62 63 64 65 66 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 60 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.
35 36 37 38 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 35 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
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 83 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
74 75 76 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 74 def singular_of @singular_of end |
.singular_rule(singular, plural) ⇒ Object
Define a singularization rule.
41 42 43 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 41 def singular_rule(singular, plural) @singular_rules << [singular, plural] end |
.singular_word(singular, plural) ⇒ Object
Define a singularization exception.
25 26 27 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 25 def singular_word(singular, plural) @singular_of[plural] = singular end |
.singularization_rules ⇒ Object
Read prepared singularization rules.
51 52 53 54 55 56 57 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 51 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.
18 19 20 21 22 |
# File 'lib/merb-core/vendor/facets/inflect.rb', line 18 def word(singular, plural=nil) plural = singular unless plural singular_word(singular, plural) plural_word(singular, plural) end |