Sha256: c41605154f1ff6f6fe61740d2d1271e930c21a64b1074c7b80633ff7a81bbf81

Contents?: true

Size: 904 Bytes

Versions: 3

Compression:

Stored size: 904 Bytes

Contents

module ChangeAgent
  class Client

    include ChangeAgent::Sync
    attr_accessor :directory

    def initialize(directory=nil, remote=nil)
      @directory = File.expand_path(directory || Dir.pwd)
      @remote = remote
    end

    def repo
      if @remote.nil?
        @repo ||= Rugged::Repository.init_at directory
      else
        @repo ||= Rugged::Repository.clone_at @remote, directory, {:credentials => credentials}
      end
    end

    def set(key, value)
      document = Document.new(key, self)
      document.contents = value
      return unless document.changed?
      document.save
      document
    end

    def get(key)
      get_document(key).contents
    end

    def get_document(key)
      Document.new(key, self)
    end

    def delete(key)
      Document.new(key, self).delete
    end

    def inspect
      "#<ChangeAgent::Client repo=\"#{directory}\">"
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
change_agent-0.2.3 lib/change_agent/client.rb
change_agent-0.2.2 lib/change_agent/client.rb
change_agent-0.2.0 lib/change_agent/client.rb