module HAP::Request
Public Instance Methods
get(url)
click to toggle source
# File lib/hap_client/request.rb, line 42 def get(url) request("GET", url) end
init_request()
click to toggle source
# File lib/hap_client/request.rb, line 7 def init_request() @req_queue = EM::Queue.new @res_queue = EM::Queue.new response_work = nil request_work = Proc.new do |req| if encryption_ready? encrypt(req).each do |r| if @socket.nil? send_data(r) else @socket.write(r) end end else if @socket.nil? send_data(req) else @socket.write(req) end end init_parser() @res_queue.pop(&response_work) end response_work = Proc.new do |res| @req_queue.pop(&request_work) end @req_queue.pop(&request_work) end
post(url, type, data)
click to toggle source
# File lib/hap_client/request.rb, line 46 def post(url, type, data) request("POST", url, type, data) end
put(url, type, data)
click to toggle source
# File lib/hap_client/request.rb, line 50 def put(url, type, data) request("PUT", url, type, data) end
Private Instance Methods
request(method, url, type=nil, data=nil)
click to toggle source
# File lib/hap_client/request.rb, line 56 def request(method, url, type=nil, data=nil) req = method + " " + url + " HTTP/1.1\r\n" req << "Host: homekit\r\n" if type req << "Content-Type: " + type + "\r\n" end if data req << "Content-Length: " + data.length.to_s + "\r\n" end req << "\r\n" if log_debug? if data if data[0] == '{' debug(req + data.to_s) else debug(req + RubyHome::HAP::TLV.read(data).to_s) end else debug(req) end end if data req << data.to_s end @req_queue.push(req) end