Sha256: a4933655dd03327ba4523b00cff934eb25d97b46eb9a92a709f19ee945d6e41a

Contents?: true

Size: 709 Bytes

Versions: 6

Compression:

Stored size: 709 Bytes

Contents

module CouchMigrate
  class BasePersistedList

    def initialize
      @list = []
    end

    def get
      read
      @list
    end

    def set(arr)
      raise "argument must be an array" unless arr.is_a?(Array)
      @list = arr.dup
      write
      self
    end

    def add(arr)
      raise "argument must be an array" unless arr.is_a?(Array)
      @list.concat(arr).uniq!
      write
      self
    end

    def remove(arr)
      raise "argument must be an array" unless arr.is_a?(Array)
      @list -= arr
      write
      self
    end

    def reset
      @list = []
      cleanup
      self
    end

    protected

    def read
    end

    def write
    end

    def cleanup
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
couch-migrate-2.0.2 lib/couch_migrate/base_persisted_list.rb
couch-migrate-1.1.3 lib/couch_migrate/base_persisted_list.rb
couch-migrate-1.1.2 lib/couch_migrate/base_persisted_list.rb
couch-migrate-1.1.1 lib/couch_migrate/base_persisted_list.rb
couch-migrate-1.1.0 lib/couch_migrate/base_persisted_list.rb
couch-migrate-1.0.0 lib/couch_migrate/base_persisted_list.rb