Sha256: 94a3d3b9a1d6cc1582aa1c8647b1f601721200d6fbfe192c05ed5d5411e0e755
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
# -- coding: utf-8 class KyotoTycoon class Tsvrpc def initialize(host, port) @host = host @port = port end def http(agent) case agent when :skinny Skinny.new(@host, @port) else Nethttp.new(@host, @port) end end def request(path, params, agent, colenc) status,body = *http(agent).request(path, params, colenc) if ![200, 450].include?(status) raise body end {:status => status, :body => body} end def self.parse(body) body.split("\n").inject({}){|r, line| k,v = *line.split("\t", 2).map{|v| CGI.unescape(v)} r[k] = v r } end def self.build_query(params, colenc='U') query = "" if params case colenc.to_s.upcase.to_sym when :U query = params.inject([]){|r, tmp| unless tmp.last.nil? r << tmp.map{|v| CGI.escape(v.to_s)}.join("\t") end r }.join("\r\n") when :B query = params.inject([]){|r, tmp| unless tmp.last.nil? r << tmp.map{|v| Base64.encode64(v.to_s).rstrip}.join("\t") end r }.join("\r\n") else raise "Unknown colenc '#{colenc}'" end end query end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
kyototycoon-0.1.2 | lib/kyototycoon/tsvrpc.rb |
kyototycoon-0.1.1 | lib/kyototycoon/tsvrpc.rb |