class Zenlish::WClasses::CommonNoun

Common nouns refer to general entities. Most have a singular and plural form.

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/zenlish/wclasses/common_noun.rb, line 10
def initialize
  super
  @paradigms = {}
  init_paradigms
end

Public Instance Methods

paradigm() click to toggle source

@return [Inflection::InflectionTable] Return default paradigm

# File lib/zenlish/wclasses/common_noun.rb, line 17
def paradigm
  paradigm_feat_def = self['PARADIGM']
  paradigms[paradigm_feat_def.default.val]
end

Private Instance Methods

add_paradigm(anInflectionTable) click to toggle source
# File lib/zenlish/wclasses/common_noun.rb, line 51
def add_paradigm(anInflectionTable)
  @paradigms[anInflectionTable.name] = anInflectionTable
end
init_paradigms() click to toggle source
# File lib/zenlish/wclasses/common_noun.rb, line 24
def init_paradigms
  builder = Inflect::InflectionTableBuilder.new

  table = builder.build('Common_form') do
    feature_heading 'NUMBER'
    method_heading 'base_form'
    rule([equals(:singular), dont_care], col('base_form'))
    rule([equals(:plural),   matches(/[^aeiouy]y$/)], sub(col('base_form'), /y$/, 'ies'))
    rule([equals(:plural),   dont_care], concat(col('base_form'), 's'))
  end
  add_paradigm(table)

  table = builder.build('Plural_only') do
    feature_heading 'NUMBER'
    method_heading 'base_form'
    rule([equals(:plural), dont_care], col('base_form'))
  end
  add_paradigm(table)

  table = builder.build('Singular_only') do
    feature_heading 'NUMBER'
    method_heading 'base_form'
    rule([equals(:singular), dont_care], col('base_form'))
  end
  add_paradigm(table)
end