lib/td/api_iface.rb in td-0.7.0 vs lib/td/api_iface.rb in td-0.7.1

- old
+ new

@@ -139,18 +139,52 @@ js = JSON.load(body) # TODO debug type = (js['type'] || '?').to_sym # TODO query = js['query'] status = js['status'] - result = js['result'] debug = js['debug'] url = js['url'] start_at = js['start_at'] end_at = js['end_at'] - return [type, query, status, result, url, debug, start_at, end_at] + return [type, query, status, url, debug, start_at, end_at] end + def job_result(job_id) + require 'msgpack' + code, body, res = get("/v3/job/result/#{e job_id}", {'format'=>'msgpack'}) + if code != "200" + raise_error("Get job result failed", res) + end + result = [] + MessagePack::Unpacker.new.feed_each(body) {|row| + result << row + } + return result + end + + def job_result_each(job_id, &block) + # TODO chunked encoding + require 'msgpack' + code, body, res = get("/v3/job/result/#{e job_id}", {'format'=>'msgpack'}) + if code != "200" + raise_error("Get job result failed", res) + end + result = [] + MessagePack::Unpacker.new.feed_each(body) {|row| + yield row + } + nil + end + + def job_result_raw(job_id, format) + code, body, res = get("/v3/job/result/#{e job_id}", {'format'=>format}) + if code != "200" + raise_error("Get job result failed", res) + end + return body + end + # => jobId:String def hive_query(q, db=nil) code, body, res = post("/v3/job/issue/hive/#{e db}", {'query'=>q}) if code != "200" raise_error("Query failed", res) @@ -209,11 +243,19 @@ status = js['status'] return status end private - HOST = ENV['TD_API_SERVER'] || 'api.treasure-data.com' - PORT = 80 + host = 'api.treasure-data.com' + port = 80 + if e = ENV['TD_API_SERVER'] + host, port_ = e.split(':',2) + port_ = port_.to_i + port = port_ if port_ != 0 + end + + HOST = host + PORT = port USE_SSL = false BASE_URL = '' def get(url, params=nil) http, header = new_http