google-cloud-language 0.20.2 → 0.21.0
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/lib/google-cloud-language.rb +14 -19
- data/lib/google/cloud/language.rb +72 -28
- data/lib/google/cloud/language/annotation.rb +22 -33
- data/lib/google/cloud/language/document.rb +12 -18
- data/lib/google/cloud/language/project.rb +27 -35
- data/lib/google/cloud/language/service.rb +36 -20
- data/lib/google/cloud/language/v1beta1/language_service_api.rb +51 -8
- data/lib/google/cloud/language/version.rb +1 -1
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6536bd82a69982cc8b9da419acc3eeb883bdb739
|
4
|
+
data.tar.gz: 84831608d0fbb373ee9bfe869b47dfa7b7690275
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6513aeb70c77930f49d4b5e1b73c3f254349f31f860d1ac899d8a6eccae98dc50ac776b089a7a0a65d41307801592983137acaf2cb3a5da4a43bfd20b30b1183
|
7
|
+
data.tar.gz: 537a9e4a4726b33a875d09ed4960985a4ed1f6d0dc3d2af36875dd631175555925d1bf232a8f475911770279d8da064a5916dbbdfc5fe1494cbf5abd6ba2630a
|
@@ -38,8 +38,9 @@ module Google
|
|
38
38
|
# The default scope is:
|
39
39
|
#
|
40
40
|
# * `"https://www.googleapis.com/auth/cloud-platform"`
|
41
|
-
# @param [Integer] retries This option is not currently supported.
|
42
41
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
42
|
+
# @param [Hash] client_config A hash of values to override the default
|
43
|
+
# behavior of the API client. Optional.
|
43
44
|
#
|
44
45
|
# @return [Google::Cloud::Language::Project]
|
45
46
|
#
|
@@ -60,10 +61,10 @@ module Google
|
|
60
61
|
# platform_scope = "https://www.googleapis.com/auth/cloud-platform"
|
61
62
|
# language = gcloud.language scope: platform_scope
|
62
63
|
#
|
63
|
-
def language scope: nil,
|
64
|
-
Google::Cloud.language @project, @keyfile,
|
65
|
-
|
66
|
-
|
64
|
+
def language scope: nil, timeout: nil, client_config: nil
|
65
|
+
Google::Cloud.language @project, @keyfile,
|
66
|
+
scope: scope, timeout: (timeout || @timeout),
|
67
|
+
client_config: client_config
|
67
68
|
end
|
68
69
|
|
69
70
|
##
|
@@ -85,13 +86,14 @@ module Google
|
|
85
86
|
# The default scope is:
|
86
87
|
#
|
87
88
|
# * `"https://www.googleapis.com/auth/cloud-platform"`
|
88
|
-
# @param [Integer] retries This option is not currently supported.
|
89
89
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
90
|
+
# @param [Hash] client_config A hash of values to override the default
|
91
|
+
# behavior of the API client. Optional.
|
90
92
|
#
|
91
93
|
# @return [Google::Cloud::Language::Project]
|
92
94
|
#
|
93
95
|
# @example
|
94
|
-
# require "google/cloud
|
96
|
+
# require "google/cloud"
|
95
97
|
#
|
96
98
|
# language = Google::Cloud.language
|
97
99
|
#
|
@@ -99,19 +101,12 @@ module Google
|
|
99
101
|
# document = language.document content
|
100
102
|
# annotation = document.annotate
|
101
103
|
#
|
102
|
-
def self.language project = nil, keyfile = nil, scope: nil,
|
103
|
-
|
104
|
+
def self.language project = nil, keyfile = nil, scope: nil, timeout: nil,
|
105
|
+
client_config: nil
|
104
106
|
require "google/cloud/language"
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
else
|
109
|
-
credentials = Google::Cloud::Language::Credentials.new(
|
110
|
-
keyfile, scope: scope)
|
111
|
-
end
|
112
|
-
Google::Cloud::Language::Project.new(
|
113
|
-
Google::Cloud::Language::Service.new(
|
114
|
-
project, credentials, retries: retries, timeout: timeout))
|
107
|
+
Google::Cloud::Language.new project: project, keyfile: keyfile,
|
108
|
+
scope: scope, timeout: timeout,
|
109
|
+
client_config: client_config
|
115
110
|
end
|
116
111
|
end
|
117
112
|
end
|
@@ -64,10 +64,9 @@ module Google
|
|
64
64
|
# Language service. You can provide text or HTML content as a string:
|
65
65
|
#
|
66
66
|
# ```ruby
|
67
|
-
# require "google/cloud"
|
67
|
+
# require "google/cloud/language"
|
68
68
|
#
|
69
|
-
#
|
70
|
-
# language = gcloud.language
|
69
|
+
# language = Google::Cloud::Language.new
|
71
70
|
#
|
72
71
|
# document = language.document "It was the best of times, it was..."
|
73
72
|
# ```
|
@@ -75,10 +74,9 @@ module Google
|
|
75
74
|
# Or, you can pass a Google Cloud Storage URI for a text or HTML file:
|
76
75
|
#
|
77
76
|
# ```ruby
|
78
|
-
# require "google/cloud"
|
77
|
+
# require "google/cloud/language"
|
79
78
|
#
|
80
|
-
#
|
81
|
-
# language = gcloud.language
|
79
|
+
# language = Google::Cloud::Language.new
|
82
80
|
#
|
83
81
|
# document = language.document "gs://bucket-name/path/to/document"
|
84
82
|
# ```
|
@@ -86,15 +84,16 @@ module Google
|
|
86
84
|
# Or, you can initialize it with a Google Cloud Storage File object:
|
87
85
|
#
|
88
86
|
# ```ruby
|
89
|
-
# require "google/cloud"
|
87
|
+
# require "google/cloud/storage"
|
90
88
|
#
|
91
|
-
#
|
92
|
-
# storage = gcloud.storage
|
89
|
+
# storage = Google::Cloud::Storage.new
|
93
90
|
#
|
94
91
|
# bucket = storage.bucket "bucket-name"
|
95
92
|
# file = bucket.file "path/to/document"
|
96
93
|
#
|
97
|
-
#
|
94
|
+
# require "google/cloud/language"
|
95
|
+
#
|
96
|
+
# language = Google::Cloud::Language.new
|
98
97
|
#
|
99
98
|
# document = language.document file
|
100
99
|
# ```
|
@@ -102,10 +101,9 @@ module Google
|
|
102
101
|
# You can specify the format and language of the content:
|
103
102
|
#
|
104
103
|
# ```ruby
|
105
|
-
# require "google/cloud"
|
104
|
+
# require "google/cloud/language"
|
106
105
|
#
|
107
|
-
#
|
108
|
-
# language = gcloud.language
|
106
|
+
# language = Google::Cloud::Language.new
|
109
107
|
#
|
110
108
|
# document = language.document "<p>El viejo y el mar</p>",
|
111
109
|
# format: :html, language: "es"
|
@@ -130,10 +128,9 @@ module Google
|
|
130
128
|
# English is supported for sentiment analysis.
|
131
129
|
#
|
132
130
|
# ```ruby
|
133
|
-
# require "google/cloud"
|
131
|
+
# require "google/cloud/language"
|
134
132
|
#
|
135
|
-
#
|
136
|
-
# language = gcloud.language
|
133
|
+
# language = Google::Cloud::Language.new
|
137
134
|
#
|
138
135
|
# content = "Darth Vader is the best villain in Star Wars."
|
139
136
|
# document = language.document content
|
@@ -149,10 +146,9 @@ module Google
|
|
149
146
|
# {Language::Document#entities} method.
|
150
147
|
#
|
151
148
|
# ```ruby
|
152
|
-
# require "google/cloud"
|
149
|
+
# require "google/cloud/language"
|
153
150
|
#
|
154
|
-
#
|
155
|
-
# language = gcloud.language
|
151
|
+
# language = Google::Cloud::Language.new
|
156
152
|
#
|
157
153
|
# content = "Darth Vader is the best villain in Star Wars."
|
158
154
|
# document = language.document content
|
@@ -171,10 +167,9 @@ module Google
|
|
171
167
|
# performed with the {Language::Document#syntax} method.
|
172
168
|
#
|
173
169
|
# ```ruby
|
174
|
-
# require "google/cloud"
|
170
|
+
# require "google/cloud/language"
|
175
171
|
#
|
176
|
-
#
|
177
|
-
# language = gcloud.language
|
172
|
+
# language = Google::Cloud::Language.new
|
178
173
|
#
|
179
174
|
# content = "Darth Vader is the best villain in Star Wars."
|
180
175
|
# document = language.document content
|
@@ -188,10 +183,9 @@ module Google
|
|
188
183
|
# for each desired feature to {Language::Document#annotate}:
|
189
184
|
#
|
190
185
|
# ```ruby
|
191
|
-
# require "google/cloud"
|
186
|
+
# require "google/cloud/language"
|
192
187
|
#
|
193
|
-
#
|
194
|
-
# language = gcloud.language
|
188
|
+
# language = Google::Cloud::Language.new
|
195
189
|
#
|
196
190
|
# content = "Darth Vader is the best villain in Star Wars."
|
197
191
|
# document = language.document content
|
@@ -207,10 +201,9 @@ module Google
|
|
207
201
|
# the document with **all** features:
|
208
202
|
#
|
209
203
|
# ```ruby
|
210
|
-
# require "google/cloud"
|
204
|
+
# require "google/cloud/language"
|
211
205
|
#
|
212
|
-
#
|
213
|
-
# language = gcloud.language
|
206
|
+
# language = Google::Cloud::Language.new
|
214
207
|
#
|
215
208
|
# content = "Darth Vader is the best villain in Star Wars."
|
216
209
|
# document = language.document content
|
@@ -224,6 +217,57 @@ module Google
|
|
224
217
|
# ```
|
225
218
|
#
|
226
219
|
module Language
|
220
|
+
##
|
221
|
+
# Creates a new object for connecting to the Language service.
|
222
|
+
# Each call creates a new connection.
|
223
|
+
#
|
224
|
+
# For more information on connecting to Google Cloud see the
|
225
|
+
# [Authentication
|
226
|
+
# Guide](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/guides/authentication).
|
227
|
+
#
|
228
|
+
# @param [String] project Project identifier for the Language service you
|
229
|
+
# are connecting to.
|
230
|
+
# @param [String, Hash] keyfile Keyfile downloaded from Google Cloud. If
|
231
|
+
# file path the file must be readable.
|
232
|
+
# @param [String, Array<String>] scope The OAuth 2.0 scopes controlling
|
233
|
+
# the set of resources and operations that the connection can access.
|
234
|
+
# See [Using OAuth 2.0 to Access Google
|
235
|
+
# APIs](https://developers.goorequire
|
236
|
+
# "google/cloud"gle.com/identity/protocols/OAuth2).
|
237
|
+
#
|
238
|
+
# The default scope is:
|
239
|
+
#
|
240
|
+
# * `"https://www.googleapis.com/auth/cloud-platform"`
|
241
|
+
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
242
|
+
# @param [Hash] client_config A hash of values to override the default
|
243
|
+
# behavior of the API client. Optional.
|
244
|
+
#
|
245
|
+
# @return [Google::Cloud::Language::Project]
|
246
|
+
#
|
247
|
+
# @example
|
248
|
+
# require "google/cloud/language"
|
249
|
+
#
|
250
|
+
# language = Google::Cloud::Language.new
|
251
|
+
#
|
252
|
+
# content = "Darth Vader is the best villain in Star Wars."
|
253
|
+
# document = language.document content
|
254
|
+
# annotation = document.annotate
|
255
|
+
#
|
256
|
+
def self.new project: nil, keyfile: nil, scope: nil, timeout: nil,
|
257
|
+
client_config: nil
|
258
|
+
project ||= Google::Cloud::Language::Project.default_project
|
259
|
+
if keyfile.nil?
|
260
|
+
credentials = Google::Cloud::Language::Credentials.default(
|
261
|
+
scope: scope)
|
262
|
+
else
|
263
|
+
credentials = Google::Cloud::Language::Credentials.new(
|
264
|
+
keyfile, scope: scope)
|
265
|
+
end
|
266
|
+
Google::Cloud::Language::Project.new(
|
267
|
+
Google::Cloud::Language::Service.new(
|
268
|
+
project, credentials, timeout: timeout,
|
269
|
+
client_config: client_config))
|
270
|
+
end
|
227
271
|
end
|
228
272
|
end
|
229
273
|
end
|
@@ -26,10 +26,9 @@ module Google
|
|
26
26
|
# See {Project#annotate} and {Document#annotate}.
|
27
27
|
#
|
28
28
|
# @example
|
29
|
-
# require "google/cloud"
|
29
|
+
# require "google/cloud/language"
|
30
30
|
#
|
31
|
-
#
|
32
|
-
# language = gcloud.language
|
31
|
+
# language = Google::Cloud::Language.new
|
33
32
|
#
|
34
33
|
# content = "Darth Vader is the best villain in Star Wars."
|
35
34
|
# document = language.document content
|
@@ -59,10 +58,9 @@ module Google
|
|
59
58
|
# relative location
|
60
59
|
#
|
61
60
|
# @example
|
62
|
-
# require "google/cloud"
|
61
|
+
# require "google/cloud/language"
|
63
62
|
#
|
64
|
-
#
|
65
|
-
# language = gcloud.language
|
63
|
+
# language = Google::Cloud::Language.new
|
66
64
|
#
|
67
65
|
# content = "I love dogs. I hate cats."
|
68
66
|
# document = language.document content
|
@@ -85,10 +83,9 @@ module Google
|
|
85
83
|
# blocks of the text
|
86
84
|
#
|
87
85
|
# @example
|
88
|
-
# require "google/cloud"
|
86
|
+
# require "google/cloud/language"
|
89
87
|
#
|
90
|
-
#
|
91
|
-
# language = gcloud.language
|
88
|
+
# language = Google::Cloud::Language.new
|
92
89
|
#
|
93
90
|
# content = "Darth Vader is the best villain in Star Wars."
|
94
91
|
# document = language.document content
|
@@ -114,10 +111,9 @@ module Google
|
|
114
111
|
# @return [Entities]
|
115
112
|
#
|
116
113
|
# @example
|
117
|
-
# require "google/cloud"
|
114
|
+
# require "google/cloud/language"
|
118
115
|
#
|
119
|
-
#
|
120
|
-
# language = gcloud.language
|
116
|
+
# language = Google::Cloud::Language.new
|
121
117
|
#
|
122
118
|
# content = "Darth Vader is the best villain in Star Wars."
|
123
119
|
# document = language.document content
|
@@ -145,10 +141,9 @@ module Google
|
|
145
141
|
# @return [Sentiment]
|
146
142
|
#
|
147
143
|
# @example
|
148
|
-
# require "google/cloud"
|
144
|
+
# require "google/cloud/language"
|
149
145
|
#
|
150
|
-
#
|
151
|
-
# language = gcloud.language
|
146
|
+
# language = Google::Cloud::Language.new
|
152
147
|
#
|
153
148
|
# content = "Darth Vader is the best villain in Star Wars."
|
154
149
|
# document = language.document content
|
@@ -172,10 +167,9 @@ module Google
|
|
172
167
|
# @return [String] the language code
|
173
168
|
#
|
174
169
|
# @example
|
175
|
-
# require "google/cloud"
|
170
|
+
# require "google/cloud/language"
|
176
171
|
#
|
177
|
-
#
|
178
|
-
# language = gcloud.language
|
172
|
+
# language = Google::Cloud::Language.new
|
179
173
|
#
|
180
174
|
# content = "Darth Vader is the best villain in Star Wars."
|
181
175
|
# document = language.document content
|
@@ -214,10 +208,9 @@ module Google
|
|
214
208
|
# specified in the API request.
|
215
209
|
#
|
216
210
|
# @example
|
217
|
-
# require "google/cloud"
|
211
|
+
# require "google/cloud/language"
|
218
212
|
#
|
219
|
-
#
|
220
|
-
# language = gcloud.language
|
213
|
+
# language = Google::Cloud::Language.new
|
221
214
|
#
|
222
215
|
# content = "I love dogs. I hate cats."
|
223
216
|
# document = language.document content
|
@@ -263,10 +256,9 @@ module Google
|
|
263
256
|
# of the token.
|
264
257
|
#
|
265
258
|
# @example
|
266
|
-
# require "google/cloud"
|
259
|
+
# require "google/cloud/language"
|
267
260
|
#
|
268
|
-
#
|
269
|
-
# language = gcloud.language
|
261
|
+
# language = Google::Cloud::Language.new
|
270
262
|
#
|
271
263
|
# content = "Darth Vader is the best villain in Star Wars."
|
272
264
|
# document = language.document content
|
@@ -325,10 +317,9 @@ module Google
|
|
325
317
|
# BCP-47 language codes are supported.
|
326
318
|
#
|
327
319
|
# @example
|
328
|
-
# require "google/cloud"
|
320
|
+
# require "google/cloud/language"
|
329
321
|
#
|
330
|
-
#
|
331
|
-
# language = gcloud.language
|
322
|
+
# language = Google::Cloud::Language.new
|
332
323
|
#
|
333
324
|
# content = "Darth Vader is the best villain in Star Wars."
|
334
325
|
# document = language.document content
|
@@ -450,10 +441,9 @@ module Google
|
|
450
441
|
# the input document. The API currently supports proper noun mentions.
|
451
442
|
#
|
452
443
|
# @example
|
453
|
-
# require "google/cloud"
|
444
|
+
# require "google/cloud/language"
|
454
445
|
#
|
455
|
-
#
|
456
|
-
# language = gcloud.language
|
446
|
+
# language = Google::Cloud::Language.new
|
457
447
|
#
|
458
448
|
# content = "Darth Vader is the best villain in Star Wars."
|
459
449
|
# document = language.document content
|
@@ -591,10 +581,9 @@ module Google
|
|
591
581
|
# BCP-47 language codes are supported.
|
592
582
|
#
|
593
583
|
# @example
|
594
|
-
# require "google/cloud"
|
584
|
+
# require "google/cloud/language"
|
595
585
|
#
|
596
|
-
#
|
597
|
-
# language = gcloud.language
|
586
|
+
# language = Google::Cloud::Language.new
|
598
587
|
#
|
599
588
|
# content = "Darth Vader is the best villain in Star Wars."
|
600
589
|
# document = language.document content
|
@@ -34,10 +34,9 @@ module Google
|
|
34
34
|
# See {Project#document}.
|
35
35
|
#
|
36
36
|
# @example
|
37
|
-
# require "google/cloud"
|
37
|
+
# require "google/cloud/language"
|
38
38
|
#
|
39
|
-
#
|
40
|
-
# language = gcloud.language
|
39
|
+
# language = Google::Cloud::Language.new
|
41
40
|
#
|
42
41
|
# content = "Darth Vader is the best villain in Star Wars."
|
43
42
|
# document = language.document content
|
@@ -186,10 +185,9 @@ module Google
|
|
186
185
|
# @return [Annotation>] The results of the content analysis.
|
187
186
|
#
|
188
187
|
# @example
|
189
|
-
# require "google/cloud"
|
188
|
+
# require "google/cloud/language"
|
190
189
|
#
|
191
|
-
#
|
192
|
-
# language = gcloud.language
|
190
|
+
# language = Google::Cloud::Language.new
|
193
191
|
#
|
194
192
|
# content = "Darth Vader is the best villain in Star Wars."
|
195
193
|
# document = language.document content
|
@@ -202,10 +200,9 @@ module Google
|
|
202
200
|
# annotation.tokens.count #=> 10
|
203
201
|
#
|
204
202
|
# @example With feature flags:
|
205
|
-
# require "google/cloud"
|
203
|
+
# require "google/cloud/language"
|
206
204
|
#
|
207
|
-
#
|
208
|
-
# language = gcloud.language
|
205
|
+
# language = Google::Cloud::Language.new
|
209
206
|
#
|
210
207
|
# content = "Darth Vader is the best villain in Star Wars."
|
211
208
|
# document = language.document content
|
@@ -239,10 +236,9 @@ module Google
|
|
239
236
|
# @return [Annotation>] The results for the content analysis.
|
240
237
|
#
|
241
238
|
# @example
|
242
|
-
# require "google/cloud"
|
239
|
+
# require "google/cloud/language"
|
243
240
|
#
|
244
|
-
#
|
245
|
-
# language = gcloud.language
|
241
|
+
# language = Google::Cloud::Language.new
|
246
242
|
#
|
247
243
|
# document = language.document "Hello world!"
|
248
244
|
#
|
@@ -264,10 +260,9 @@ module Google
|
|
264
260
|
# @return [Annotation::Entities>] The results for the entities analysis.
|
265
261
|
#
|
266
262
|
# @example
|
267
|
-
# require "google/cloud"
|
263
|
+
# require "google/cloud/language"
|
268
264
|
#
|
269
|
-
#
|
270
|
-
# language = gcloud.language
|
265
|
+
# language = Google::Cloud::Language.new
|
271
266
|
#
|
272
267
|
# content = "Darth Vader is the best villain in Star Wars."
|
273
268
|
# document = language.document content
|
@@ -295,10 +290,9 @@ module Google
|
|
295
290
|
# analysis.
|
296
291
|
#
|
297
292
|
# @example
|
298
|
-
# require "google/cloud"
|
293
|
+
# require "google/cloud/language"
|
299
294
|
#
|
300
|
-
#
|
301
|
-
# language = gcloud.language
|
295
|
+
# language = Google::Cloud::Language.new
|
302
296
|
#
|
303
297
|
# content = "Darth Vader is the best villain in Star Wars."
|
304
298
|
# document = language.document content
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "google/cloud/errors"
|
17
|
-
require "google/cloud/core/
|
17
|
+
require "google/cloud/core/environment"
|
18
18
|
require "google/cloud/language/service"
|
19
19
|
require "google/cloud/language/document"
|
20
20
|
require "google/cloud/language/annotation"
|
@@ -33,10 +33,9 @@ module Google
|
|
33
33
|
# See {Google::Cloud#language}
|
34
34
|
#
|
35
35
|
# @example
|
36
|
-
# require "google/cloud"
|
36
|
+
# require "google/cloud/language"
|
37
37
|
#
|
38
|
-
#
|
39
|
-
# language = gcloud.language
|
38
|
+
# language = Google::Cloud::Language.new
|
40
39
|
#
|
41
40
|
# content = "Darth Vader is the best villain in Star Wars."
|
42
41
|
# annotation = language.annotate content
|
@@ -61,11 +60,12 @@ module Google
|
|
61
60
|
# The Language project connected to.
|
62
61
|
#
|
63
62
|
# @example
|
64
|
-
# require "google/cloud"
|
63
|
+
# require "google/cloud/language"
|
65
64
|
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
65
|
+
# language = Google::Cloud::Language.new(
|
66
|
+
# project: "my-project-id",
|
67
|
+
# keyfile: "/path/to/keyfile.json"
|
68
|
+
# )
|
69
69
|
#
|
70
70
|
# language.project #=> "my-project-id"
|
71
71
|
#
|
@@ -79,7 +79,7 @@ module Google
|
|
79
79
|
ENV["LANGUAGE_PROJECT"] ||
|
80
80
|
ENV["GOOGLE_CLOUD_PROJECT"] ||
|
81
81
|
ENV["GCLOUD_PROJECT"] ||
|
82
|
-
Google::Cloud::Core::
|
82
|
+
Google::Cloud::Core::Environment.project_id
|
83
83
|
end
|
84
84
|
|
85
85
|
##
|
@@ -98,39 +98,35 @@ module Google
|
|
98
98
|
# @return [Document] An document for the Language service.
|
99
99
|
#
|
100
100
|
# @example
|
101
|
-
# require "google/cloud"
|
101
|
+
# require "google/cloud/language"
|
102
102
|
#
|
103
|
-
#
|
104
|
-
# language = gcloud.language
|
103
|
+
# language = Google::Cloud::Language.new
|
105
104
|
#
|
106
105
|
# document = language.document "It was the best of times, it was..."
|
107
106
|
#
|
108
107
|
# @example With a Google Cloud Storage URI:
|
109
|
-
# require "google/cloud"
|
108
|
+
# require "google/cloud/language"
|
110
109
|
#
|
111
|
-
#
|
112
|
-
# language = gcloud.language
|
110
|
+
# language = Google::Cloud::Language.new
|
113
111
|
#
|
114
112
|
# document = language.document "gs://bucket-name/path/to/document"
|
115
113
|
#
|
116
114
|
# @example With a Google Cloud Storage File object:
|
117
|
-
# require "google/cloud"
|
118
|
-
#
|
119
|
-
# gcloud = Google::Cloud.new
|
120
|
-
# storage = gcloud.storage
|
115
|
+
# require "google/cloud/storage"
|
116
|
+
# storage = Google::Cloud::Storage.new
|
121
117
|
#
|
122
118
|
# bucket = storage.bucket "bucket-name"
|
123
119
|
# file = bucket.file "path/to/document"
|
124
120
|
#
|
125
|
-
#
|
121
|
+
# require "google/cloud/language"
|
122
|
+
# language = Google::Cloud::Language.new
|
126
123
|
#
|
127
124
|
# document = language.document file
|
128
125
|
#
|
129
126
|
# @example With `format` and `language` options:
|
130
|
-
# require "google/cloud"
|
127
|
+
# require "google/cloud/language"
|
131
128
|
#
|
132
|
-
#
|
133
|
-
# language = gcloud.language
|
129
|
+
# language = Google::Cloud::Language.new
|
134
130
|
#
|
135
131
|
# document = language.document "<p>El viejo y el mar</p>",
|
136
132
|
# format: :html, language: "es"
|
@@ -216,10 +212,9 @@ module Google
|
|
216
212
|
# @return [Annotation>] The results for the content analysis.
|
217
213
|
#
|
218
214
|
# @example
|
219
|
-
# require "google/cloud"
|
215
|
+
# require "google/cloud/language"
|
220
216
|
#
|
221
|
-
#
|
222
|
-
# language = gcloud.language
|
217
|
+
# language = Google::Cloud::Language.new
|
223
218
|
#
|
224
219
|
# content = "Darth Vader is the best villain in Star Wars."
|
225
220
|
# annotation = language.annotate content
|
@@ -263,10 +258,9 @@ module Google
|
|
263
258
|
# @return [Annotation>] The results for the content syntax analysis.
|
264
259
|
#
|
265
260
|
# @example
|
266
|
-
# require "google/cloud"
|
261
|
+
# require "google/cloud/language"
|
267
262
|
#
|
268
|
-
#
|
269
|
-
# language = gcloud.language
|
263
|
+
# language = Google::Cloud::Language.new
|
270
264
|
#
|
271
265
|
# document = language.document "Hello world!"
|
272
266
|
#
|
@@ -297,10 +291,9 @@ module Google
|
|
297
291
|
# @return [Annotation::Entities>] The results for the entities analysis.
|
298
292
|
#
|
299
293
|
# @example
|
300
|
-
# require "google/cloud"
|
294
|
+
# require "google/cloud/language"
|
301
295
|
#
|
302
|
-
#
|
303
|
-
# language = gcloud.language
|
296
|
+
# language = Google::Cloud::Language.new
|
304
297
|
#
|
305
298
|
# document = language.document "Hello Chris and Mike!"
|
306
299
|
#
|
@@ -333,10 +326,9 @@ module Google
|
|
333
326
|
# analysis.
|
334
327
|
#
|
335
328
|
# @example
|
336
|
-
# require "google/cloud"
|
329
|
+
# require "google/cloud/language"
|
337
330
|
#
|
338
|
-
#
|
339
|
-
# language = gcloud.language
|
331
|
+
# language = Google::Cloud::Language.new
|
340
332
|
#
|
341
333
|
# document = language.document "Hello Chris and Mike!"
|
342
334
|
#
|
@@ -16,7 +16,8 @@
|
|
16
16
|
require "google/cloud/errors"
|
17
17
|
require "google/cloud/language/credentials"
|
18
18
|
require "google/cloud/language/version"
|
19
|
-
require "google/cloud/language/v1beta1/
|
19
|
+
require "google/cloud/language/v1beta1/language_service_services_pb"
|
20
|
+
require "google/cloud/language/v1beta1/language_service_api"
|
20
21
|
|
21
22
|
module Google
|
22
23
|
module Cloud
|
@@ -25,42 +26,40 @@ module Google
|
|
25
26
|
# @private Represents the gRPC Language service, including all the API
|
26
27
|
# methods.
|
27
28
|
class Service
|
28
|
-
attr_accessor :project, :credentials, :host, :
|
29
|
+
attr_accessor :project, :credentials, :host, :client_config, :timeout
|
29
30
|
|
30
31
|
##
|
31
32
|
# Creates a new Service instance.
|
32
|
-
def initialize project, credentials, host: nil,
|
33
|
+
def initialize project, credentials, host: nil, client_config: nil,
|
33
34
|
timeout: nil
|
34
35
|
@project = project
|
35
36
|
@credentials = credentials
|
36
37
|
@host = host || V1beta1::LanguageServiceApi::SERVICE_ADDRESS
|
37
|
-
@
|
38
|
+
@client_config = client_config || {}
|
38
39
|
@timeout = timeout
|
39
40
|
end
|
40
41
|
|
41
42
|
def channel
|
43
|
+
require "grpc"
|
42
44
|
GRPC::Core::Channel.new host, nil, chan_creds
|
43
45
|
end
|
44
46
|
|
45
47
|
def chan_creds
|
46
48
|
return credentials if insecure?
|
49
|
+
require "grpc"
|
47
50
|
GRPC::Core::ChannelCredentials.new.compose \
|
48
51
|
GRPC::Core::CallCredentials.new credentials.client.updater_proc
|
49
52
|
end
|
50
53
|
|
51
54
|
def service
|
52
55
|
return mocked_service if mocked_service
|
53
|
-
@service ||=
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
app_name: "google-cloud-language",
|
61
|
-
app_version: Google::Cloud::Language::VERSION)
|
62
|
-
# TODO: Get retries configured
|
63
|
-
end
|
56
|
+
@service ||= V1beta1::LanguageServiceApi.new(
|
57
|
+
service_path: host,
|
58
|
+
channel: channel,
|
59
|
+
timeout: timeout,
|
60
|
+
client_config: client_config,
|
61
|
+
app_name: "gcloud-ruby",
|
62
|
+
app_version: Google::Cloud::Language::VERSION)
|
64
63
|
end
|
65
64
|
attr_accessor :mocked_service
|
66
65
|
|
@@ -81,16 +80,24 @@ module Google
|
|
81
80
|
extract_syntax: syntax, extract_entities: entities,
|
82
81
|
extract_document_sentiment: sentiment)
|
83
82
|
encoding = verify_encoding! encoding
|
84
|
-
execute
|
83
|
+
execute do
|
84
|
+
service.annotate_text doc_grpc, features, encoding,
|
85
|
+
options: default_options
|
86
|
+
end
|
85
87
|
end
|
86
88
|
|
87
89
|
def entities doc_grpc, encoding: nil
|
88
90
|
encoding = verify_encoding! encoding
|
89
|
-
execute
|
91
|
+
execute do
|
92
|
+
service.analyze_entities doc_grpc, encoding,
|
93
|
+
options: default_options
|
94
|
+
end
|
90
95
|
end
|
91
96
|
|
92
97
|
def sentiment doc_grpc
|
93
|
-
execute
|
98
|
+
execute do
|
99
|
+
service.analyze_sentiment doc_grpc, options: default_options
|
100
|
+
end
|
94
101
|
end
|
95
102
|
|
96
103
|
def inspect
|
@@ -105,10 +112,19 @@ module Google
|
|
105
112
|
encoding
|
106
113
|
end
|
107
114
|
|
115
|
+
def default_headers
|
116
|
+
{ "google-cloud-resource-prefix" => "projects/#{@project}" }
|
117
|
+
end
|
118
|
+
|
119
|
+
def default_options
|
120
|
+
Google::Gax::CallOptions.new kwargs: default_headers
|
121
|
+
end
|
122
|
+
|
108
123
|
def execute
|
109
124
|
yield
|
110
|
-
rescue
|
111
|
-
|
125
|
+
rescue Google::Gax::GaxError => e
|
126
|
+
# GaxError wraps BadStatus, but exposes it as #cause
|
127
|
+
raise Google::Cloud::Error.from_error(e.cause)
|
112
128
|
end
|
113
129
|
end
|
114
130
|
end
|
@@ -26,7 +26,7 @@ require "json"
|
|
26
26
|
require "pathname"
|
27
27
|
|
28
28
|
require "google/gax"
|
29
|
-
require "google/cloud/language/v1beta1/
|
29
|
+
require "google/cloud/language/v1beta1/language_service_pb"
|
30
30
|
|
31
31
|
module Google
|
32
32
|
module Cloud
|
@@ -35,10 +35,10 @@ module Google
|
|
35
35
|
# Provides text analysis operations such as sentiment analysis and entity
|
36
36
|
# recognition.
|
37
37
|
#
|
38
|
-
# @!attribute [r]
|
38
|
+
# @!attribute [r] language_service_stub
|
39
39
|
# @return [Google::Cloud::Language::V1beta1::LanguageService::Stub]
|
40
40
|
class LanguageServiceApi
|
41
|
-
attr_reader :
|
41
|
+
attr_reader :language_service_stub
|
42
42
|
|
43
43
|
# The default address of the service.
|
44
44
|
SERVICE_ADDRESS = "language.googleapis.com".freeze
|
@@ -85,8 +85,15 @@ module Google
|
|
85
85
|
timeout: DEFAULT_TIMEOUT,
|
86
86
|
app_name: "gax",
|
87
87
|
app_version: Google::Gax::VERSION
|
88
|
+
# These require statements are intentionally placed here to initialize
|
89
|
+
# the gRPC module only when it's required.
|
90
|
+
# See https://github.com/googleapis/toolkit/issues/446
|
91
|
+
require "google/gax/grpc"
|
92
|
+
require "google/cloud/language/v1beta1/language_service_services_pb"
|
93
|
+
|
88
94
|
google_api_client = "#{app_name}/#{app_version} " \
|
89
|
-
"#{CODE_GEN_NAME_VERSION}
|
95
|
+
"#{CODE_GEN_NAME_VERSION} gax/#{Google::Gax::VERSION} " \
|
96
|
+
"ruby/#{RUBY_VERSION}".freeze
|
90
97
|
headers = { :"x-goog-api-client" => google_api_client }
|
91
98
|
client_config_file = Pathname.new(__dir__).join(
|
92
99
|
"language_service_client_config.json"
|
@@ -102,7 +109,7 @@ module Google
|
|
102
109
|
kwargs: headers
|
103
110
|
)
|
104
111
|
end
|
105
|
-
@
|
112
|
+
@language_service_stub = Google::Gax::Grpc.create_stub(
|
106
113
|
service_path,
|
107
114
|
port,
|
108
115
|
chan_creds: chan_creds,
|
@@ -112,15 +119,15 @@ module Google
|
|
112
119
|
)
|
113
120
|
|
114
121
|
@analyze_sentiment = Google::Gax.create_api_call(
|
115
|
-
@
|
122
|
+
@language_service_stub.method(:analyze_sentiment),
|
116
123
|
defaults["analyze_sentiment"]
|
117
124
|
)
|
118
125
|
@analyze_entities = Google::Gax.create_api_call(
|
119
|
-
@
|
126
|
+
@language_service_stub.method(:analyze_entities),
|
120
127
|
defaults["analyze_entities"]
|
121
128
|
)
|
122
129
|
@annotate_text = Google::Gax.create_api_call(
|
123
|
-
@
|
130
|
+
@language_service_stub.method(:annotate_text),
|
124
131
|
defaults["annotate_text"]
|
125
132
|
)
|
126
133
|
end
|
@@ -137,6 +144,16 @@ module Google
|
|
137
144
|
# retries, etc.
|
138
145
|
# @return [Google::Cloud::Language::V1beta1::AnalyzeSentimentResponse]
|
139
146
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
147
|
+
# @example
|
148
|
+
# require "google/cloud/language/v1beta1/language_service_api"
|
149
|
+
#
|
150
|
+
# Document = Google::Cloud::Language::V1beta1::Document
|
151
|
+
# LanguageServiceApi = Google::Cloud::Language::V1beta1::LanguageServiceApi
|
152
|
+
#
|
153
|
+
# language_service_api = LanguageServiceApi.new
|
154
|
+
# document = Document.new
|
155
|
+
# response = language_service_api.analyze_sentiment(document)
|
156
|
+
|
140
157
|
def analyze_sentiment \
|
141
158
|
document,
|
142
159
|
options: nil
|
@@ -158,6 +175,18 @@ module Google
|
|
158
175
|
# retries, etc.
|
159
176
|
# @return [Google::Cloud::Language::V1beta1::AnalyzeEntitiesResponse]
|
160
177
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
178
|
+
# @example
|
179
|
+
# require "google/cloud/language/v1beta1/language_service_api"
|
180
|
+
#
|
181
|
+
# Document = Google::Cloud::Language::V1beta1::Document
|
182
|
+
# EncodingType = Google::Cloud::Language::V1beta1::EncodingType
|
183
|
+
# LanguageServiceApi = Google::Cloud::Language::V1beta1::LanguageServiceApi
|
184
|
+
#
|
185
|
+
# language_service_api = LanguageServiceApi.new
|
186
|
+
# document = Document.new
|
187
|
+
# encoding_type = EncodingType::NONE
|
188
|
+
# response = language_service_api.analyze_entities(document, encoding_type)
|
189
|
+
|
161
190
|
def analyze_entities \
|
162
191
|
document,
|
163
192
|
encoding_type,
|
@@ -185,6 +214,20 @@ module Google
|
|
185
214
|
# retries, etc.
|
186
215
|
# @return [Google::Cloud::Language::V1beta1::AnnotateTextResponse]
|
187
216
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
217
|
+
# @example
|
218
|
+
# require "google/cloud/language/v1beta1/language_service_api"
|
219
|
+
#
|
220
|
+
# Document = Google::Cloud::Language::V1beta1::Document
|
221
|
+
# EncodingType = Google::Cloud::Language::V1beta1::EncodingType
|
222
|
+
# Features = Google::Cloud::Language::V1beta1::AnnotateTextRequest::Features
|
223
|
+
# LanguageServiceApi = Google::Cloud::Language::V1beta1::LanguageServiceApi
|
224
|
+
#
|
225
|
+
# language_service_api = LanguageServiceApi.new
|
226
|
+
# document = Document.new
|
227
|
+
# features = Features.new
|
228
|
+
# encoding_type = EncodingType::NONE
|
229
|
+
# response = language_service_api.annotate_text(document, features, encoding_type)
|
230
|
+
|
188
231
|
def annotate_text \
|
189
232
|
document,
|
190
233
|
features,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-language
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-cloud-core
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: 0.21.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 0.21.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: grpc
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.6.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.6.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: google-protobuf
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,14 +73,14 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '1.
|
76
|
+
version: '1.3'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '1.
|
83
|
+
version: '1.3'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: minitest
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +193,20 @@ dependencies:
|
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0.9'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: yard-doctest
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 0.1.6
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 0.1.6
|
196
210
|
description: google-cloud-language is the official library for Google Cloud Natural
|
197
211
|
Language API.
|
198
212
|
email:
|