Sha256: 7e31fffc9beeeb9d9a1571ce4e46d481e5a88f819df5ee8c4084e18bbb963a3a

Contents?: true

Size: 1.25 KB

Versions: 9

Compression:

Stored size: 1.25 KB

Contents

module Picky

  module Backends

    class Memory

      # Index data dumped in the text format.
      #
      # TODO Should this really be Memory::Text?
      #
      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:utf-8') do |file|
            file.each_line do |line|
              id, token = line.split ?,, 2
              yield id, (token.chomp! || token).to_sym
            end
          end
        end

        #
        #
        def open &block
          ::File.open cache_path, 'w:utf-8', &block
        end


      end

    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
picky-3.1.9 lib/picky/backends/memory/text.rb
picky-3.1.8 lib/picky/backends/memory/text.rb
picky-3.1.7 lib/picky/backends/memory/text.rb
picky-3.1.6 lib/picky/backends/memory/text.rb
picky-3.1.5 lib/picky/backends/memory/text.rb
picky-3.1.4 lib/picky/backends/memory/text.rb
picky-3.1.3 lib/picky/backends/memory/text.rb
picky-3.1.2 lib/picky/backends/memory/text.rb
picky-3.1.1 lib/picky/backends/memory/text.rb