module Persist::FWTAdapter
Attributes
Public Class Methods
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 10 def self.open(path, value_size, range = false, update = false, in_memory = false, &pos_function) db = CONNECTIONS[path] ||= FixWidthTable.new(path, value_size, range, update, in_memory) db.extend Persist::FWTAdapter db.persistence_path = path db.pos_function = pos_function db end
Public Instance Methods
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 73 def <<(key, value) self.send(:[]=, *i) end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 40 def [](key) if TSV::ENTRY_KEYS.include? key metadata[key] else key = pos_function.call(key) if pos_function res = super(key) res.extend MultipleResult res end end
Calls superclass method
Persist::TSVAdapter#[]
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 51 def []=(key, value) if TSV::ENTRY_KEYS.include? key set_metadata(key, value) else if @range add_range_point key, value else add key, value end end end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 63 def add(key, value) key = pos_function.call(key) if pos_function and not (@range and Array === key) super(key, value) end
Calls superclass method
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 68 def add_range_point(key, value) key = pos_function.call(key) if pos_function super(key, value) end
Calls superclass method
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 87 def each read @size.times do |i| v = idx_value(i) yield i, v end end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 77 def include?(i) return true if Numeric === i and i < pos(@size) return true if metadata.include? i false end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 27 def metadata return {} unless File.exist? metadata_file Open.open(metadata_file, :mode => "rb") do |f| Marshal.load(f) end end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 23 def metadata_file @metadata_file ||= self.persistence_path + '.metadata' end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 18 def persistence_path=(value) @persistence_path = value @filename = value end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 34 def set_metadata(k,v) metadata = self.metadata metadata[k] = v Misc.sensiblewrite(metadata_file, Marshal.dump(metadata)) end