Module: Inflect::InflectorMethods
- Included in:
- English
- Defined in:
- lib/utilities/inflect.rb
Instance Method Summary collapse
-
#plural(word) ⇒ Object
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
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.
Instance Method Details
#plural(word) ⇒ Object
Convert an English word from singular to plurel.
"boy".plural #=> boys
"tomato".plural #=> tomatoes
93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/utilities/inflect.rb', line 93 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
63 64 65 |
# File 'lib/utilities/inflect.rb', line 63 def plural_of @plural_of end |
#plural_rule(singular, plural) ⇒ Object
Define a plurualization rule.
40 41 42 |
# File 'lib/utilities/inflect.rb', line 40 def plural_rule(singular, plural) @plural_rules << [singular, plural] end |
#plural_word(singular, plural) ⇒ Object
Define a pluralization exception.
24 25 26 |
# File 'lib/utilities/inflect.rb', line 24 def plural_word(singular, plural) @plural_of[singular] = plural end |
#pluralization_rules ⇒ Object
Read prepared pluralization rules.
54 55 56 57 58 59 60 |
# File 'lib/utilities/inflect.rb', line 54 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.
29 30 31 32 |
# File 'lib/utilities/inflect.rb', line 29 def rule(singular, plural) singular_rule(singular, plural) plural_rule(singular, plural) end |
#singular(word) ⇒ Object
Convert an English word from plurel to singular.
"boys".singular #=> boy
"tomatoes".singular #=> tomato
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/utilities/inflect.rb', line 77 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
68 69 70 |
# File 'lib/utilities/inflect.rb', line 68 def singular_of @singular_of end |
#singular_rule(singular, plural) ⇒ Object
Define a singularization rule.
35 36 37 |
# File 'lib/utilities/inflect.rb', line 35 def singular_rule(singular, plural) @singular_rules << [singular, plural] end |
#singular_word(singular, plural) ⇒ Object
Define a singularization exception.
19 20 21 |
# File 'lib/utilities/inflect.rb', line 19 def singular_word(singular, plural) @singular_of[plural] = singular end |
#singularization_rules ⇒ Object
Read prepared singularization rules.
45 46 47 48 49 50 51 |
# File 'lib/utilities/inflect.rb', line 45 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.
12 13 14 15 16 |
# File 'lib/utilities/inflect.rb', line 12 def word(singular, plural=nil) plural = singular unless plural singular_word(singular, plural) plural_word(singular, plural) end |