Sha256: b7ec2dd7b7c20959dc45541a51c3f3bc328e0c7a2c2fed4492fa6af90d7ab071

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

require "logger"
require "sinatra"
require "json"
require "thread"

module NSISam
  class Server < Sinatra::Application

    configure :development do
      Dir.mkdir('logs') unless File.exist?('logs')
      $stderr.reopen("logs/output.log", "w")
    end

    put "/" do
      content_type :json
      incoming = JSON.parse(request.body.read)
      {key: "value #{incoming["value"]} stored", checksum: "0"}.to_json
    end

    get "/" do
      content_type :json
      incoming = JSON.parse(request.body.read)
      return 404 if incoming["key"].include? "dont"
      {
        metadata: "this is the metadata",
        data: "data for key #{incoming["key"]}"
      }.to_json
    end

    delete "/" do
      content_type :json
      incoming = JSON.parse(request.body.read)
      return 404 if incoming["key"].include? "dont"
      deleted = incoming["key"].include?("delete")
      {deleted: deleted}.to_json
    end

    post "/" do
      content_type :json
      incoming = JSON.parse(request.body.read)
      return 404 if incoming["key"].include? "dont"
      {key: incoming["key"], checksum: 0}.to_json
    end
  end

  class FakeServerManager
    def start_server
      @thread = Thread.new do
        Server.run! :port => 8888
      end
      sleep(1)
      self
    end

    def stop_server
      @thread.kill
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nsisam-0.2.6 lib/nsisam/fake_server.rb