Sha256: 54bbaaf861b2e6270a58430e882e2950c4a74139bcbfd4174d08b0e373626bed

Contents?: true

Size: 673 Bytes

Versions: 2

Compression:

Stored size: 673 Bytes

Contents

require 'couchrest'
require_relative 'base_persisted_list'

module CouchMigrate
  class CouchPersistedList < BasePersistedList
    DocName = 'migrations'
    MigrationField = 'completed'

    def initialize(database)
      @db = CouchRest.database!(database) # find or create
      raise "db cannot be created using url #{database}" if @db.nil?
      super()
      self
    end

    private

    def read
      @list = @db.get(DocName)[MigrationField] rescue []
    end

    def write
      doc = @db.get(DocName) rescue {'_id' => DocName}
      doc[MigrationField] = @list
      @db.save_doc(doc)
    end

    def cleanup
      @list = []
      write
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
couch-migrate-2.0.2 lib/couch_migrate/couch_persisted_list.rb
couch-migrate-1.1.3 lib/couch_migrate/couch_persisted_list.rb