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.

Instance Attribute Summary

Attributes inherited from Lingo::Database::Source

#pos

Instance Method Summary (collapse)

Methods inherited from Lingo::Database::Source

#each, get, #size

Constructor Details

- (MultiValue) initialize(id, lingo)

A new instance of MultiValue



39
40
41
42
# File 'lib/lingo/database/source/multi_value.rb', line 39

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

Instance Method Details

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



44
45
46
47
# File 'lib/lingo/database/source/multi_value.rb', line 44

def set(db, key, val)
  db[key = "#{IDX_REF}#{@idx += 1}"] = val
  val.each { |v| db[v] = [key] }
end