Class: Hearken::Indexing::PersistedTraverser

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/hearken/indexing/persisted_traverser.rb

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ PersistedTraverser

Returns a new instance of PersistedTraverser.



6
7
8
# File 'lib/hearken/indexing/persisted_traverser.rb', line 6

def initialize path
  @path = path
end

Instance Method Details

#append(track) ⇒ Object



25
26
27
28
29
# File 'lib/hearken/indexing/persisted_traverser.rb', line 25

def append track
  File.open(@path, 'a') do |file|
    file.puts track.to_a.join('<->')
  end
end

#clearObject



21
22
23
# File 'lib/hearken/indexing/persisted_traverser.rb', line 21

def clear
  File.open @path, 'w'
end

#eachObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/hearken/indexing/persisted_traverser.rb', line 10

def each
  File.open @path  do |file|
    while line = file.gets
      row = line.chomp.split '<->'
      track = Hearken::Track.new
      Hearken::Tagged::FIELDS.each {|field| track.send "#{field}=", row.shift }
      yield track
    end
  end if File.exist? @path
end