Class: Credentials::Inflector::Inflections
- Inherits:
-
Object
- Object
- Credentials::Inflector::Inflections
- Includes:
- Singleton
- Defined in:
- lib/credentials/inflector.rb
Instance Attribute Summary collapse
-
#actors ⇒ Object
readonly
Returns the value of attribute actors.
-
#plurals ⇒ Object
readonly
Returns the value of attribute plurals.
-
#singulars ⇒ Object
readonly
Returns the value of attribute singulars.
-
#uncountables ⇒ Object
readonly
Returns the value of attribute uncountables.
Instance Method Summary collapse
- #actor(rule, replacement) ⇒ Object
-
#initialize ⇒ Inflections
constructor
A new instance of Inflections.
- #irregular(singular, plural) ⇒ Object
- #plural(rule, replacement) ⇒ Object
- #singular(rule, replacement) ⇒ Object
- #uncountable(*words) ⇒ Object
Constructor Details
#initialize ⇒ Inflections
Returns a new instance of Inflections.
23 24 25 |
# File 'lib/credentials/inflector.rb', line 23 def initialize @plurals, @singulars, @uncountables = [], [], [] end |
Instance Attribute Details
#actors ⇒ Object (readonly)
Returns the value of attribute actors.
10 11 12 |
# File 'lib/credentials/inflector.rb', line 10 def actors @actors end |
#plurals ⇒ Object (readonly)
Returns the value of attribute plurals.
21 22 23 |
# File 'lib/credentials/inflector.rb', line 21 def plurals @plurals end |
#singulars ⇒ Object (readonly)
Returns the value of attribute singulars.
21 22 23 |
# File 'lib/credentials/inflector.rb', line 21 def singulars @singulars end |
#uncountables ⇒ Object (readonly)
Returns the value of attribute uncountables.
21 22 23 |
# File 'lib/credentials/inflector.rb', line 21 def uncountables @uncountables end |
Instance Method Details
#actor(rule, replacement) ⇒ Object
16 17 18 |
# File 'lib/credentials/inflector.rb', line 16 def actor(rule, replacement) actors.insert 0, [ rule, replacement ] end |
#irregular(singular, plural) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/credentials/inflector.rb', line 46 def irregular(singular, plural) @uncountables.delete(singular) @uncountables.delete(plural) if singular[0,1].upcase == plural[0,1].upcase plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) else plural(Regexp.new("#{singular[0,1].upcase}(?i)#{singular[1..-1]}$"), plural[0,1].upcase + plural[1..-1]) plural(Regexp.new("#{singular[0,1].downcase}(?i)#{singular[1..-1]}$"), plural[0,1].downcase + plural[1..-1]) singular(Regexp.new("#{plural[0,1].upcase}(?i)#{plural[1..-1]}$"), singular[0,1].upcase + singular[1..-1]) singular(Regexp.new("#{plural[0,1].downcase}(?i)#{plural[1..-1]}$"), singular[0,1].downcase + singular[1..-1]) end end |
#plural(rule, replacement) ⇒ Object
31 32 33 |
# File 'lib/credentials/inflector.rb', line 31 def plural(rule, replacement) plurals.insert 0, [ rule, replacement ] end |
#singular(rule, replacement) ⇒ Object
40 41 42 43 44 |
# File 'lib/credentials/inflector.rb', line 40 def singular(rule, replacement) @uncountables.delete(rule) if rule.is_a?(String) @uncountables.delete(replacement) @singulars.insert(0, [rule, replacement]) end |
#uncountable(*words) ⇒ Object
60 61 62 |
# File 'lib/credentials/inflector.rb', line 60 def uncountable(*words) (@uncountables << words).flatten! end |