td-client 0.8.32 → 0.8.33
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +6 -0
- data/lib/td/client.rb +2 -2
- data/lib/td/client/api.rb +68 -6
- data/lib/td/client/version.rb +1 -1
- metadata +2 -2
data/ChangeLog
CHANGED
data/lib/td/client.rb
CHANGED
@@ -279,8 +279,8 @@ class Client
|
|
279
279
|
end
|
280
280
|
|
281
281
|
# => time:Flaot
|
282
|
-
def import(db_name, table_name, format, stream, size)
|
283
|
-
@api.import(db_name, table_name, format, stream, size)
|
282
|
+
def import(db_name, table_name, format, stream, size, unique_id=nil)
|
283
|
+
@api.import(db_name, table_name, format, stream, size, unique_id)
|
284
284
|
end
|
285
285
|
|
286
286
|
# => [Result]
|
data/lib/td/client/api.rb
CHANGED
@@ -408,7 +408,7 @@ class API
|
|
408
408
|
raise_error("Get job result failed", res)
|
409
409
|
end
|
410
410
|
if io
|
411
|
-
res.
|
411
|
+
res.each_fragment {|fragment|
|
412
412
|
io.write(fragment)
|
413
413
|
}
|
414
414
|
end
|
@@ -425,7 +425,7 @@ class API
|
|
425
425
|
raise_error("Get job result failed", res)
|
426
426
|
end
|
427
427
|
u = MessagePack::Unpacker.new
|
428
|
-
res.
|
428
|
+
res.each_fragment {|fragment|
|
429
429
|
u.feed_each(fragment, &block)
|
430
430
|
}
|
431
431
|
}
|
@@ -744,8 +744,13 @@ class API
|
|
744
744
|
##
|
745
745
|
|
746
746
|
# => time:Float
|
747
|
-
def import(db, table, format, stream, size)
|
748
|
-
|
747
|
+
def import(db, table, format, stream, size, unique_id=nil)
|
748
|
+
if unique_id
|
749
|
+
path = "/v3/table/import_with_id/#{e db}/#{e table}/#{unique_id}/#{format}"
|
750
|
+
else
|
751
|
+
path = "/v3/table/import/#{e db}/#{e table}/#{format}"
|
752
|
+
end
|
753
|
+
code, body, res = put(path, stream, size)
|
749
754
|
if code[0] != ?2
|
750
755
|
raise_error("Import failed", res)
|
751
756
|
end
|
@@ -1206,6 +1211,32 @@ class API
|
|
1206
1211
|
|
1207
1212
|
|
1208
1213
|
private
|
1214
|
+
module DeflateReadBodyMixin
|
1215
|
+
attr_accessor :gzip
|
1216
|
+
|
1217
|
+
def each_fragment(&block)
|
1218
|
+
if @gzip
|
1219
|
+
infl = Zlib::Inflate.new(Zlib::MAX_WBITS+16)
|
1220
|
+
else
|
1221
|
+
infl = Zlib::Inflate.new
|
1222
|
+
end
|
1223
|
+
begin
|
1224
|
+
read_body do |fragment|
|
1225
|
+
block.call infl.inflate(fragment)
|
1226
|
+
end
|
1227
|
+
ensure
|
1228
|
+
infl.close
|
1229
|
+
end
|
1230
|
+
nil
|
1231
|
+
end
|
1232
|
+
end
|
1233
|
+
|
1234
|
+
module DirectReadBodyMixin
|
1235
|
+
def each_fragment(&block)
|
1236
|
+
read_body(&block)
|
1237
|
+
end
|
1238
|
+
end
|
1239
|
+
|
1209
1240
|
def get(url, params=nil, &block)
|
1210
1241
|
http, header = new_http
|
1211
1242
|
|
@@ -1216,11 +1247,42 @@ class API
|
|
1216
1247
|
}.join('&')
|
1217
1248
|
end
|
1218
1249
|
|
1250
|
+
header['Accept-Encoding'] = 'deflate, gzip'
|
1219
1251
|
request = Net::HTTP::Get.new(path, header)
|
1220
1252
|
|
1221
|
-
|
1253
|
+
if block
|
1254
|
+
response = http.request(request) do |res|
|
1255
|
+
if ce = res.header['Content-Encoding']
|
1256
|
+
require 'zlib'
|
1257
|
+
res.extend(DeflateReadBodyMixin)
|
1258
|
+
res.gzip = true if ce == 'gzip'
|
1259
|
+
else
|
1260
|
+
res.extend(DirectReadBodyMixin)
|
1261
|
+
end
|
1262
|
+
block.call(res)
|
1263
|
+
end
|
1264
|
+
else
|
1265
|
+
response = http.request(request)
|
1266
|
+
end
|
1267
|
+
|
1268
|
+
body = response.body
|
1269
|
+
unless block
|
1270
|
+
if ce = response.header['content-encoding']
|
1271
|
+
require 'zlib'
|
1272
|
+
if ce == 'gzip'
|
1273
|
+
infl = Zlib::Inflate.new(Zlib::MAX_WBITS+16)
|
1274
|
+
begin
|
1275
|
+
body = infl.inflate(body)
|
1276
|
+
ensure
|
1277
|
+
infl.close
|
1278
|
+
end
|
1279
|
+
else
|
1280
|
+
body = Zlib::Inflate.inflate(body)
|
1281
|
+
end
|
1282
|
+
end
|
1283
|
+
end
|
1222
1284
|
|
1223
|
-
return [response.code,
|
1285
|
+
return [response.code, body, response]
|
1224
1286
|
end
|
1225
1287
|
|
1226
1288
|
def post(url, params=nil)
|
data/lib/td/client/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.33
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|