kura 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog.md +9 -0
- data/lib/kura/client.rb +76 -30
- data/lib/kura/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bd51f30481828394075cc17c42f3031f56a51c2
|
4
|
+
data.tar.gz: cc6746437f90c04859b1d0f7e7cf6288f754334a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bb5f60f7b05bc12116cbc68f369c47dbc7368acfd4b03ca42f484577fa3acd1bb28b30437b508561c73de858b5d83b97cf59f27e4fd89634780e64fbaac16d3
|
7
|
+
data.tar.gz: becb95614ed113f44f4ae733055d2483b61d6a41878d09368e0eb85b5b34ad08fb6a6c42ac0c26e2c4f6c304d34daad7e066bfc261b40772525c481b0a083d48
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 0.2.5
|
2
|
+
|
3
|
+
## Enhancements
|
4
|
+
|
5
|
+
* Add Kura::Client#batch and support Baches API call for #projects, #datasets, #dataset,
|
6
|
+
#tables, #table, #list\_tabledata. The results of these api call are passwed to blocks.
|
7
|
+
See also https://github.com/google/google-api-ruby-client#batches
|
8
|
+
The job insertion methods (load, query, extract, copy) are not supported to call in batch's block.
|
9
|
+
|
1
10
|
# 0.2.4
|
2
11
|
|
3
12
|
## Enhancements
|
data/lib/kura/client.rb
CHANGED
@@ -49,61 +49,93 @@ module Kura
|
|
49
49
|
end
|
50
50
|
private :process_error
|
51
51
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
52
|
+
def batch
|
53
|
+
@api.batch do |api|
|
54
|
+
original_api, @api = @api, api
|
55
|
+
begin
|
56
|
+
yield
|
57
|
+
ensure
|
58
|
+
@api = original_api
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def projects(limit: 1000, &blk)
|
64
|
+
if blk
|
65
|
+
@api.list_projects(max_results: limit) do |result, err|
|
66
|
+
result &&= result.projects
|
67
|
+
blk.call(result, err)
|
68
|
+
end
|
69
|
+
else
|
70
|
+
result = @api.list_projects(max_results: limit)
|
71
|
+
result.projects
|
72
|
+
end
|
55
73
|
rescue
|
56
74
|
process_error($!)
|
57
75
|
end
|
58
76
|
|
59
|
-
def datasets(project_id: @default_project_id, all: false, limit: 1000)
|
60
|
-
|
61
|
-
|
77
|
+
def datasets(project_id: @default_project_id, all: false, limit: 1000, &blk)
|
78
|
+
if blk
|
79
|
+
@api.list_datasets(project_id, all: all, max_results: limit) do |result, err|
|
80
|
+
result &&= result.datasets
|
81
|
+
blk.call(result, err)
|
82
|
+
end
|
83
|
+
else
|
84
|
+
result = @api.list_datasets(project_id, all: all, max_results: limit)
|
85
|
+
result.datasets
|
86
|
+
end
|
62
87
|
rescue
|
63
88
|
process_error($!)
|
64
89
|
end
|
65
90
|
|
66
|
-
def dataset(dataset_id, project_id: @default_project_id)
|
67
|
-
@api.get_dataset(project_id, dataset_id)
|
91
|
+
def dataset(dataset_id, project_id: @default_project_id, &blk)
|
92
|
+
@api.get_dataset(project_id, dataset_id, &blk)
|
68
93
|
rescue
|
69
94
|
return nil if $!.respond_to?(:status_code) and $!.status_code == 404
|
70
95
|
process_error($!)
|
71
96
|
end
|
72
97
|
|
73
|
-
def insert_dataset(dataset_id, project_id: @default_project_id)
|
98
|
+
def insert_dataset(dataset_id, project_id: @default_project_id, &blk)
|
74
99
|
obj = Google::Apis::BigqueryV2::Dataset.new(dataset_reference: Google::Apis::BigqueryV2::DatasetReference.new(project_id: project_id, dataset_id: dataset_id))
|
75
|
-
@api.insert_dataset(project_id, obj)
|
100
|
+
@api.insert_dataset(project_id, obj, &blk)
|
76
101
|
rescue
|
77
102
|
process_error($!)
|
78
103
|
end
|
79
104
|
|
80
|
-
def delete_dataset(dataset_id, project_id: @default_project_id, delete_contents: false)
|
81
|
-
@api.delete_dataset(project_id, dataset_id, delete_contents: delete_contents)
|
105
|
+
def delete_dataset(dataset_id, project_id: @default_project_id, delete_contents: false, &blk)
|
106
|
+
@api.delete_dataset(project_id, dataset_id, delete_contents: delete_contents, &blk)
|
82
107
|
rescue
|
83
108
|
return nil if $!.respond_to?(:status_code) and $!.status_code == 404
|
84
109
|
process_error($!)
|
85
110
|
end
|
86
111
|
|
87
|
-
def patch_dataset(dataset_id, project_id: @default_project_id, access: nil, description: :na, default_table_expiration_ms: :na, friendly_name: :na )
|
112
|
+
def patch_dataset(dataset_id, project_id: @default_project_id, access: nil, description: :na, default_table_expiration_ms: :na, friendly_name: :na, &blk)
|
88
113
|
obj = Google::Apis::BigqueryV2::Dataset.new(dataset_reference: Google::Apis::BigqueryV2::DatasetReference.new(project_id: project_id, dataset_id: dataset_id))
|
89
114
|
obj.access = access if access
|
90
115
|
obj.default_table_expiration_ms = default_table_expiration_ms if default_table_expiration_ms != :na
|
91
116
|
obj.description = description if description != :na
|
92
117
|
obj.friendly_name = friendly_name if friendly_name != :na
|
93
|
-
@api.patch_dataset(project_id, dataset_id, obj)
|
118
|
+
@api.patch_dataset(project_id, dataset_id, obj, &blk)
|
94
119
|
rescue
|
95
120
|
process_error($!)
|
96
121
|
end
|
97
122
|
|
98
|
-
def tables(dataset_id, project_id: @default_project_id, limit: 1000)
|
99
|
-
|
100
|
-
|
123
|
+
def tables(dataset_id, project_id: @default_project_id, limit: 1000, &blk)
|
124
|
+
if blk
|
125
|
+
@api.list_tables(project_id, dataset_id, max_results: limit) do |result, err|
|
126
|
+
result &&= result.tables
|
127
|
+
blk.call(result, err)
|
128
|
+
end
|
129
|
+
else
|
130
|
+
result = @api.list_tables(project_id, dataset_id, max_results: limit)
|
131
|
+
result.tables
|
132
|
+
end
|
101
133
|
rescue
|
102
134
|
process_error($!)
|
103
135
|
end
|
104
136
|
|
105
|
-
def table(dataset_id, table_id, project_id: @default_project_id)
|
106
|
-
@api.get_table(project_id, dataset_id, table_id)
|
137
|
+
def table(dataset_id, table_id, project_id: @default_project_id, &blk)
|
138
|
+
@api.get_table(project_id, dataset_id, table_id, &blk)
|
107
139
|
rescue
|
108
140
|
return nil if $!.respond_to?(:status_code) and $!.status_code == 404
|
109
141
|
process_error($!)
|
@@ -111,7 +143,7 @@ module Kura
|
|
111
143
|
|
112
144
|
def insert_table(dataset_id, table_id, project_id: @default_project_id, expiration_time: nil,
|
113
145
|
friendly_name: nil, schema: nil, description: nil,
|
114
|
-
query: nil, external_data_configuration: nil)
|
146
|
+
query: nil, external_data_configuration: nil, &blk)
|
115
147
|
if expiration_time
|
116
148
|
expiration_time = (expiration_time.to_f * 1000.0).to_i
|
117
149
|
end
|
@@ -129,12 +161,12 @@ module Kura
|
|
129
161
|
expiration_time: expiration_time,
|
130
162
|
view: view,
|
131
163
|
external_data_configuration: external_data_configuration)
|
132
|
-
@api.insert_table(project_id, dataset_id, table)
|
164
|
+
@api.insert_table(project_id, dataset_id, table, &blk)
|
133
165
|
rescue
|
134
166
|
process_error($!)
|
135
167
|
end
|
136
168
|
|
137
|
-
def patch_table(dataset_id, table_id, project_id: @default_project_id, expiration_time: :na, friendly_name: :na, description: :na)
|
169
|
+
def patch_table(dataset_id, table_id, project_id: @default_project_id, expiration_time: :na, friendly_name: :na, description: :na, &blk)
|
138
170
|
if expiration_time != :na and not(expiration_time.nil?)
|
139
171
|
expiration_time = (expiration_time.to_f * 1000.0).to_i
|
140
172
|
end
|
@@ -142,23 +174,19 @@ module Kura
|
|
142
174
|
table.friendly_name = friendly_name if friendly_name != :na
|
143
175
|
table.description = description if description != :na
|
144
176
|
table.expiration_time = expiration_time if expiration_time != :na
|
145
|
-
@api.patch_table(project_id, dataset_id, table_id, table)
|
177
|
+
@api.patch_table(project_id, dataset_id, table_id, table, &blk)
|
146
178
|
rescue
|
147
179
|
process_error($!)
|
148
180
|
end
|
149
181
|
|
150
|
-
def delete_table(dataset_id, table_id, project_id: @default_project_id)
|
151
|
-
@api.delete_table(project_id, dataset_id, table_id)
|
182
|
+
def delete_table(dataset_id, table_id, project_id: @default_project_id, &blk)
|
183
|
+
@api.delete_table(project_id, dataset_id, table_id, &blk)
|
152
184
|
rescue
|
153
185
|
return nil if $!.respond_to?(:status_code) and $!.status_code == 404
|
154
186
|
process_error($!)
|
155
187
|
end
|
156
188
|
|
157
|
-
def
|
158
|
-
schema ||= table(dataset_id, table_id, project_id: project_id).schema.fields
|
159
|
-
field_names = schema.map{|f| f.respond_to?(:[]) ? (f["name"] || f[:name]) : f.name }
|
160
|
-
|
161
|
-
r = @api.list_table_data(project_id, dataset_id, table_id, max_results: max_result, start_index: start_index, page_token: page_token)
|
189
|
+
def format_tabledata(r, field_names)
|
162
190
|
{
|
163
191
|
total_rows: r.total_rows.to_i,
|
164
192
|
next_token: r.page_token,
|
@@ -166,6 +194,24 @@ module Kura
|
|
166
194
|
row.f.zip(field_names).each_with_object({}) do |(v, fn), tbl| tbl[fn] = v.v end
|
167
195
|
end
|
168
196
|
}
|
197
|
+
end
|
198
|
+
private :format_tabledata
|
199
|
+
|
200
|
+
def list_tabledata(dataset_id, table_id, project_id: @default_project_id, start_index: 0, max_result: 100, page_token: nil, schema: nil, &blk)
|
201
|
+
schema ||= table(dataset_id, table_id, project_id: project_id).schema.fields
|
202
|
+
field_names = schema.map{|f| f.respond_to?(:[]) ? (f["name"] || f[:name]) : f.name }
|
203
|
+
|
204
|
+
if blk
|
205
|
+
@api.list_table_data(project_id, dataset_id, table_id, max_results: max_result, start_index: start_index, page_token: page_token) do |r, err|
|
206
|
+
if r
|
207
|
+
r = format_tabledata(r, field_names)
|
208
|
+
end
|
209
|
+
blk.call(r, err)
|
210
|
+
end
|
211
|
+
else
|
212
|
+
r = @api.list_table_data(project_id, dataset_id, table_id, max_results: max_result, start_index: start_index, page_token: page_token)
|
213
|
+
format_tabledata(r, field_names)
|
214
|
+
end
|
169
215
|
rescue
|
170
216
|
process_error($!)
|
171
217
|
end
|
data/lib/kura/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kura
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chikanaga Tomoyuki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-api-client
|