Sha256: 6d7fe55029c8d4d37a011079209eb712c13527397801509e589a787ddf6e651d
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
require "json" require "net/http" require "errors" module Client class Client def initialize(url) user_and_pass = url.match(/(\w+):(\w+)/) @user, @password = user_and_pass[1], user_and_pass[2] @url = url.match(/@(.*):/)[1] @port = url.match(/([0-9]+)(\/)$/)[1] end def store(data) request_data = {:value => data}.to_json request = prepare_request :PUT, request_data execute_request(request) end def delete(key) request_data = {:key => key}.to_json request = prepare_request :DELETE, request_data execute_request(request) end def get(key) request_data = {:key => key}.to_json request = prepare_request :GET, request_data execute_request(request) end def update(key, value) request_data = {:key => key, :value => value}.to_json request = prepare_request :POST, request_data execute_request(request) end private def prepare_request(verb, body) verb = verb.to_s.capitalize! request = Net::HTTP.const_get("#{verb}").new '/' request.body = body request.basic_auth @user, @password request end def execute_request(request) response = Net::HTTP.start @url, @port do |http| http.request(request) end raise NSISam::Errors::Client::KeyNotFoundError if response.code == "404" JSON.parse(response.body) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nsisam-0.2.1 | lib/client.rb |