Class: Lingo::Database::Source::WordClass

Inherits:
Lingo::Database::Source show all
Defined in:
lib/lingo/database/source/word_class.rb

Overview

Abgeleitet von Source behandelt die Klasse Dateien mit dem Format WordClass. Eine Zeile "essen,essen #v essen #o esse #s\n" wird gewandelt in [ 'essen', ['esse#s', 'essen#v', 'essen#o'] ]. Der Trenner zwischen Schlüssel und Projektion kann über den Parameter separator geändert werden.

Constant Summary

DEFAULT_SEPARATOR =
','
GENDER_SEPARATOR =
'.'

Instance Attribute Summary

Attributes inherited from Lingo::Database::Source

#pos

Instance Method Summary (collapse)

Methods inherited from Lingo::Database::Source

#each, get, #rejected, #set, #size

Constructor Details

- (WordClass) initialize(id, lingo)

Returns a new instance of WordClass



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/lingo/database/source/word_class.rb', line 43

def initialize(id, lingo)
  super

  gen = Regexp.escape(GENDER_SEPARATOR)
  sep = Regexp.escape(@sep ||= DEFAULT_SEPARATOR)

  w, a = '\w%1$s(?:\|\w%1$s)*', '[+]?'
  wc   = "##{w % a}(?:#{gen}#{w % ''})?"

  @pat = /^(#{@wrd})#{sep}((?:#{@wrd}#{wc})+)$/
end