Sha256: d03437d3701d09372a2833d819e7bd150b1d23a6d6b43e467cf018778e9715dc

Contents?: true

Size: 1.13 KB

Versions: 6

Compression:

Stored size: 1.13 KB

Contents

module Index
  
  module File
    
    # Index data dumped in the text format.
    #
    class Text < Basic
      
      # Uses the extension "txt".
      #
      def extension
        :txt
      end
      # Text files are used exclusively for
      # prepared data files.
      #
      def load
        raise "Can't load from text file. Use JSON or Marshal."
      end
      # Text files are used exclusively for
      # prepared data files. 
      #
      def dump hash
        raise "Can't dump to text file. Use JSON or Marshal."
      end
      
      # Retrieves prepared index data in the form
      # * id,data\n
      # * id,data\n
      # * id,data\n
      #
      # Yields an id string and a symbol token.
      #
      def retrieve
        id    = nil
        token = nil
        ::File.open(cache_path, 'r:binary') do |file|
          file.each_line do |line|
            id, token = line.split ?,, 2
            yield id, (token.chomp! || token).to_sym
          end
        end
      end
      
      #
      #
      def open_for_indexing &block
        ::File.open cache_path, 'w:binary', &block
      end
      
      
    end
    
  end
  
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
picky-1.4.1 lib/picky/index/file/text.rb
picky-1.4.0 lib/picky/index/file/text.rb
picky-1.3.4 lib/picky/index/file/text.rb
picky-1.3.3 lib/picky/index/file/text.rb
picky-1.3.2 lib/picky/index/file/text.rb
picky-1.3.1 lib/picky/index/file/text.rb