Class: Lingo::Database::Source::KeyValue

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

Overview

– Abgeleitet von Source behandelt die Klasse Dateien mit dem Format KeyValue. Eine Zeile "Fachbegriff*Fachterminus\n" wird gewandelt in [ 'fachbegriff', ['fachterminus#s'] ]. Die Wortklasse kann über den Parameter def-wc beeinflusst werden. Der Trenner zwischen Schlüssel und Projektion kann über den Parameter separator geändert werden. ++

Constant Summary collapse

DEFAULT_SEPARATOR =
'*'.freeze
DEFAULT_DEF_WC =
Language::LA_UNKNOWN

Constants inherited from Lingo::Database::Source

LEXICAL_SEPARATOR, MAX_LENGTH

Instance Attribute Summary

Attributes inherited from Lingo::Database::Source

#pos

Instance Method Summary collapse

Methods inherited from Lingo::Database::Source

#each, #each_dump, #each_lexical, #each_line, from_config, from_id, lexicals, #rejected, #set, #size

Constructor Details

#initializeKeyValue

Returns a new instance of KeyValue.



46
47
48
49
# File 'lib/lingo/database/source/key_value.rb', line 46

def initialize(*)
  super
  @pat = /^(#{@wrd})#{Regexp.escape(@sep)}(#{@wrd})$/
end

Instance Method Details

#dump_line(key, val, sep = @sep) ⇒ Object



55
56
57
# File 'lib/lingo/database/source/key_value.rb', line 55

def dump_line(key, val, sep = @sep, *)
  val.map(&:form).unshift(key).join(sep)
end

#parse_line(line, key, val) ⇒ Object



51
52
53
# File 'lib/lingo/database/source/key_value.rb', line 51

def parse_line(line, key, val)
  [key.strip, [lexical(val.strip, @def)]]
end