Sha256: 6c32ecb94197411863b7b2643b55c22f234de3f1c90b2b764fcfce538fee8e3a

Contents?: true

Size: 993 Bytes

Versions: 9

Compression:

Stored size: 993 Bytes

Contents

require 'hearken/indexing/persisted_traverser'
require 'hearken/indexing/audio_traverser'
require 'hearken/indexing/parser'

class Hearken::Indexing::PersistantTraverser
  def initialize audio_path, store_path
    @audio_path, @store_path = audio_path, store_path
  end

  def each
    with_existing_entries do |existing_entries, persisted|
      Hearken::Indexing::AudioTraverser.new(@audio_path).each do |path|
        existing = existing_entries[path.to_s]
        existing = nil if existing and existing.timestamp != path.timestamp
        existing = nil if existing and existing.no_tag_fields?
        track = existing || Hearken::Indexing::Parser.parse(path)
        persisted.append track
        yield track
      end
    end
  end
private
  def with_existing_entries
    persisted = Hearken::Indexing::PersistedTraverser.new @store_path
    entries = {}
    persisted.each do |entry|
      entries[entry.path] = entry
    end
    persisted.clear
    yield entries, persisted
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
hearken-0.1.3 lib/hearken/indexing/persistant_traverser.rb
hearken-0.1.2 lib/hearken/indexing/persistant_traverser.rb
hearken-0.1.1 lib/hearken/indexing/persistant_traverser.rb
hearken-0.1.0 lib/hearken/indexing/persistant_traverser.rb
hearken-0.0.6 lib/hearken/indexing/persistant_traverser.rb
hearken-0.0.5 lib/hearken/indexing/persistant_traverser.rb
hearken-0.0.4 lib/hearken/indexing/persistant_traverser.rb
hearken-0.0.3 lib/hearken/indexing/persistant_traverser.rb
hearken-0.0.2 lib/hearken/indexing/persistant_traverser.rb