Sha256: 53165f8af79ff22abed3bbcf3381a7b2cd4c6ea23ab24eb63f1564e19fa4a1ba

Contents?: true

Size: 684 Bytes

Versions: 1

Compression:

Stored size: 684 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
      self
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
couch-migrate-1.1.2 lib/couch_migrate/couch_persisted_list.rb