Sha256: 174a3e3f6c3a50489b124bf15eadf14c4290e1d568013b6243e30ab37271198b
Contents?: true
Size: 843 Bytes
Versions: 3
Compression:
Stored size: 843 Bytes
Contents
class String PLURAL_RULES = [ [/(x|ch|ss|sh)$/, '\1es'], # search, switch, fix, box, process, address [/([^aeiouy]|qu)ies$/, '\1y'], [/([^aeiouy]|qu)y$/, '\1ies'], # query, ability, agency [/(?:([^f])fe|([lr])f)$/, '\1\2ves'], # half, safe, wife [/sis$/, 'ses'], # basis, diagnosis [/([ti])um$/, '\1a'], # datum, medium [/person$/, 'people'], # person, salesperson [/man$/, 'men'], # man, woman, spokesman [/child$/, 'children'], # child [/s$/, 's'], # no change (compatibility) [/$/, 's'] ] def plural result = self.to_s.dup PLURAL_RULES.each do |(rule, replacement)| break if result.gsub!(rule, replacement) end return result end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
facets-0.7.0 | lib/facet/string/plural.rb |
facets-0.7.1 | lib/facet/string/plural.rb |
facets-0.7.2 | lib/facet/string/plural.rb |