Class: Lingo::Database::Source::MultiValue

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

Overview

Abgeleitet von Source behandelt die Klasse Dateien mit dem Format MultiValue. Eine Zeile "Triumph;Sieg;Erfolg\n" wird gewandelt in [ nil, ['triumph', 'sieg', 'erfolg'] ]. Der Trenner zwischen Schlüssel und Projektion kann über den Parameter separator geändert werden.

Constant Summary

DEFAULT_SEPARATOR =
';'

Instance Attribute Summary

Attributes inherited from Lingo::Database::Source

#pos

Instance Method Summary (collapse)

Methods inherited from Lingo::Database::Source

#each, get, #rejected, #size

Constructor Details

- (MultiValue) initialize(id, lingo)

Returns a new instance of MultiValue



41
42
43
44
# File 'lib/lingo/database/source/multi_value.rb', line 41

def initialize(id, lingo)
  super
  @pat = /^#{@wrd}(?:#{Regexp.escape(@sep ||= DEFAULT_SEPARATOR)}#{@wrd})*$/
end

Instance Method Details

- (Object) set(db, key, val)



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

def set(db, key, val)
  values = val.map { |v| @def ? "#{v}##{@def}" : v }
  val.each { |v| db[v] = values }
end