Sha256: 3d8cb20d597f47acf970fda30d4200b6d31175e8fa7e9fae9445f6c359ce1fbe

Contents?: true

Size: 645 Bytes

Versions: 3

Compression:

Stored size: 645 Bytes

Contents

require 'couchrest'

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
      self
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
couch-migrate-1.1.1 lib/couch_migrate/couch_persisted_list.rb
couch-migrate-1.1.0 lib/couch_migrate/couch_persisted_list.rb
couch-migrate-1.0.0 lib/couch_migrate/couch_persisted_list.rb