google-cloud-vision 0.27.0 → 0.28.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-vision.rb +33 -0
- data/lib/google/cloud/vision.rb +150 -24
- data/lib/google/cloud/vision/annotate.rb +23 -14
- data/lib/google/cloud/vision/annotation.rb +2 -1
- data/lib/google/cloud/vision/annotation/face.rb +5 -5
- data/lib/google/cloud/vision/annotation/safe_search.rb +1 -1
- data/lib/google/cloud/vision/annotation/text.rb +5 -5
- data/lib/google/cloud/vision/credentials.rb +6 -6
- data/lib/google/cloud/vision/image.rb +21 -17
- data/lib/google/cloud/vision/project.rb +5 -15
- data/lib/google/cloud/vision/service.rb +2 -1
- data/lib/google/cloud/vision/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b81db07611ab1066ea2ee85b3e8ad26114526acd1b908cc81208419c00fb6d4
|
4
|
+
data.tar.gz: ba5bc2654acea5e24ea93b77000b9ffe7140e1a3ae23e242c45fa5df2cf6c7dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 104e8b736e5e34d528ea4ca58c6705d1b8e8de4a0f641593746edb0388e05f3c53e9ada250271a7fdf1f8d6a54579769c98fcd025a6248333d597f227216455c
|
7
|
+
data.tar.gz: 5eca611c1e4291e9d6aaf38d5a0d0e34896b9d265ff5e57065752c0bb3797baa8b6213d16f0f9fd2d60c810885ece8768919a9d05a9e8c027415cd0f0f0ad604
|
data/lib/google-cloud-vision.rb
CHANGED
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
gem "google-cloud-core"
|
22
22
|
require "google/cloud"
|
23
|
+
require "google/cloud/config"
|
24
|
+
require "googleauth"
|
23
25
|
|
24
26
|
module Google
|
25
27
|
module Cloud
|
@@ -109,3 +111,34 @@ module Google
|
|
109
111
|
end
|
110
112
|
end
|
111
113
|
end
|
114
|
+
|
115
|
+
# Set the default vision configuration
|
116
|
+
Google::Cloud.configure.add_config! :vision do |config|
|
117
|
+
default_project = Google::Cloud::Config.deferred do
|
118
|
+
ENV["VISION_PROJECT"]
|
119
|
+
end
|
120
|
+
default_creds = Google::Cloud::Config.deferred do
|
121
|
+
Google::Cloud::Config.credentials_from_env(
|
122
|
+
"VISION_CREDENTIALS", "VISION_CREDENTIALS_JSON",
|
123
|
+
"VISION_KEYFILE", "VISION_KEYFILE_JSON"
|
124
|
+
)
|
125
|
+
end
|
126
|
+
|
127
|
+
config.add_field! :project_id, default_project, match: String, allow_nil: true
|
128
|
+
config.add_alias! :project, :project_id
|
129
|
+
config.add_field! :credentials, default_creds,
|
130
|
+
match: [String, Hash, Google::Auth::Credentials],
|
131
|
+
allow_nil: true
|
132
|
+
config.add_alias! :keyfile, :credentials
|
133
|
+
config.add_field! :scope, nil, match: [String, Array]
|
134
|
+
config.add_field! :timeout, nil, match: Integer
|
135
|
+
config.add_field! :client_config, nil, match: Hash
|
136
|
+
# Update the documentation on the Vision module methods when these
|
137
|
+
# defaults change.
|
138
|
+
config.add_field! :default_max_faces, 100
|
139
|
+
config.add_field! :default_max_landmarks, 100
|
140
|
+
config.add_field! :default_max_logos, 100
|
141
|
+
config.add_field! :default_max_labels, 100
|
142
|
+
config.add_field! :default_max_crop_hints, 100
|
143
|
+
config.add_field! :default_max_web, 100
|
144
|
+
end
|
data/lib/google/cloud/vision.rb
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require "google-cloud-vision"
|
17
17
|
require "google/cloud/vision/project"
|
18
|
+
require "google/cloud/config"
|
19
|
+
require "google/cloud/env"
|
18
20
|
|
19
21
|
module Google
|
20
22
|
module Cloud
|
@@ -30,11 +32,12 @@ module Google
|
|
30
32
|
# Documentation](https://cloud.google.com/vision/docs/).
|
31
33
|
#
|
32
34
|
# The goal of google-cloud is to provide an API that is comfortable to
|
33
|
-
# Rubyists.
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# options for connecting in the
|
35
|
+
# Rubyists. Your authentication credentials are detected automatically in
|
36
|
+
# Google Cloud Platform environments such as Google Compute Engine, Google
|
37
|
+
# App Engine and Google Kubernetes Engine. In other environments you can
|
38
|
+
# configure authentication easily, either directly in your code or via
|
39
|
+
# environment variables. Read more about the options for connecting in the
|
40
|
+
# [Authentication
|
38
41
|
# Guide](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/guides/authentication).
|
39
42
|
#
|
40
43
|
# ## Creating images
|
@@ -226,6 +229,9 @@ module Google
|
|
226
229
|
#
|
227
230
|
# The default value is `100`.
|
228
231
|
#
|
232
|
+
# This is also available on the configuration as
|
233
|
+
# `Google::Cloud::Vision.configure.default_max_faces`
|
234
|
+
#
|
229
235
|
# @example Using the default setting on {Project#annotate}:
|
230
236
|
# require "google/cloud/vision"
|
231
237
|
#
|
@@ -273,7 +279,16 @@ module Google
|
|
273
279
|
# # This is the same as calling
|
274
280
|
# # faces = vision.image("path/to/faces.jpg").faces 5
|
275
281
|
#
|
276
|
-
|
282
|
+
def default_max_faces= value
|
283
|
+
configure.default_max_faces = value
|
284
|
+
end
|
285
|
+
|
286
|
+
##
|
287
|
+
# The default max results to return for face detection requests.
|
288
|
+
#
|
289
|
+
def default_max_faces
|
290
|
+
configure.default_max_faces
|
291
|
+
end
|
277
292
|
|
278
293
|
##
|
279
294
|
# The default max results to return for landmark detection requests.
|
@@ -281,6 +296,9 @@ module Google
|
|
281
296
|
#
|
282
297
|
# The default value is 100.
|
283
298
|
#
|
299
|
+
# This is also available on the configuration as
|
300
|
+
# `Google::Cloud::Vision.configure.default_max_landmarks`
|
301
|
+
#
|
284
302
|
# @example Using the default setting on {Project#annotate}:
|
285
303
|
# require "google/cloud/vision"
|
286
304
|
#
|
@@ -330,7 +348,16 @@ module Google
|
|
330
348
|
# # This is the same as calling
|
331
349
|
# # landmarks = vision.image("path/to/landmarks.jpg").landmarks 5
|
332
350
|
#
|
333
|
-
|
351
|
+
def default_max_landmarks= value
|
352
|
+
configure.default_max_landmarks = value
|
353
|
+
end
|
354
|
+
|
355
|
+
##
|
356
|
+
# The default max results to return for landmark detection requests.
|
357
|
+
#
|
358
|
+
def default_max_landmarks
|
359
|
+
configure.default_max_landmarks
|
360
|
+
end
|
334
361
|
|
335
362
|
##
|
336
363
|
# The default max results to return for logo detection requests. This is
|
@@ -338,6 +365,9 @@ module Google
|
|
338
365
|
#
|
339
366
|
# The default value is 100.
|
340
367
|
#
|
368
|
+
# This is also available on the configuration as
|
369
|
+
# `Google::Cloud::Vision.configure.default_max_logos`
|
370
|
+
#
|
341
371
|
# @example Using the default setting on {Project#annotate}:
|
342
372
|
# require "google/cloud/vision"
|
343
373
|
#
|
@@ -385,7 +415,16 @@ module Google
|
|
385
415
|
# # This is the same as calling
|
386
416
|
# # logos = vision.image("path/to/logos.jpg").logos 5
|
387
417
|
#
|
388
|
-
|
418
|
+
def default_max_logos= value
|
419
|
+
configure.default_max_logos = value
|
420
|
+
end
|
421
|
+
|
422
|
+
##
|
423
|
+
# The default max results to return for logo detection requests.
|
424
|
+
#
|
425
|
+
def default_max_logos
|
426
|
+
configure.default_max_logos
|
427
|
+
end
|
389
428
|
|
390
429
|
##
|
391
430
|
# The default max results to return for label detection requests. This
|
@@ -393,6 +432,9 @@ module Google
|
|
393
432
|
#
|
394
433
|
# The default value is 100.
|
395
434
|
#
|
435
|
+
# This is also available on the configuration as
|
436
|
+
# `Google::Cloud::Vision.configure.default_max_labels`
|
437
|
+
#
|
396
438
|
# @example Using the default setting on {Project#annotate}:
|
397
439
|
# require "google/cloud/vision"
|
398
440
|
#
|
@@ -440,7 +482,16 @@ module Google
|
|
440
482
|
# # This is the same as calling
|
441
483
|
# # labels = vision.image("path/to/labels.jpg").labels 5
|
442
484
|
#
|
443
|
-
|
485
|
+
def default_max_labels= value
|
486
|
+
configure.default_max_labels = value
|
487
|
+
end
|
488
|
+
|
489
|
+
##
|
490
|
+
# The default max results to return for label detection requests.
|
491
|
+
#
|
492
|
+
def default_max_labels
|
493
|
+
configure.default_max_labels
|
494
|
+
end
|
444
495
|
|
445
496
|
##
|
446
497
|
# The default max results to return for crop hints detection requests.
|
@@ -448,6 +499,9 @@ module Google
|
|
448
499
|
#
|
449
500
|
# The default value is 100.
|
450
501
|
#
|
502
|
+
# This is also available on the configuration as
|
503
|
+
# `Google::Cloud::Vision.configure.default_max_crop_hints`
|
504
|
+
#
|
451
505
|
# @example Using the default setting on {Project#annotate}:
|
452
506
|
# require "google/cloud/vision"
|
453
507
|
#
|
@@ -497,7 +551,16 @@ module Google
|
|
497
551
|
# # This is the same as calling
|
498
552
|
# # crop_hints = vision.image("path/to/landmarks.jpg").crop_hints 5
|
499
553
|
#
|
500
|
-
|
554
|
+
def default_max_crop_hints= value
|
555
|
+
configure.default_max_crop_hints = value
|
556
|
+
end
|
557
|
+
|
558
|
+
##
|
559
|
+
# The default max results to return for crop hints detection requests.
|
560
|
+
#
|
561
|
+
def default_max_crop_hints
|
562
|
+
configure.default_max_crop_hints
|
563
|
+
end
|
501
564
|
|
502
565
|
##
|
503
566
|
# The default max results to return for web detection requests.
|
@@ -505,6 +568,9 @@ module Google
|
|
505
568
|
#
|
506
569
|
# The default value is 100.
|
507
570
|
#
|
571
|
+
# This is also available on the configuration as
|
572
|
+
# `Google::Cloud::Vision.configure.default_max_web`
|
573
|
+
#
|
508
574
|
# @example Using the default setting on {Project#annotate}:
|
509
575
|
# require "google/cloud/vision"
|
510
576
|
#
|
@@ -554,17 +620,17 @@ module Google
|
|
554
620
|
# # This is the same as calling
|
555
621
|
# # web = vision.image("path/to/landmarks.jpg").web 5
|
556
622
|
#
|
557
|
-
|
558
|
-
|
623
|
+
def default_max_web= value
|
624
|
+
configure.default_max_web = value
|
625
|
+
end
|
559
626
|
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
self.default_max_web = 100
|
627
|
+
##
|
628
|
+
# The default max results to return for web detection requests.
|
629
|
+
#
|
630
|
+
def default_max_web
|
631
|
+
configure.default_max_web
|
632
|
+
end
|
633
|
+
end
|
568
634
|
|
569
635
|
##
|
570
636
|
# Creates a new object for connecting to the Vision service.
|
@@ -605,11 +671,14 @@ module Google
|
|
605
671
|
#
|
606
672
|
def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
|
607
673
|
client_config: nil, project: nil, keyfile: nil
|
608
|
-
project_id ||= (project ||
|
674
|
+
project_id ||= (project || default_project_id)
|
609
675
|
project_id = project_id.to_s # Always cast to a string
|
610
|
-
|
676
|
+
raise ArgumentError, "project_id is missing" if project_id.empty?
|
611
677
|
|
612
|
-
|
678
|
+
scope ||= configure.scope
|
679
|
+
timeout ||= configure.timeout
|
680
|
+
client_config ||= configure.client_config
|
681
|
+
credentials ||= (keyfile || default_credentials(scope: scope))
|
613
682
|
unless credentials.is_a? Google::Auth::Credentials
|
614
683
|
credentials = Vision::Credentials.new credentials, scope: scope
|
615
684
|
end
|
@@ -617,7 +686,64 @@ module Google
|
|
617
686
|
Vision::Project.new(
|
618
687
|
Vision::Service.new(
|
619
688
|
project_id, credentials, timeout: timeout,
|
620
|
-
client_config: client_config
|
689
|
+
client_config: client_config
|
690
|
+
)
|
691
|
+
)
|
692
|
+
end
|
693
|
+
|
694
|
+
##
|
695
|
+
# Configure the Google Cloud Vision library.
|
696
|
+
#
|
697
|
+
# The following Vision configuration parameters are supported:
|
698
|
+
#
|
699
|
+
# * `project_id` - (String) Identifier for a Vision project. (The
|
700
|
+
# parameter `project` is considered deprecated, but may also be used.)
|
701
|
+
# * `credentials` - (String, Hash, Google::Auth::Credentials) The path to
|
702
|
+
# the keyfile as a String, the contents of the keyfile as a Hash, or a
|
703
|
+
# Google::Auth::Credentials object. (See {Vision::Credentials}) (The
|
704
|
+
# parameter `keyfile` is considered deprecated, but may also be used.)
|
705
|
+
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
|
706
|
+
# the set of resources and operations that the connection can access.
|
707
|
+
# * `timeout` - (Integer) Default timeout to use in requests.
|
708
|
+
# * `client_config` - (Hash) A hash of values to override the default
|
709
|
+
# behavior of the API client.
|
710
|
+
# * `default_max_faces` - (Integer) The default max results to return for
|
711
|
+
# facial detection requests. See {Vision.default_max_faces=}.
|
712
|
+
# * `default_max_landmarks` - (Integer) The default max results to return
|
713
|
+
# for landmark detection requests. See {Vision.default_max_landmarks=}.
|
714
|
+
# * `default_max_logos` - (Integer) The default max results to return for
|
715
|
+
# logo detection requests. See {Vision.default_max_logos=}.
|
716
|
+
# * `default_max_labels` - (Integer) The default max results to return for
|
717
|
+
# label detection requests. See {Vision.default_max_labels=}.
|
718
|
+
# * `default_max_crop_hints` - (Integer) The default max results to return
|
719
|
+
# for crop hints detection requests. See
|
720
|
+
# {Vision.default_max_crop_hints=}.
|
721
|
+
# * `default_max_web` - (Integer) The default max results to return for
|
722
|
+
# web detection requests. See {Vision.default_max_faces=}.
|
723
|
+
#
|
724
|
+
# @return [Google::Cloud::Config] The configuration object the
|
725
|
+
# Google::Cloud::Vision library uses.
|
726
|
+
#
|
727
|
+
def self.configure
|
728
|
+
yield Google::Cloud.configure.vision if block_given?
|
729
|
+
|
730
|
+
Google::Cloud.configure.vision
|
731
|
+
end
|
732
|
+
|
733
|
+
##
|
734
|
+
# @private Default project.
|
735
|
+
def self.default_project_id
|
736
|
+
Google::Cloud.configure.vision.project_id ||
|
737
|
+
Google::Cloud.configure.project_id ||
|
738
|
+
Google::Cloud.env.project_id
|
739
|
+
end
|
740
|
+
|
741
|
+
##
|
742
|
+
# @private Default credentials.
|
743
|
+
def self.default_credentials scope: nil
|
744
|
+
Google::Cloud.configure.vision.credentials ||
|
745
|
+
Google::Cloud.configure.credentials ||
|
746
|
+
Vision::Credentials.default(scope: scope)
|
621
747
|
end
|
622
748
|
end
|
623
749
|
end
|
@@ -177,10 +177,12 @@ module Google
|
|
177
177
|
safe_search, properties, crop_hints, web
|
178
178
|
return default_features if default_features?(
|
179
179
|
faces, landmarks, logos, labels, text, document, safe_search,
|
180
|
-
properties, crop_hints, web
|
180
|
+
properties, crop_hints, web
|
181
|
+
)
|
181
182
|
|
182
183
|
faces, landmarks, logos, labels, crop_hints, web = validate_max_args(
|
183
|
-
faces, landmarks, logos, labels, crop_hints, web
|
184
|
+
faces, landmarks, logos, labels, crop_hints, web
|
185
|
+
)
|
184
186
|
|
185
187
|
f = value_features faces, landmarks, logos, labels, crop_hints, web
|
186
188
|
f + boolean_features(text, document, safe_search, properties)
|
@@ -208,7 +210,8 @@ module Google
|
|
208
210
|
|
209
211
|
def feature type, max_results
|
210
212
|
Google::Cloud::Vision::V1::Feature.new(
|
211
|
-
type: type, max_results: max_results
|
213
|
+
type: type, max_results: max_results
|
214
|
+
)
|
212
215
|
end
|
213
216
|
|
214
217
|
def default_features? faces, landmarks, logos, labels, text, document,
|
@@ -237,18 +240,24 @@ module Google
|
|
237
240
|
end
|
238
241
|
|
239
242
|
def validate_max_args faces, landmarks, logos, labels, crop_hints, web
|
240
|
-
faces
|
241
|
-
faces, Google::Cloud::Vision.default_max_faces
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
243
|
+
faces = validate_max_value(
|
244
|
+
faces, Google::Cloud::Vision.default_max_faces
|
245
|
+
)
|
246
|
+
landmarks = validate_max_value(
|
247
|
+
landmarks, Google::Cloud::Vision.default_max_landmarks
|
248
|
+
)
|
249
|
+
logos = validate_max_value(
|
250
|
+
logos, Google::Cloud::Vision.default_max_logos
|
251
|
+
)
|
252
|
+
labels = validate_max_value(
|
253
|
+
labels, Google::Cloud::Vision.default_max_labels
|
254
|
+
)
|
248
255
|
crop_hints = validate_max_value(
|
249
|
-
crop_hints, Google::Cloud::Vision.default_max_crop_hints
|
250
|
-
|
251
|
-
|
256
|
+
crop_hints, Google::Cloud::Vision.default_max_crop_hints
|
257
|
+
)
|
258
|
+
web = validate_max_value(
|
259
|
+
web, Google::Cloud::Vision.default_max_web
|
260
|
+
)
|
252
261
|
[faces, landmarks, logos, labels, crop_hints, web]
|
253
262
|
end
|
254
263
|
|
@@ -173,7 +173,7 @@ module Google
|
|
173
173
|
def yaw
|
174
174
|
@grpc.pan_angle
|
175
175
|
end
|
176
|
-
|
176
|
+
alias pan yaw
|
177
177
|
|
178
178
|
##
|
179
179
|
# Pitch (tilt) angle. Indicates the upwards/downwards angle that the
|
@@ -184,7 +184,7 @@ module Google
|
|
184
184
|
def pitch
|
185
185
|
@grpc.tilt_angle
|
186
186
|
end
|
187
|
-
|
187
|
+
alias tilt pitch
|
188
188
|
|
189
189
|
##
|
190
190
|
# Returns the object's property values as an array.
|
@@ -1109,8 +1109,8 @@ module Google
|
|
1109
1109
|
class Lips
|
1110
1110
|
attr_reader :top, :bottom
|
1111
1111
|
|
1112
|
-
|
1113
|
-
|
1112
|
+
alias upper top
|
1113
|
+
alias lower bottom
|
1114
1114
|
|
1115
1115
|
##
|
1116
1116
|
# @private Creates a new Lips instance.
|
@@ -1325,7 +1325,7 @@ module Google
|
|
1325
1325
|
# face.likelihood.sorrow #=> :VERY_UNLIKELY
|
1326
1326
|
#
|
1327
1327
|
class Likelihood
|
1328
|
-
POSITIVE_RATINGS = %i
|
1328
|
+
POSITIVE_RATINGS = %i[POSSIBLE LIKELY VERY_LIKELY].freeze
|
1329
1329
|
|
1330
1330
|
##
|
1331
1331
|
# @private The FaceAnnotation GRPC object.
|
@@ -151,16 +151,16 @@ module Google
|
|
151
151
|
text, *words = Array grpc_text_annotations
|
152
152
|
return nil if text.nil?
|
153
153
|
|
154
|
+
words = words.map { |w| Word.from_grpc w }
|
155
|
+
|
154
156
|
# Since text is taken from grpc_text_annotations, do not use text
|
155
157
|
# from grpc_full_text_annotation in this merged model.
|
156
158
|
# Instead, just take the pages.
|
157
|
-
pages = grpc_full_text_annotation.pages
|
159
|
+
pages = grpc_full_text_annotation.pages.map { |p| Page.from_grpc p }
|
158
160
|
new.tap do |t|
|
159
161
|
t.instance_variable_set :@grpc, text
|
160
|
-
t.instance_variable_set :@words,
|
161
|
-
|
162
|
-
t.instance_variable_set :@pages,
|
163
|
-
pages.map { |p| Page.from_grpc p }
|
162
|
+
t.instance_variable_set :@words, words
|
163
|
+
t.instance_variable_set :@pages, pages
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
@@ -38,19 +38,19 @@ module Google
|
|
38
38
|
# vision.project_id #=> "my-project"
|
39
39
|
#
|
40
40
|
class Credentials < Google::Auth::Credentials
|
41
|
-
SCOPE = ["https://www.googleapis.com/auth/cloud-platform"]
|
42
|
-
PATH_ENV_VARS = %w
|
41
|
+
SCOPE = ["https://www.googleapis.com/auth/cloud-platform"].freeze
|
42
|
+
PATH_ENV_VARS = %w[VISION_CREDENTIALS
|
43
43
|
VISION_KEYFILE
|
44
44
|
GOOGLE_CLOUD_CREDENTIALS
|
45
45
|
GOOGLE_CLOUD_KEYFILE
|
46
|
-
GCLOUD_KEYFILE
|
47
|
-
JSON_ENV_VARS = %w
|
46
|
+
GCLOUD_KEYFILE].freeze
|
47
|
+
JSON_ENV_VARS = %w[VISION_CREDENTIALS_JSON
|
48
48
|
VISION_KEYFILE_JSON
|
49
49
|
GOOGLE_CLOUD_CREDENTIALS_JSON
|
50
50
|
GOOGLE_CLOUD_KEYFILE_JSON
|
51
|
-
GCLOUD_KEYFILE_JSON
|
51
|
+
GCLOUD_KEYFILE_JSON].freeze
|
52
52
|
DEFAULT_PATHS = \
|
53
|
-
["~/.config/gcloud/application_default_credentials.json"]
|
53
|
+
["~/.config/gcloud/application_default_credentials.json"].freeze
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -521,8 +521,8 @@ module Google
|
|
521
521
|
properties: properties, crop_hints: crop_hints,
|
522
522
|
web: web)
|
523
523
|
end
|
524
|
-
|
525
|
-
|
524
|
+
alias mark annotate
|
525
|
+
alias detect annotate
|
526
526
|
|
527
527
|
# @private
|
528
528
|
def to_s
|
@@ -550,9 +550,11 @@ module Google
|
|
550
550
|
elsif url?
|
551
551
|
Google::Cloud::Vision::V1::Image.new(
|
552
552
|
source: Google::Cloud::Vision::V1::ImageSource.new(
|
553
|
-
image_uri: @url
|
553
|
+
image_uri: @url
|
554
|
+
)
|
555
|
+
)
|
554
556
|
else
|
555
|
-
|
557
|
+
raise ArgumentError, "Unable to use Image with Vision service."
|
556
558
|
end
|
557
559
|
end
|
558
560
|
|
@@ -571,18 +573,18 @@ module Google
|
|
571
573
|
# Create an image from a file on the filesystem
|
572
574
|
if File.file? source
|
573
575
|
unless File.readable? source
|
574
|
-
|
576
|
+
raise ArgumentError, "Cannot read #{source}"
|
575
577
|
end
|
576
578
|
return from_io(File.open(source, "rb"), vision)
|
577
579
|
end
|
578
|
-
|
580
|
+
raise ArgumentError, "Unable to convert #{source} to an Image"
|
579
581
|
end
|
580
582
|
|
581
583
|
##
|
582
584
|
# @private New Image from an IO object.
|
583
585
|
def self.from_io io, vision
|
584
586
|
if !io.respond_to?(:read) && !io.respond_to?(:rewind)
|
585
|
-
|
587
|
+
raise ArgumentError, "Cannot create an Image without an IO object"
|
586
588
|
end
|
587
589
|
new.tap do |i|
|
588
590
|
i.instance_variable_set :@io, io
|
@@ -595,7 +597,7 @@ module Google
|
|
595
597
|
def self.from_url url, vision
|
596
598
|
url = String url
|
597
599
|
unless url? url
|
598
|
-
|
600
|
+
raise ArgumentError, "Cannot create an Image without a URL"
|
599
601
|
end
|
600
602
|
new.tap do |i|
|
601
603
|
i.instance_variable_set :@url, url
|
@@ -615,7 +617,7 @@ module Google
|
|
615
617
|
##
|
616
618
|
# Raise an error unless an active vision project object is available.
|
617
619
|
def ensure_vision!
|
618
|
-
|
620
|
+
raise "Must have active connection" unless @vision
|
619
621
|
end
|
620
622
|
end
|
621
623
|
|
@@ -740,11 +742,12 @@ module Google
|
|
740
742
|
# standard](http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf).
|
741
743
|
def min= location
|
742
744
|
if location.respond_to?(:to_h) &&
|
743
|
-
location.to_h.keys.sort == [
|
744
|
-
|
745
|
-
|
745
|
+
location.to_h.keys.sort == %i[latitude longitude]
|
746
|
+
@min = Location.new(location.to_h[:latitude],
|
747
|
+
location.to_h[:longitude])
|
748
|
+
return
|
746
749
|
end
|
747
|
-
|
750
|
+
raise ArgumentError, "Must pass a proper location value."
|
748
751
|
end
|
749
752
|
|
750
753
|
##
|
@@ -756,11 +759,12 @@ module Google
|
|
756
759
|
# standard](http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf).
|
757
760
|
def max= location
|
758
761
|
if location.respond_to?(:to_h) &&
|
759
|
-
location.to_h.keys.sort == [
|
760
|
-
|
761
|
-
|
762
|
+
location.to_h.keys.sort == %i[latitude longitude]
|
763
|
+
@max = Location.new(location.to_h[:latitude],
|
764
|
+
location.to_h[:longitude])
|
765
|
+
return
|
762
766
|
end
|
763
|
-
|
767
|
+
raise ArgumentError, "Must pass a proper location value."
|
764
768
|
end
|
765
769
|
|
766
770
|
##
|
@@ -14,7 +14,6 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "google/cloud/errors"
|
17
|
-
require "google/cloud/env"
|
18
17
|
require "google/cloud/vision/service"
|
19
18
|
require "google/cloud/vision/credentials"
|
20
19
|
require "google/cloud/vision/annotate"
|
@@ -72,16 +71,7 @@ module Google
|
|
72
71
|
def project_id
|
73
72
|
service.project
|
74
73
|
end
|
75
|
-
|
76
|
-
|
77
|
-
##
|
78
|
-
# @private Default project.
|
79
|
-
def self.default_project_id
|
80
|
-
ENV["VISION_PROJECT"] ||
|
81
|
-
ENV["GOOGLE_CLOUD_PROJECT"] ||
|
82
|
-
ENV["GCLOUD_PROJECT"] ||
|
83
|
-
Google::Cloud.env.project_id
|
84
|
-
end
|
74
|
+
alias project project_id
|
85
75
|
|
86
76
|
##
|
87
77
|
# Returns a new image from the given source.
|
@@ -278,21 +268,21 @@ module Google
|
|
278
268
|
|
279
269
|
grpc = service.annotate a.requests
|
280
270
|
annotations = Array(grpc.responses).map do |g|
|
281
|
-
|
271
|
+
raise Error.from_error(g.error) if g.error
|
282
272
|
Annotation.from_grpc g
|
283
273
|
end
|
284
274
|
return annotations.first if annotations.count == 1
|
285
275
|
annotations
|
286
276
|
end
|
287
|
-
|
288
|
-
|
277
|
+
alias mark annotate
|
278
|
+
alias detect annotate
|
289
279
|
|
290
280
|
protected
|
291
281
|
|
292
282
|
##
|
293
283
|
# Raise an error unless an active connection is available.
|
294
284
|
def ensure_service!
|
295
|
-
|
285
|
+
raise "Must have active connection" unless service
|
296
286
|
end
|
297
287
|
end
|
298
288
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-vision
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.28.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:
|
12
|
+
date: 2018-02-28 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: '1.
|
20
|
+
version: '1.2'
|
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: '1.
|
27
|
+
version: '1.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: google-gax
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,16 +113,16 @@ dependencies:
|
|
113
113
|
name: rubocop
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - "
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
118
|
+
version: 0.50.0
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - "
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
125
|
+
version: 0.50.0
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: simplecov
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
232
232
|
version: '0'
|
233
233
|
requirements: []
|
234
234
|
rubyforge_project:
|
235
|
-
rubygems_version: 2.7.
|
235
|
+
rubygems_version: 2.7.6
|
236
236
|
signing_key:
|
237
237
|
specification_version: 4
|
238
238
|
summary: API Client library for Google Cloud Vision API
|