google-cloud-vision 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.
@@ -26,10 +26,9 @@ module Google
26
26
  # See {Google::Cloud::Vision::Image#properties}.
27
27
  #
28
28
  # @example
29
- # require "google/cloud"
29
+ # require "google/cloud/vision"
30
30
  #
31
- # gcloud = Google::Cloud.new
32
- # vision = gcloud.vision
31
+ # vision = Google::Cloud::Vision.new
33
32
  #
34
33
  # image = vision.image "path/to/logo.jpg"
35
34
  #
@@ -38,13 +37,13 @@ module Google
38
37
  #
39
38
  class Properties
40
39
  ##
41
- # @private The ImageProperties Google API Client object.
42
- attr_accessor :gapi
40
+ # @private The ImageProperties GRPC object.
41
+ attr_accessor :grpc
43
42
 
44
43
  ##
45
44
  # @private Creates a new Properties instance.
46
45
  def initialize
47
- @gapi = {}
46
+ @grpc = nil
48
47
  end
49
48
 
50
49
  ##
@@ -53,9 +52,9 @@ module Google
53
52
  # @return [Array<Color>] An array of the image's dominant colors.
54
53
  #
55
54
  def colors
56
- return [] unless @gapi.dominant_colors
57
- @colors ||= Array(@gapi.dominant_colors.colors).map do |c|
58
- Color.from_gapi c
55
+ return [] unless @grpc.dominant_colors
56
+ @colors ||= Array(@grpc.dominant_colors.colors).map do |c|
57
+ Color.from_grpc c
59
58
  end
60
59
  end
61
60
 
@@ -88,9 +87,9 @@ module Google
88
87
  end
89
88
 
90
89
  ##
91
- # @private New Annotation::Properties from a Google API Client object.
92
- def self.from_gapi gapi
93
- new.tap { |f| f.instance_variable_set :@gapi, gapi }
90
+ # @private New Annotation::Properties from a GRPC object.
91
+ def self.from_grpc grpc
92
+ new.tap { |f| f.instance_variable_set :@grpc, grpc }
94
93
  end
95
94
 
96
95
  ##
@@ -100,10 +99,9 @@ module Google
100
99
  # image the color occupies in the image.
101
100
  #
102
101
  # @example
103
- # require "google/cloud"
102
+ # require "google/cloud/vision"
104
103
  #
105
- # gcloud = Google::Cloud.new
106
- # vision = gcloud.vision
104
+ # vision = Google::Cloud::Vision.new
107
105
  #
108
106
  # image = vision.image "path/to/logo.jpg"
109
107
  # properties = image.properties
@@ -119,13 +117,13 @@ module Google
119
117
  #
120
118
  class Color
121
119
  ##
122
- # @private The ColorInfo Google API Client object.
123
- attr_accessor :gapi
120
+ # @private The ColorInfo GRPC object.
121
+ attr_accessor :grpc
124
122
 
125
123
  ##
126
124
  # @private Creates a new Color instance.
127
125
  def initialize
128
- @gapi = {}
126
+ @grpc = nil
129
127
  end
130
128
 
131
129
  ##
@@ -134,7 +132,7 @@ module Google
134
132
  # @return [Float] A value in the interval [0, 255].
135
133
  #
136
134
  def red
137
- @gapi.color.red
135
+ @grpc.color.red
138
136
  end
139
137
 
140
138
  ##
@@ -143,7 +141,7 @@ module Google
143
141
  # @return [Float] A value in the interval [0, 255].
144
142
  #
145
143
  def green
146
- @gapi.color.green
144
+ @grpc.color.green
147
145
  end
148
146
 
149
147
  ##
@@ -152,7 +150,7 @@ module Google
152
150
  # @return [Float] A value in the interval [0, 255].
153
151
  #
154
152
  def blue
155
- @gapi.color.blue
153
+ @grpc.color.blue
156
154
  end
157
155
 
158
156
  ##
@@ -163,7 +161,7 @@ module Google
163
161
  # @return [Float] A value in the range [0, 1].
164
162
  #
165
163
  def alpha
166
- @gapi.color.alpha || 1.0
164
+ @grpc.color.alpha || 1.0
167
165
  end
168
166
 
169
167
  def rgb
@@ -178,7 +176,7 @@ module Google
178
176
  # @return [Float] A value in the range [0, 1].
179
177
  #
180
178
  def score
181
- @gapi.score
179
+ @grpc.score
182
180
  end
183
181
 
184
182
  ##
@@ -187,7 +185,7 @@ module Google
187
185
  # @return [Float] A value in the range [0, 1].
188
186
  #
189
187
  def pixel_fraction
190
- @gapi.pixel_fraction
188
+ @grpc.pixel_fraction
191
189
  end
192
190
 
193
191
  ##
@@ -209,10 +207,10 @@ module Google
209
207
  end
210
208
 
211
209
  ##
212
- # @private New Annotation::Properties from a Google API Client
210
+ # @private New Annotation::Properties from a GRPC
213
211
  # object.
214
- def self.from_gapi gapi
215
- new.tap { |f| f.instance_variable_set :@gapi, gapi }
212
+ def self.from_grpc grpc
213
+ new.tap { |f| f.instance_variable_set :@grpc, grpc }
216
214
  end
217
215
  end
218
216
  end
@@ -27,10 +27,9 @@ module Google
27
27
  # adult, spoof, medical, violence).
28
28
  #
29
29
  # @example
30
- # require "google/cloud"
30
+ # require "google/cloud/vision"
31
31
  #
32
- # gcloud = Google::Cloud.new
33
- # vision = gcloud.vision
32
+ # vision = Google::Cloud::Vision.new
34
33
  #
35
34
  # image = vision.image "path/to/face.jpg"
36
35
  #
@@ -39,23 +38,23 @@ module Google
39
38
  # safe_search.spoof #=> "VERY_UNLIKELY"
40
39
  #
41
40
  class SafeSearch
42
- POSITIVE_RATINGS = %w(POSSIBLE LIKELY VERY_LIKELY)
41
+ POSITIVE_RATINGS = %i(POSSIBLE LIKELY VERY_LIKELY)
43
42
 
44
43
  ##
45
- # @private The SafeSearchAnnotation Google API Client object.
46
- attr_accessor :gapi
44
+ # @private The SafeSearchAnnotation GRPC object.
45
+ attr_accessor :grpc
47
46
 
48
47
  ##
49
48
  # @private Creates a new SafeSearch instance.
50
49
  def initialize
51
- @gapi = {}
50
+ @grpc = nil
52
51
  end
53
52
 
54
53
  ##
55
54
  # Adult likelihood rating. Possible values are `VERY_UNLIKELY`,
56
55
  # `UNLIKELY`, `POSSIBLE`, `LIKELY`, and `VERY_LIKELY`.
57
56
  def adult
58
- @gapi.adult
57
+ @grpc.adult
59
58
  end
60
59
 
61
60
  ##
@@ -72,7 +71,7 @@ module Google
72
71
  # Spoof likelihood rating. Possible values are `VERY_UNLIKELY`,
73
72
  # `UNLIKELY`, `POSSIBLE`, `LIKELY`, and `VERY_LIKELY`.
74
73
  def spoof
75
- @gapi.spoof
74
+ @grpc.spoof
76
75
  end
77
76
 
78
77
  ##
@@ -89,7 +88,7 @@ module Google
89
88
  # Medical likelihood rating. Possible values are `VERY_UNLIKELY`,
90
89
  # `UNLIKELY`, `POSSIBLE`, `LIKELY`, and `VERY_LIKELY`.
91
90
  def medical
92
- @gapi.medical
91
+ @grpc.medical
93
92
  end
94
93
 
95
94
  ##
@@ -106,7 +105,7 @@ module Google
106
105
  # Violence likelihood rating. Possible values are `VERY_UNLIKELY`,
107
106
  # `UNLIKELY`, `POSSIBLE`, `LIKELY`, and `VERY_LIKELY`.
108
107
  def violence
109
- @gapi.violence
108
+ @grpc.violence
110
109
  end
111
110
 
112
111
  ##
@@ -143,9 +142,9 @@ module Google
143
142
  end
144
143
 
145
144
  ##
146
- # @private New Annotation::SafeSearch from a Google API Client object.
147
- def self.from_gapi gapi
148
- new.tap { |f| f.instance_variable_set :@gapi, gapi }
145
+ # @private New Annotation::SafeSearch from a GRPC object.
146
+ def self.from_grpc grpc
147
+ new.tap { |f| f.instance_variable_set :@grpc, grpc }
149
148
  end
150
149
  end
151
150
  end
@@ -25,10 +25,9 @@ module Google
25
25
  # The result of text, or optical character recognition (OCR), detection.
26
26
  #
27
27
  # @example
28
- # require "google/cloud"
28
+ # require "google/cloud/vision"
29
29
  #
30
- # gcloud = Google::Cloud.new
31
- # vision = gcloud.vision
30
+ # vision = Google::Cloud::Vision.new
32
31
  #
33
32
  # image = vision.image "path/to/text.png"
34
33
  #
@@ -40,13 +39,13 @@ module Google
40
39
  #
41
40
  class Text
42
41
  ##
43
- # @private The EntityAnnotation Google API Client object.
44
- attr_accessor :gapi
42
+ # @private The EntityAnnotation GRPC object.
43
+ attr_accessor :grpc
45
44
 
46
45
  ##
47
46
  # @private Creates a new Text instance.
48
47
  def initialize
49
- @gapi = {}
48
+ @grpc = nil
50
49
  @words = []
51
50
  end
52
51
 
@@ -56,7 +55,7 @@ module Google
56
55
  # @return [String] The entire text including newline characters.
57
56
  #
58
57
  def text
59
- @gapi.description
58
+ @grpc.description
60
59
  end
61
60
 
62
61
  ##
@@ -67,7 +66,7 @@ module Google
67
66
  # language code.
68
67
  #
69
68
  def locale
70
- @gapi.locale
69
+ @grpc.locale
71
70
  end
72
71
 
73
72
  ##
@@ -76,9 +75,9 @@ module Google
76
75
  # @return [Array<Vertex>]
77
76
  #
78
77
  def bounds
79
- return [] unless @gapi.bounding_poly
80
- @bounds ||= Array(@gapi.bounding_poly.vertices).map do |v|
81
- Vertex.from_gapi v
78
+ return [] unless @grpc.bounding_poly
79
+ @bounds ||= Array(@grpc.bounding_poly.vertices).map do |v|
80
+ Vertex.from_grpc v
82
81
  end
83
82
  end
84
83
 
@@ -118,15 +117,15 @@ module Google
118
117
  end
119
118
 
120
119
  ##
121
- # @private New Annotation::Text from an array of Google API Client
120
+ # @private New Annotation::Text from an array of GRPC
122
121
  # objects.
123
- def self.from_gapi gapi_list
124
- text, *words = Array gapi_list
122
+ def self.from_grpc grpc_list
123
+ text, *words = Array grpc_list
125
124
  return nil if text.nil?
126
125
  new.tap do |t|
127
- t.instance_variable_set :@gapi, text
126
+ t.instance_variable_set :@grpc, text
128
127
  t.instance_variable_set :@words,
129
- words.map { |w| Word.from_gapi w }
128
+ words.map { |w| Word.from_grpc w }
130
129
  end
131
130
  end
132
131
 
@@ -136,10 +135,9 @@ module Google
136
135
  # A word within a detected text (OCR). See {Text}.
137
136
  #
138
137
  # @example
139
- # require "google/cloud"
138
+ # require "google/cloud/vision"
140
139
  #
141
- # gcloud = Google::Cloud.new
142
- # vision = gcloud.vision
140
+ # vision = Google::Cloud::Vision.new
143
141
  #
144
142
  # image = vision.image "path/to/text.png"
145
143
  # text = image.text
@@ -154,13 +152,13 @@ module Google
154
152
  #
155
153
  class Word
156
154
  ##
157
- # @private The EntityAnnotation Google API Client object.
158
- attr_accessor :gapi
155
+ # @private The EntityAnnotation GRPC object.
156
+ attr_accessor :grpc
159
157
 
160
158
  ##
161
159
  # @private Creates a new Word instance.
162
160
  def initialize
163
- @gapi = {}
161
+ @grpc = nil
164
162
  end
165
163
 
166
164
  ##
@@ -169,7 +167,7 @@ module Google
169
167
  # @return [String]
170
168
  #
171
169
  def text
172
- @gapi.description
170
+ @grpc.description
173
171
  end
174
172
 
175
173
  ##
@@ -178,9 +176,9 @@ module Google
178
176
  # @return [Array<Vertex>]
179
177
  #
180
178
  def bounds
181
- return [] unless @gapi.bounding_poly
182
- @bounds ||= Array(@gapi.bounding_poly.vertices).map do |v|
183
- Vertex.from_gapi v
179
+ return [] unless @grpc.bounding_poly
180
+ @bounds ||= Array(@grpc.bounding_poly.vertices).map do |v|
181
+ Vertex.from_grpc v
184
182
  end
185
183
  end
186
184
 
@@ -209,10 +207,10 @@ module Google
209
207
  end
210
208
 
211
209
  ##
212
- # @private New Annotation::Text::Word from a Google API Client
210
+ # @private New Annotation::Text::Word from a GRPC
213
211
  # object.
214
- def self.from_gapi gapi
215
- new.tap { |w| w.instance_variable_set :@gapi, gapi }
212
+ def self.from_grpc grpc
213
+ new.tap { |w| w.instance_variable_set :@grpc, grpc }
216
214
  end
217
215
  end
218
216
  end
@@ -28,10 +28,9 @@ module Google
28
28
  # @attr_reader [Integer] y The Y coordinate.
29
29
  #
30
30
  # @example
31
- # require "google/cloud"
31
+ # require "google/cloud/vision"
32
32
  #
33
- # gcloud = Google::Cloud.new
34
- # vision = gcloud.vision
33
+ # vision = Google::Cloud::Vision.new
35
34
  #
36
35
  # image = vision.image "path/to/text.png"
37
36
  # text = image.text
@@ -82,8 +81,8 @@ module Google
82
81
  ##
83
82
  # @private New Annotation::Entity::Bounds::Vertex from a Google API
84
83
  # Client object.
85
- def self.from_gapi gapi
86
- new gapi.x, gapi.y
84
+ def self.from_grpc grpc
85
+ new grpc.x, grpc.y
87
86
  end
88
87
  end
89
88
  end
@@ -31,23 +31,22 @@ module Google
31
31
  # The Cloud Vision API supports a variety of image file formats, including
32
32
  # JPEG, PNG8, PNG24, Animated GIF (first frame only), and RAW. See [Best
33
33
  # Practices - Image
34
- # Types](https://cloud.google.com/vision/docs/image-best-practices#image_types)
34
+ # Types](https://cloud.google.com/vision/docs/best-practices#image_types)
35
35
  # for the list of formats. Be aware that Cloud Vision sets upper limits on
36
36
  # file size as well as the total combined size of all images in a request.
37
37
  # Reducing your file size can significantly improve throughput; however,
38
38
  # be careful not to reduce image quality in the process. See [Best
39
39
  # Practices - Image
40
- # Sizing](https://cloud.google.com/vision/docs/image-best-practices#image_sizing)
40
+ # Sizing](https://cloud.google.com/vision/docs/best-practices#image_sizing)
41
41
  # for current file size limits.
42
42
  #
43
- # @see https://cloud.google.com/vision/docs/image-best-practices Best
43
+ # @see https://cloud.google.com/vision/docs/best-practices Best
44
44
  # Practices
45
45
  #
46
46
  # @example
47
- # require "google/cloud"
47
+ # require "google/cloud/vision"
48
48
  #
49
- # gcloud = Google::Cloud.new
50
- # vision = gcloud.vision
49
+ # vision = Google::Cloud::Vision.new
51
50
  #
52
51
  # image = vision.image "path/to/text.png"
53
52
  #
@@ -96,10 +95,9 @@ module Google
96
95
  # @return [Array<Annotation::Face>] The results of face detection.
97
96
  #
98
97
  # @example
99
- # require "google/cloud"
98
+ # require "google/cloud/vision"
100
99
  #
101
- # gcloud = Google::Cloud.new
102
- # vision = gcloud.vision
100
+ # vision = Google::Cloud::Vision.new
103
101
  # image = vision.image "path/to/face.jpg"
104
102
  #
105
103
  # faces = image.faces
@@ -135,10 +133,9 @@ module Google
135
133
  # @return [Array<Annotation::Entity>] The results of landmark detection.
136
134
  #
137
135
  # @example
138
- # require "google/cloud"
136
+ # require "google/cloud/vision"
139
137
  #
140
- # gcloud = Google::Cloud.new
141
- # vision = gcloud.vision
138
+ # vision = Google::Cloud::Vision.new
142
139
  # image = vision.image "path/to/landmark.jpg"
143
140
  #
144
141
  # landmarks = image.landmarks
@@ -175,10 +172,9 @@ module Google
175
172
  # @return [Array<Annotation::Entity>] The results of logo detection.
176
173
  #
177
174
  # @example
178
- # require "google/cloud"
175
+ # require "google/cloud/vision"
179
176
  #
180
- # gcloud = Google::Cloud.new
181
- # vision = gcloud.vision
177
+ # vision = Google::Cloud::Vision.new
182
178
  # image = vision.image "path/to/logo.jpg"
183
179
  #
184
180
  # logos = image.logos
@@ -215,10 +211,9 @@ module Google
215
211
  # @return [Array<Annotation::Entity>] The results of label detection.
216
212
  #
217
213
  # @example
218
- # require "google/cloud"
214
+ # require "google/cloud/vision"
219
215
  #
220
- # gcloud = Google::Cloud.new
221
- # vision = gcloud.vision
216
+ # vision = Google::Cloud::Vision.new
222
217
  # image = vision.image "path/to/face.jpg"
223
218
  #
224
219
  # labels = image.labels
@@ -253,10 +248,9 @@ module Google
253
248
  # @return [Annotation::Text] The results of text (OCR) detection.
254
249
  #
255
250
  # @example
256
- # require "google/cloud"
251
+ # require "google/cloud/vision"
257
252
  #
258
- # gcloud = Google::Cloud.new
259
- # vision = gcloud.vision
253
+ # vision = Google::Cloud::Vision.new
260
254
  # image = vision.image "path/to/text.png"
261
255
  #
262
256
  # text = image.text
@@ -281,10 +275,9 @@ module Google
281
275
  # @return [Annotation::SafeSearch] The results of safe search detection.
282
276
  #
283
277
  # @example
284
- # require "google/cloud"
278
+ # require "google/cloud/vision"
285
279
  #
286
- # gcloud = Google::Cloud.new
287
- # vision = gcloud.vision
280
+ # vision = Google::Cloud::Vision.new
288
281
  # image = vision.image "path/to/face.jpg"
289
282
  #
290
283
  # safe_search = image.safe_search
@@ -307,10 +300,9 @@ module Google
307
300
  # detection.
308
301
  #
309
302
  # @example
310
- # require "google/cloud"
303
+ # require "google/cloud/vision"
311
304
  #
312
- # gcloud = Google::Cloud.new
313
- # vision = gcloud.vision
305
+ # vision = Google::Cloud::Vision.new
314
306
  # image = vision.image "path/to/logo.jpg"
315
307
  #
316
308
  # properties = image.properties
@@ -345,13 +337,15 @@ module Google
345
337
  end
346
338
 
347
339
  ##
348
- # @private The Google API Client object for the Image.
349
- def to_gapi
340
+ # @private The GRPC object for the Image.
341
+ def to_grpc
350
342
  if io?
351
343
  @io.rewind
352
- Google::Apis::VisionV1::Image.new content: @io.read
344
+ Google::Cloud::Vision::V1::Image.new content: @io.read
353
345
  elsif url?
354
- Google::Apis::VisionV1::Image.new source: { gcs_image_uri: @url }
346
+ Google::Cloud::Vision::V1::Image.new(
347
+ source: Google::Cloud::Vision::V1::ImageSource.new(
348
+ gcs_image_uri: @url))
355
349
  else
356
350
  fail ArgumentError, "Unable to use Image with Vision service."
357
351
  end
@@ -430,10 +424,9 @@ module Google
430
424
  # great deal if the hint is wrong).
431
425
  #
432
426
  # @example
433
- # require "google/cloud"
427
+ # require "google/cloud/vision"
434
428
  #
435
- # gcloud = Google::Cloud.new
436
- # vision = gcloud.vision
429
+ # vision = Google::Cloud::Vision.new
437
430
  #
438
431
  # image = vision.image "path/to/landmark.jpg"
439
432
  # image.context.area.min = { longitude: -122.0862462,
@@ -468,12 +461,13 @@ module Google
468
461
 
469
462
  ##
470
463
  # @private
471
- def to_gapi
464
+ def to_grpc
472
465
  return nil if empty?
473
- gapi = Google::Apis::VisionV1::ImageContext.new
474
- gapi.lat_long_rect = area.to_gapi unless area.empty?
475
- gapi.language_hints = languages unless languages.empty?
476
- gapi
466
+
467
+ args = {}
468
+ args[:lat_long_rect] = area.to_grpc unless area.empty?
469
+ args[:language_hints] = languages unless languages.empty?
470
+ Google::Cloud::Vision::V1::ImageContext.new args
477
471
  end
478
472
 
479
473
  ##
@@ -482,10 +476,9 @@ module Google
482
476
  # A Lat/long rectangle that specifies the location of the image.
483
477
  #
484
478
  # @example
485
- # require "google/cloud"
479
+ # require "google/cloud/vision"
486
480
  #
487
- # gcloud = Google::Cloud.new
488
- # vision = gcloud.vision
481
+ # vision = Google::Cloud::Vision.new
489
482
  #
490
483
  # image = vision.image "path/to/landmark.jpg"
491
484
  #
@@ -563,11 +556,11 @@ module Google
563
556
  { min_lat_lng: min.to_h, max_lat_lng: max.to_h }
564
557
  end
565
558
 
566
- def to_gapi
559
+ def to_grpc
567
560
  return nil if empty?
568
- Google::Apis::VisionV1::LatLongRect.new(
569
- min_lat_lng: min.to_gapi,
570
- max_lat_lng: max.to_gapi
561
+ Google::Cloud::Vision::V1::LatLongRect.new(
562
+ min_lat_lng: min.to_grpc,
563
+ max_lat_lng: max.to_grpc
571
564
  )
572
565
  end
573
566
  end