bigquery-client 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7c980f0639eae7a6531f6da8685f0bcb383afa3b
4
+ data.tar.gz: abd414579e6962e0ee7a4767f1b6093ad1973779
5
+ SHA512:
6
+ metadata.gz: 15b6cd2dff964d1d59e6443727a7c2cd52e556bb540c08e571df06d78b1fc73daca4c41a64d4a6d55f63b9728d235de18706b2ac2be70c4a3c7727a6ccd98a46
7
+ data.tar.gz: a92d722dfdf1f444bb9141537c367226537c93e727f9f72578f7d381e9c01cbb3bab04f3ff8806c23d6c4e508a446b5d415f32d116e44941a223c8fff7019dd5
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- # BigQuery Client [![Build Status](https://travis-ci.org/ttanimichi/bigquery-client.png)](https://travis-ci.org/ttanimichi/bigquery-client)
1
+ # BigQuery Client
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/bigquery-client.svg)](http://badge.fury.io/rb/bigquery-client)
4
+ [![Build Status](https://travis-ci.org/ttanimichi/bigquery-client.svg)](https://travis-ci.org/ttanimichi/bigquery-client)
2
5
 
3
6
  A Ruby interface to the BigQuery API.
4
7
 
@@ -1,3 +1,8 @@
1
+ require 'bigquery-client/datasets'
2
+ require 'bigquery-client/jobs'
3
+ require 'bigquery-client/projects'
4
+ require 'bigquery-client/tabledata'
5
+ require 'bigquery-client/tables'
1
6
  require 'bigquery-client/client'
2
7
  require 'bigquery-client/errors'
3
8
  require 'bigquery-client/version'
@@ -6,50 +6,16 @@ require 'google/api_client/auth/compute_service_account'
6
6
 
7
7
  module BigQuery
8
8
  class Client
9
+ include BigQuery::Datasets
10
+ include BigQuery::Jobs
11
+ include BigQuery::Projects
12
+ include BigQuery::Tabledata
13
+ include BigQuery::Tables
14
+
9
15
  def initialize(attributes = {})
10
16
  attributes.each { |name, value| instance_variable_set("@#{name}", value) }
11
17
  end
12
18
 
13
- def insert(table, args)
14
- rows = args.is_a?(Array) ? args : [args]
15
- result = access_api(
16
- api_method: bigquery.tabledata.insert_all,
17
- parameters: {
18
- tableId: table
19
- },
20
- body_object: {
21
- rows: rows.map { |row| { json: row } }
22
- }
23
- )
24
- handle_error(result) if result.error?
25
- end
26
-
27
- def create_table(name, schema)
28
- result = access_api(
29
- api_method: bigquery.tables.insert,
30
- body_object: {
31
- tableReference: {
32
- tableId: name
33
- },
34
- schema: {
35
- fields: schema
36
- }
37
- }
38
- )
39
- handle_error(result) if result.error?
40
- end
41
-
42
- def fetch_schema(table)
43
- result = access_api(
44
- api_method: bigquery.tables.get,
45
- parameters: {
46
- tableId: table
47
- }
48
- )
49
- handle_error(result) if result.error?
50
- JSON.parse(result.body)['schema']['fields']
51
- end
52
-
53
19
  private
54
20
 
55
21
  def access_api(params = {})
@@ -0,0 +1,6 @@
1
+ # https://cloud.google.com/bigquery/docs/reference/v2/datasets
2
+
3
+ module BigQuery
4
+ module Datasets
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # https://cloud.google.com/bigquery/docs/reference/v2/jobs
2
+
3
+ module BigQuery
4
+ module Jobs
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # https://cloud.google.com/bigquery/docs/reference/v2/projects
2
+
3
+ module BigQuery
4
+ module Projects
5
+ end
6
+ end
@@ -0,0 +1,19 @@
1
+ # https://cloud.google.com/bigquery/docs/reference/v2/tabledata
2
+
3
+ module BigQuery
4
+ module Tabledata
5
+ def insert(table, args)
6
+ rows = args.is_a?(Array) ? args : [args]
7
+ result = access_api(
8
+ api_method: bigquery.tabledata.insert_all,
9
+ parameters: {
10
+ tableId: table
11
+ },
12
+ body_object: {
13
+ rows: rows.map { |row| { json: row } }
14
+ }
15
+ )
16
+ handle_error(result) if result.error?
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,78 @@
1
+ # https://cloud.google.com/bigquery/docs/reference/v2/tables
2
+
3
+ module BigQuery
4
+ module Tables
5
+ def create_table(name, schema)
6
+ result = access_api(
7
+ api_method: bigquery.tables.insert,
8
+ body_object: {
9
+ tableReference: {
10
+ tableId: name
11
+ },
12
+ schema: {
13
+ fields: schema
14
+ }
15
+ }
16
+ )
17
+ handle_error(result) if result.error?
18
+ end
19
+
20
+ def list_tables(options = {})
21
+ result = access_api(
22
+ api_method: bigquery.tables.list,
23
+ parameters: options
24
+ )
25
+ handle_error(result) if result.error?
26
+ JSON.parse(result.body)
27
+ end
28
+
29
+ def update_table(name, options = {})
30
+ result = access_api(
31
+ api_method: bigquery.tables.update,
32
+ parameters: {
33
+ tableId: name
34
+ },
35
+ body_object: options
36
+ )
37
+ handle_error(result) if result.error?
38
+ JSON.parse(result.body)
39
+ end
40
+
41
+ def patch_table(name, options = {})
42
+ result = access_api(
43
+ api_method: bigquery.tables.patch,
44
+ parameters: {
45
+ tableId: name
46
+ },
47
+ body_object: options
48
+ )
49
+ handle_error(result) if result.error?
50
+ JSON.parse(result.body)
51
+ end
52
+
53
+ def fetch_schema(table)
54
+ fetch_table_info(table)['schema']['fields']
55
+ end
56
+
57
+ def fetch_table_info(table)
58
+ result = access_api(
59
+ api_method: bigquery.tables.get,
60
+ parameters: {
61
+ tableId: table
62
+ }
63
+ )
64
+ handle_error(result) if result.error?
65
+ JSON.parse(result.body)
66
+ end
67
+
68
+ def drop_table(name)
69
+ result = access_api(
70
+ api_method: bigquery.tables.delete,
71
+ parameters: {
72
+ tableId: name
73
+ }
74
+ )
75
+ handle_error(result) if result.error?
76
+ end
77
+ end
78
+ end
@@ -1,5 +1,5 @@
1
1
  module BigQuery
2
2
  class Client
3
- VERSION = '0.1.0'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,110 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigquery-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tsukuru Tanimichi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-01-25 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: google-api-client
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.8.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.8.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bundler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rr
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: test-unit
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: 3.0.2
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: 3.0.2
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: test-unit-rr
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: 1.0.3
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: 1.0.3
110
97
  description:
@@ -114,8 +101,8 @@ executables: []
114
101
  extensions: []
115
102
  extra_rdoc_files: []
116
103
  files:
117
- - .gitignore
118
- - .travis.yml
104
+ - ".gitignore"
105
+ - ".travis.yml"
119
106
  - Gemfile
120
107
  - LICENSE.txt
121
108
  - README.md
@@ -123,37 +110,38 @@ files:
123
110
  - bigquery-client.gemspec
124
111
  - lib/bigquery-client.rb
125
112
  - lib/bigquery-client/client.rb
113
+ - lib/bigquery-client/datasets.rb
126
114
  - lib/bigquery-client/errors.rb
115
+ - lib/bigquery-client/jobs.rb
116
+ - lib/bigquery-client/projects.rb
117
+ - lib/bigquery-client/tabledata.rb
118
+ - lib/bigquery-client/tables.rb
127
119
  - lib/bigquery-client/version.rb
128
120
  - test/helper.rb
129
121
  - test/test_client.rb
130
122
  homepage: https://github.com/ttanimichi/bigquery-client
131
123
  licenses:
132
124
  - MIT
125
+ metadata: {}
133
126
  post_install_message:
134
127
  rdoc_options: []
135
128
  require_paths:
136
129
  - lib
137
130
  required_ruby_version: !ruby/object:Gem::Requirement
138
- none: false
139
131
  requirements:
140
- - - ! '>='
132
+ - - ">="
141
133
  - !ruby/object:Gem::Version
142
134
  version: 1.9.3
143
135
  required_rubygems_version: !ruby/object:Gem::Requirement
144
- none: false
145
136
  requirements:
146
- - - ! '>='
137
+ - - ">="
147
138
  - !ruby/object:Gem::Version
148
139
  version: '0'
149
- segments:
150
- - 0
151
- hash: -1636212372983959579
152
140
  requirements: []
153
141
  rubyforge_project:
154
- rubygems_version: 1.8.23.2
142
+ rubygems_version: 2.4.5
155
143
  signing_key:
156
- specification_version: 3
144
+ specification_version: 4
157
145
  summary: A Ruby interface to the BigQuery API.
158
146
  test_files:
159
147
  - test/helper.rb