Module: Slick::Util::Inflections
- Defined in:
- lib/slick/util/inflections.rb
Class Attribute Summary collapse
-
.pluralize_rules ⇒ Object
Returns the value of attribute pluralize_rules.
-
.singularize_rules ⇒ Object
Returns the value of attribute singularize_rules.
Class Method Summary collapse
- .irregular(singular, plural) ⇒ Object
- .plural(*args) ⇒ Object
- .singular(*args) ⇒ Object
- .uncountable(singular_and_plural) ⇒ Object
Class Attribute Details
.pluralize_rules ⇒ Object
Returns the value of attribute pluralize_rules.
11 12 13 |
# File 'lib/slick/util/inflections.rb', line 11 def pluralize_rules @pluralize_rules end |
.singularize_rules ⇒ Object
Returns the value of attribute singularize_rules.
12 13 14 |
# File 'lib/slick/util/inflections.rb', line 12 def singularize_rules @singularize_rules end |
Class Method Details
.irregular(singular, plural) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/slick/util/inflections.rb', line 22 def irregular(singular, plural) s0 = singular[0] srest = singular[1..-1] p0 = plural[0] prest = plural[1..-1] if s0.upcase == p0.upcase plural(/(#{s0})#{srest}$/i, '\1' + prest) plural(/(#{p0})#{prest}$/i, '\1' + prest) singular(/(#{s0})#{srest}$/i, '\1' + srest) singular(/(#{p0})#{prest}$/i, '\1' + srest) else plural(/#{s0.upcase}(?i)#{srest}$/, p0.upcase + prest) plural(/#{s0.downcase}(?i)#{srest}$/, p0.downcase + prest) plural(/#{p0.upcase}(?i)#{prest}$/, p0.upcase + prest) plural(/#{p0.downcase}(?i)#{prest}$/, p0.downcase + prest) singular(/#{s0.upcase}(?i)#{srest}$/, s0.upcase + srest) singular(/#{s0.downcase}(?i)#{srest}$/, s0.downcase + srest) singular(/#{p0.upcase}(?i)#{prest}$/, s0.upcase + srest) singular(/#{p0.downcase}(?i)#{prest}$/, s0.downcase + srest) end end |
.plural(*args) ⇒ Object
14 15 16 |
# File 'lib/slick/util/inflections.rb', line 14 def plural(*args) pluralize_rules.prepend(args) end |
.singular(*args) ⇒ Object
18 19 20 |
# File 'lib/slick/util/inflections.rb', line 18 def singular(*args) singularize_rules.prepend(args) end |
.uncountable(singular_and_plural) ⇒ Object
48 49 50 |
# File 'lib/slick/util/inflections.rb', line 48 def uncountable(singular_and_plural) irregular(singular_and_plural, singular_and_plural) end |