Sha256: ecd1305e73953684cc7721b8f5e5b7580df1a3f20e16014534a65d28191c2cb5

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'json'
require 'base64'
require File.dirname(__FILE__) + '/response'

module NSISam
  class FakeClient
    def initialize
      @storage = {}
    end

    def store(data)
      key = Time.now.to_i.to_s
      @storage[key] = JSON.load(data.to_json)
      {'key' => key, 'checksum' => 0}
    end

    def store_file(file, type=:file)
      key = Time.now.to_i.to_s
      @storage[key] = {type.to_s => Base64.encode64(file)}.to_json
      Response.new "key" => key, "checksum" => 0
    end

    def get(key, expected_checksum=nil)
      if @storage.has_key?(key)
        {'data' => @storage[key]}
      else
        raise NSISam::Errors::Client::KeyNotFoundError
      end
    end

    def get_file(key, type=:file)
      if @storage.has_key?(key)
        response = Hash.new 'data' => Base64.decode64(@storage[key][type.to_s])
        Response.new response
      else
        raise NSISam::Errors::Client::KeyNotFoundError
      end
    end

    def delete(key)
      if @storage.has_key?(key)
        @storage.delete key
        {'deleted' => true}
      else
        raise NSISam::Errors::Client::KeyNotFoundError
      end
    end

    def update(key, value)
      if @storage.has_key?(key)
        @storage[key] = value
        {'key' => key, 'checksum' => 0}
      else
        raise NSISam::Errors::Client::KeyNotFoundError
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nsisam-0.6.1 lib/nsisam/fake_client.rb
nsisam-0.6.0 lib/nsisam/fake_client.rb