aylien_text_api 0.4.0 → 0.5.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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/aylien_text_api/client.rb +71 -30
  4. data/lib/aylien_text_api/connection.rb +7 -0
  5. data/lib/aylien_text_api/version.rb +1 -1
  6. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_invalid_client.yml +3 -3
  7. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_invalid_params.yml +5 -5
  8. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_invalid_taxonomy.yml +5 -5
  9. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_text.yml +5 -5
  10. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_unauthenticated_client.yml +3 -3
  11. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_valid_url.yml +5 -5
  12. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_value_as_text.yml +5 -5
  13. data/spec/fixtures/aylien_text_api/client/classify_by_taxonomy_with_value_as_valid_url.yml +5 -5
  14. data/spec/fixtures/aylien_text_api/client/classify_with_invalid_client.yml +3 -3
  15. data/spec/fixtures/aylien_text_api/client/classify_with_invalid_params.yml +6 -6
  16. data/spec/fixtures/aylien_text_api/client/classify_with_text.yml +5 -5
  17. data/spec/fixtures/aylien_text_api/client/classify_with_unauthenticated_client.yml +3 -3
  18. data/spec/fixtures/aylien_text_api/client/classify_with_valid_url.yml +5 -5
  19. data/spec/fixtures/aylien_text_api/client/classify_with_value_as_text.yml +5 -5
  20. data/spec/fixtures/aylien_text_api/client/classify_with_value_as_valid_url.yml +5 -5
  21. data/spec/fixtures/aylien_text_api/client/combined_with_invalid_client.yml +3 -3
  22. data/spec/fixtures/aylien_text_api/client/combined_with_invalid_params.yml +5 -5
  23. data/spec/fixtures/aylien_text_api/client/combined_with_text.yml +6 -6
  24. data/spec/fixtures/aylien_text_api/client/combined_with_unauthenticated_client.yml +3 -3
  25. data/spec/fixtures/aylien_text_api/client/combined_with_valid_url.yml +6 -6
  26. data/spec/fixtures/aylien_text_api/client/combined_with_value_as_text.yml +6 -6
  27. data/spec/fixtures/aylien_text_api/client/combined_with_value_as_valid_url.yml +77 -77
  28. data/spec/fixtures/aylien_text_api/client/concepts_with_invalid_client.yml +3 -3
  29. data/spec/fixtures/aylien_text_api/client/concepts_with_invalid_params.yml +5 -5
  30. data/spec/fixtures/aylien_text_api/client/concepts_with_text.yml +5 -5
  31. data/spec/fixtures/aylien_text_api/client/concepts_with_unauthenticated_client.yml +3 -3
  32. data/spec/fixtures/aylien_text_api/client/concepts_with_valid_url.yml +5 -5
  33. data/spec/fixtures/aylien_text_api/client/concepts_with_value_as_text.yml +5 -5
  34. data/spec/fixtures/aylien_text_api/client/concepts_with_value_as_valid_url.yml +5 -5
  35. data/spec/fixtures/aylien_text_api/client/entities_with_invalid_client.yml +3 -3
  36. data/spec/fixtures/aylien_text_api/client/entities_with_invalid_params.yml +5 -5
  37. data/spec/fixtures/aylien_text_api/client/entities_with_text.yml +5 -5
  38. data/spec/fixtures/aylien_text_api/client/entities_with_unauthenticated_client.yml +3 -3
  39. data/spec/fixtures/aylien_text_api/client/entities_with_valid_url.yml +5 -5
  40. data/spec/fixtures/aylien_text_api/client/entities_with_value_as_text.yml +5 -5
  41. data/spec/fixtures/aylien_text_api/client/entities_with_value_as_valid_url.yml +5 -5
  42. data/spec/fixtures/aylien_text_api/client/extract_with_invalid_client.yml +3 -3
  43. data/spec/fixtures/aylien_text_api/client/extract_with_invalid_params.yml +6 -6
  44. data/spec/fixtures/aylien_text_api/client/extract_with_unauthenticated_client.yml +3 -3
  45. data/spec/fixtures/aylien_text_api/client/extract_with_valid_url.yml +5 -5
  46. data/spec/fixtures/aylien_text_api/client/extract_with_value_as_text.yml +5 -5
  47. data/spec/fixtures/aylien_text_api/client/extract_with_value_as_valid_url.yml +5 -5
  48. data/spec/fixtures/aylien_text_api/client/hashtags_with_invalid_client.yml +3 -3
  49. data/spec/fixtures/aylien_text_api/client/hashtags_with_invalid_params.yml +5 -5
  50. data/spec/fixtures/aylien_text_api/client/hashtags_with_text.yml +5 -5
  51. data/spec/fixtures/aylien_text_api/client/hashtags_with_unauthenticated_client.yml +3 -3
  52. data/spec/fixtures/aylien_text_api/client/hashtags_with_valid_url.yml +5 -5
  53. data/spec/fixtures/aylien_text_api/client/hashtags_with_value_as_text.yml +5 -5
  54. data/spec/fixtures/aylien_text_api/client/hashtags_with_value_as_valid_url.yml +5 -5
  55. data/spec/fixtures/aylien_text_api/client/image_tags_with_invalid_client.yml +3 -3
  56. data/spec/fixtures/aylien_text_api/client/image_tags_with_invalid_params.yml +6 -6
  57. data/spec/fixtures/aylien_text_api/client/image_tags_with_unauthenticated_client.yml +3 -3
  58. data/spec/fixtures/aylien_text_api/client/image_tags_with_valid_url.yml +8 -8
  59. data/spec/fixtures/aylien_text_api/client/image_tags_with_value_as_text.yml +5 -5
  60. data/spec/fixtures/aylien_text_api/client/image_tags_with_value_as_valid_url.yml +8 -8
  61. data/spec/fixtures/aylien_text_api/client/language_with_invalid_client.yml +3 -3
  62. data/spec/fixtures/aylien_text_api/client/language_with_invalid_params.yml +5 -5
  63. data/spec/fixtures/aylien_text_api/client/language_with_unauthenticated_client.yml +3 -3
  64. data/spec/fixtures/aylien_text_api/client/language_with_valid_text.yml +6 -6
  65. data/spec/fixtures/aylien_text_api/client/language_with_valid_url.yml +6 -6
  66. data/spec/fixtures/aylien_text_api/client/language_with_value_as_text.yml +6 -6
  67. data/spec/fixtures/aylien_text_api/client/language_with_value_as_valid_url.yml +6 -6
  68. data/spec/fixtures/aylien_text_api/client/microformats_with_invalid_client.yml +3 -3
  69. data/spec/fixtures/aylien_text_api/client/microformats_with_invalid_params.yml +5 -5
  70. data/spec/fixtures/aylien_text_api/client/microformats_with_unauthenticated_client.yml +3 -3
  71. data/spec/fixtures/aylien_text_api/client/microformats_with_valid_url.yml +6 -6
  72. data/spec/fixtures/aylien_text_api/client/microformats_with_value_as_valid_url.yml +6 -6
  73. data/spec/fixtures/aylien_text_api/client/rate_limits.yml +53 -0
  74. data/spec/fixtures/aylien_text_api/client/rate_limits_with_invalid_client.yml +38 -0
  75. data/spec/fixtures/aylien_text_api/client/rate_limits_with_unauthenticated_client.yml +42 -0
  76. data/spec/fixtures/aylien_text_api/client/related_with_invalid_client.yml +3 -3
  77. data/spec/fixtures/aylien_text_api/client/related_with_invalid_params.yml +5 -5
  78. data/spec/fixtures/aylien_text_api/client/related_with_phrase.yml +5 -5
  79. data/spec/fixtures/aylien_text_api/client/related_with_unauthenticated_client.yml +3 -3
  80. data/spec/fixtures/aylien_text_api/client/related_with_value_as_phrase.yml +5 -5
  81. data/spec/fixtures/aylien_text_api/client/related_with_value_as_valid_url.yml +5 -5
  82. data/spec/fixtures/aylien_text_api/client/sentiment_with_invalid_client.yml +3 -3
  83. data/spec/fixtures/aylien_text_api/client/sentiment_with_invalid_params.yml +5 -5
  84. data/spec/fixtures/aylien_text_api/client/sentiment_with_text.yml +7 -7
  85. data/spec/fixtures/aylien_text_api/client/sentiment_with_unauthenticated_client.yml +3 -3
  86. data/spec/fixtures/aylien_text_api/client/sentiment_with_valid_url.yml +6 -6
  87. data/spec/fixtures/aylien_text_api/client/sentiment_with_value_as_text.yml +7 -7
  88. data/spec/fixtures/aylien_text_api/client/sentiment_with_value_as_valid_url.yml +6 -6
  89. data/spec/fixtures/aylien_text_api/client/summarize_with_invalid_client.yml +3 -3
  90. data/spec/fixtures/aylien_text_api/client/summarize_with_invalid_params.yml +5 -5
  91. data/spec/fixtures/aylien_text_api/client/summarize_with_title_and_text.yml +5 -5
  92. data/spec/fixtures/aylien_text_api/client/summarize_with_unauthenticated_client.yml +3 -3
  93. data/spec/fixtures/aylien_text_api/client/summarize_with_valid_url.yml +5 -5
  94. data/spec/fixtures/aylien_text_api/client/summarize_with_value_as_text_and_title.yml +5 -5
  95. data/spec/fixtures/aylien_text_api/client/summarize_with_value_as_text_and_without_title.yml +5 -5
  96. data/spec/fixtures/aylien_text_api/client/summarize_with_value_as_valid_url.yml +5 -5
  97. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_invalid_client.yml +3 -3
  98. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_invalid_params.yml +5 -5
  99. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_text.yml +5 -5
  100. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_unauthenticated_client.yml +3 -3
  101. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_valid_url.yml +5 -5
  102. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_value_as_text.yml +5 -5
  103. data/spec/fixtures/aylien_text_api/client/unsupervised_classify_with_value_as_valid_url.yml +5 -5
  104. data/spec/lib/aylien_text_api/classify.rb +1 -1
  105. data/spec/lib/aylien_text_api/client_spec.rb +1 -0
  106. data/spec/lib/aylien_text_api/rate_limits.rb +26 -0
  107. metadata +11 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f5ca9194dc31a1cff562728d3898aefd4b0d0b72
4
- data.tar.gz: 0de02e92c4d55f1f84324d4ab5b694377ffaed8e
3
+ metadata.gz: 32241b5e504b3607cd03ba3ce52b6ff041293fe5
4
+ data.tar.gz: d9afa0e66071345e5bf7ccfa8f4a846ead1fd01f
5
5
  SHA512:
6
- metadata.gz: 02f89349fa72450dea8c2f20113cdf71a9f8447d26479f6131837b2c0d06da8549ecc947f24c8a46c050602860460c2d9fdc8d85639a207868a36ed2ddbe871d
7
- data.tar.gz: b0cbfc361ca4f8d3cf21deb8beee50b4080a9e1aa61f2cac388571b9a2beb48e167fab62188d7be3e07e223f25b10b76e4009f360aab43f6c907d4cbde3570f3
6
+ metadata.gz: aea76530a27c218f2056f63da306f87bdb6583e8edbd6313242a2099f51da29c83c57bc426daafe3d40e1a014034c7f6230e53fe839d7196c182bb5cc2ee5dcc
7
+ data.tar.gz: 94bdff655d8b484500462919017f69a1ce84c4f480c89afb654130aeff638c22ee1b43a275f7ce360f5f8d9b05e3829ae17dc40ca33c162bfe036f089f0d327e
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aylien_text_api (0.4.0)
4
+ aylien_text_api (0.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -49,7 +49,8 @@ module AylienTextApi
49
49
  def extract(value=nil, params={})
50
50
  endpoint, params, config = common_endpoint(value, params,
51
51
  Configuration::ENDPOINTS[:extract])
52
- Connection.new(endpoint, params, config).request
52
+ @connection = Connection.new(endpoint, params, config)
53
+ @connection.request
53
54
  end
54
55
 
55
56
  # Like extract, but calls request! so an exception is raised
@@ -58,10 +59,11 @@ module AylienTextApi
58
59
  def extract!(value=nil, params={})
59
60
  endpoint, params, config = common_endpoint(value, params,
60
61
  Configuration::ENDPOINTS[:extract])
61
- Connection.new(endpoint, params, config).request!
62
+ @connection = Connection.new(endpoint, params, config)
63
+ @connection.request!
62
64
  end
63
65
 
64
- # Classifies a piece of text according to a defined taxonomy.
66
+ # Classifies a piece of text according to the specified taxonomy.
65
67
  #
66
68
  # @param [String] value (nil) URL or Text
67
69
  # @param [Hash] params The classify endpoint options
@@ -78,7 +80,8 @@ module AylienTextApi
78
80
  def classify_by_taxonomy(value=nil, params={})
79
81
  endpoint, params, config = common_endpoint(value, params,
80
82
  Configuration::ENDPOINTS[:classify_by_taxonomy])
81
- Connection.new(endpoint, params, config).request
83
+ @connection = Connection.new(endpoint, params, config)
84
+ @connection.request
82
85
  end
83
86
 
84
87
  # Like classify_by_taxonomy, but calls request! so an exception is raised
@@ -87,7 +90,8 @@ module AylienTextApi
87
90
  def classify_by_taxonomy!(value=nil, params={})
88
91
  endpoint, params, config = common_endpoint(value, params,
89
92
  Configuration::ENDPOINTS[:classify_by_taxonomy])
90
- Connection.new(endpoint, params, config).request!
93
+ @connection = Connection.new(endpoint, params, config)
94
+ @connection.request!
91
95
  end
92
96
 
93
97
  # Classifies a piece of text according to IPTC NewsCode standard.
@@ -107,7 +111,8 @@ module AylienTextApi
107
111
  def classify(value=nil, params={})
108
112
  endpoint, params, config = common_endpoint(value, params,
109
113
  Configuration::ENDPOINTS[:classify])
110
- Connection.new(endpoint, params, config).request
114
+ @connection = Connection.new(endpoint, params, config)
115
+ @connection.request
111
116
  end
112
117
 
113
118
  # Like classify, but calls request! so an exception is raised
@@ -116,7 +121,8 @@ module AylienTextApi
116
121
  def classify!(value=nil, params={})
117
122
  endpoint, params, config = common_endpoint(value, params,
118
123
  Configuration::ENDPOINTS[:classify])
119
- Connection.new(endpoint, params, config).request!
124
+ @connection = Connection.new(endpoint, params, config)
125
+ @connection.request!
120
126
  end
121
127
 
122
128
  # Extracts named entities mentioned in a document, disambiguates
@@ -138,7 +144,8 @@ module AylienTextApi
138
144
  def concepts(value=nil, params={})
139
145
  endpoint, params, config = common_endpoint(value, params,
140
146
  Configuration::ENDPOINTS[:concepts])
141
- Connection.new(endpoint, params, config).request
147
+ @connection = Connection.new(endpoint, params, config)
148
+ @connection.request
142
149
  end
143
150
 
144
151
  # Like concepts, but calls request! so an exception is raised
@@ -147,7 +154,8 @@ module AylienTextApi
147
154
  def concepts!(value=nil, params={})
148
155
  endpoint, params, config = common_endpoint(value, params,
149
156
  Configuration::ENDPOINTS[:concepts])
150
- Connection.new(endpoint, params, config).request!
157
+ @connection = Connection.new(endpoint, params, config)
158
+ @connection.request!
151
159
  end
152
160
 
153
161
  # Suggests hashtags describing the document.
@@ -167,7 +175,8 @@ module AylienTextApi
167
175
  def hashtags(value=nil, params={})
168
176
  endpoint, params, config = common_endpoint(value, params,
169
177
  Configuration::ENDPOINTS[:hashtags])
170
- Connection.new(endpoint, params, config).request
178
+ @connection = Connection.new(endpoint, params, config)
179
+ @connection.request
171
180
  end
172
181
 
173
182
  # Like hashtags, but calls request! so an exception is raised
@@ -176,7 +185,8 @@ module AylienTextApi
176
185
  def hashtags!(value=nil, params={})
177
186
  endpoint, params, config = common_endpoint(value, params,
178
187
  Configuration::ENDPOINTS[:hashtags])
179
- Connection.new(endpoint, params, config).request!
188
+ @connection = Connection.new(endpoint, params, config)
189
+ @connection.request!
180
190
  end
181
191
 
182
192
  # Extracts named entities (people, organizations and locations) and
@@ -198,7 +208,8 @@ module AylienTextApi
198
208
  def entities(value=nil, params={})
199
209
  endpoint, params, config = common_endpoint(value, params,
200
210
  Configuration::ENDPOINTS[:entities])
201
- Connection.new(endpoint, params, config).request
211
+ @connection = Connection.new(endpoint, params, config)
212
+ @connection.request
202
213
  end
203
214
 
204
215
  # Like entities, but calls request! so an exception is raised
@@ -207,7 +218,8 @@ module AylienTextApi
207
218
  def entities!(value=nil, params={})
208
219
  endpoint, params, config = common_endpoint(value, params,
209
220
  Configuration::ENDPOINTS[:entities])
210
- Connection.new(endpoint, params, config).request!
221
+ @connection = Connection.new(endpoint, params, config)
222
+ @connection.request!
211
223
  end
212
224
 
213
225
  # Detects the main language a document is written in and returns it
@@ -225,7 +237,8 @@ module AylienTextApi
225
237
  def language(value=nil, params={})
226
238
  endpoint, params, config = common_endpoint(value, params,
227
239
  Configuration::ENDPOINTS[:language])
228
- Connection.new(endpoint, params, config).request
240
+ @connection = Connection.new(endpoint, params, config)
241
+ @connection.request
229
242
  end
230
243
 
231
244
  # Like language, but calls request! so an exception is raised
@@ -234,7 +247,8 @@ module AylienTextApi
234
247
  def language!(value=nil, params={})
235
248
  endpoint, params, config = common_endpoint(value, params,
236
249
  Configuration::ENDPOINTS[:language])
237
- Connection.new(endpoint, params, config).request!
250
+ @connection = Connection.new(endpoint, params, config)
251
+ @connection.request!
238
252
  end
239
253
 
240
254
  # Detects sentiment of a document in terms of
@@ -255,7 +269,8 @@ module AylienTextApi
255
269
  def sentiment(value=nil, params={})
256
270
  endpoint, params, config = common_endpoint(value, params,
257
271
  Configuration::ENDPOINTS[:sentiment])
258
- Connection.new(endpoint, params, config).request
272
+ @connection = Connection.new(endpoint, params, config)
273
+ @connection.request
259
274
  end
260
275
 
261
276
  # Like sentiment, but calls request! so an exception is raised
@@ -264,7 +279,8 @@ module AylienTextApi
264
279
  def sentiment!(value=nil, params={})
265
280
  endpoint, params, config = common_endpoint(value, params,
266
281
  Configuration::ENDPOINTS[:sentiment])
267
- Connection.new(endpoint, params, config).request!
282
+ @connection = Connection.new(endpoint, params, config)
283
+ @connection.request!
268
284
  end
269
285
  # Summarizes an article into a few key sentences.
270
286
  #
@@ -293,7 +309,8 @@ module AylienTextApi
293
309
  def summarize(value=nil, params={})
294
310
  endpoint, params, config = common_endpoint(value, params,
295
311
  Configuration::ENDPOINTS[:summarize])
296
- Connection.new(endpoint, params, config).request
312
+ @connection = Connection.new(endpoint, params, config)
313
+ @connection.request
297
314
  end
298
315
 
299
316
  # Like summarize, but calls request! so an exception is raised
@@ -302,7 +319,8 @@ module AylienTextApi
302
319
  def summarize!(value=nil, params={})
303
320
  endpoint, params, config = common_endpoint(value, params,
304
321
  Configuration::ENDPOINTS[:summarize])
305
- Connection.new(endpoint, params, config).request!
322
+ @connection = Connection.new(endpoint, params, config)
323
+ @connection.request!
306
324
  end
307
325
 
308
326
  # Returns phrases related to the provided unigram, or bigram.
@@ -320,7 +338,8 @@ module AylienTextApi
320
338
  def related(value=nil, params={})
321
339
  endpoint, params, config = common_endpoint(value, params,
322
340
  Configuration::ENDPOINTS[:related])
323
- Connection.new(endpoint, params, config).request
341
+ @connection = Connection.new(endpoint, params, config)
342
+ @connection.request
324
343
  end
325
344
 
326
345
  # Like related, but calls request! so an exception is raised
@@ -329,7 +348,8 @@ module AylienTextApi
329
348
  def related!(value=nil, params={})
330
349
  endpoint, params, config = common_endpoint(value, params,
331
350
  Configuration::ENDPOINTS[:related])
332
- Connection.new(endpoint, params, config).request!
351
+ @connection = Connection.new(endpoint, params, config)
352
+ @connection.request!
333
353
  end
334
354
 
335
355
  # Return Microformats.
@@ -348,7 +368,8 @@ module AylienTextApi
348
368
  def microformats(value=nil, params={})
349
369
  endpoint, params, config = common_endpoint(value, params,
350
370
  Configuration::ENDPOINTS[:microformats])
351
- Connection.new(endpoint, params, config).request
371
+ @connection = Connection.new(endpoint, params, config)
372
+ @connection.request
352
373
  end
353
374
 
354
375
  # Like microformats, but calls request! so an exception is raised
@@ -357,7 +378,8 @@ module AylienTextApi
357
378
  def microformats!(value=nil, params={})
358
379
  endpoint, params, config = common_endpoint(value, params,
359
380
  Configuration::ENDPOINTS[:microformats])
360
- Connection.new(endpoint, params, config).request!
381
+ @connection = Connection.new(endpoint, params, config)
382
+ @connection.request!
361
383
  end
362
384
 
363
385
  # Return Unsupervised Classify.
@@ -377,7 +399,8 @@ module AylienTextApi
377
399
  def unsupervised_classify(value=nil, params={})
378
400
  endpoint, params, config = common_endpoint(value, params,
379
401
  Configuration::ENDPOINTS[:unsupervised_classify])
380
- Connection.new(endpoint, params, config).request
402
+ @connection = Connection.new(endpoint, params, config)
403
+ @connection.request
381
404
  end
382
405
 
383
406
  # Like unsupervised_classify, but calls request! so an exception is raised
@@ -386,7 +409,8 @@ module AylienTextApi
386
409
  def unsupervised_classify!(value=nil, params={})
387
410
  endpoint, params, config = common_endpoint(value, params,
388
411
  Configuration::ENDPOINTS[:unsupervised_classify])
389
- Connection.new(endpoint, params, config).request!
412
+ @connection = Connection.new(endpoint, params, config)
413
+ @connection.request!
390
414
  end
391
415
 
392
416
  # Runs multiple analysis operations in one API call.
@@ -404,7 +428,8 @@ module AylienTextApi
404
428
  def combined(value=nil, params={})
405
429
  endpoint, params, config = common_endpoint(value, params,
406
430
  Configuration::ENDPOINTS[:combined])
407
- Connection.new(endpoint, params, config).request
431
+ @connection = Connection.new(endpoint, params, config)
432
+ @connection.request
408
433
  end
409
434
 
410
435
  # Like combined, but calls request! so an exception is raised
@@ -413,8 +438,10 @@ module AylienTextApi
413
438
  def combined!(value=nil, params={})
414
439
  endpoint, params, config = common_endpoint(value, params,
415
440
  Configuration::ENDPOINTS[:combined])
416
- Connection.new(endpoint, params, config).request!
441
+ @connection = Connection.new(endpoint, params, config)
442
+ @connection.request!
417
443
  end
444
+
418
445
  # Assigns relevant tags to an image.
419
446
  #
420
447
  # @param [String] value (nil) URL
@@ -427,7 +454,8 @@ module AylienTextApi
427
454
  def image_tags(value=nil, params={})
428
455
  endpoint, params, config = common_endpoint(value, params,
429
456
  Configuration::ENDPOINTS[:image_tags])
430
- Connection.new(endpoint, params, config).request
457
+ @connection = Connection.new(endpoint, params, config)
458
+ @connection.request
431
459
  end
432
460
 
433
461
  # Like image_tags, but calls request! so an exception is raised
@@ -436,9 +464,22 @@ module AylienTextApi
436
464
  def image_tags!(value=nil, params={})
437
465
  endpoint, params, config = common_endpoint(value, params,
438
466
  Configuration::ENDPOINTS[:image_tags])
439
- Connection.new(endpoint, params, config).request!
467
+ @connection = Connection.new(endpoint, params, config)
468
+ @connection.request!
440
469
  end
441
-
470
+
471
+ # Returns current client's rate limit values. If it gets failed,
472
+ # nil will be returned.
473
+ #
474
+ # @return [Hash, nil] A hash of result. See
475
+ # http://docs.aylien.com/docs/rate-limits for more information
476
+ # on the data returned.
477
+ def rate_limits
478
+ self.language text: "Hello world!" unless defined?(@connection)
479
+
480
+ (@connection || {}).rate_limits
481
+ end
482
+
442
483
  private
443
484
 
444
485
  def validate_uri(value)
@@ -19,6 +19,8 @@ require 'net/http'
19
19
 
20
20
  module AylienTextApi
21
21
  class Connection
22
+ attr_reader :rate_limits
23
+
22
24
  def initialize(endpoint, params, config)
23
25
  @config = config
24
26
  @uri = URI.join(@config[:base_uri], endpoint)
@@ -41,6 +43,11 @@ module AylienTextApi
41
43
  Net::HTTP.start(@uri.host, @uri.port, use_ssl: (@uri.scheme == 'https')) do |http|
42
44
  response = http.request(@request)
43
45
  if response.kind_of?(Net::HTTPSuccess)
46
+ @rate_limits = {
47
+ limit: response["X-RateLimit-Limit"],
48
+ remaining: response["X-RateLimit-Remaining"],
49
+ reset: response["X-RateLimit-Reset"]
50
+ }
44
51
  JSON.parse(response.body, :symbolize_names => true)
45
52
  else
46
53
  klass = AylienTextApi::Error::ERRORS[response.code.to_i]
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module AylienTextApi
16
- VERSION = "0.4.0" unless defined? AylienTextApi::VERSION
16
+ VERSION = "0.5.0" unless defined? AylienTextApi::VERSION
17
17
  end
@@ -21,9 +21,9 @@ http_interactions:
21
21
  message: Forbidden
22
22
  headers:
23
23
  Server:
24
- - openresty/1.7.7.2
24
+ - openresty/1.9.3.2
25
25
  Date:
26
- - Thu, 17 Sep 2015 11:17:32 GMT
26
+ - Fri, 22 Jan 2016 13:17:57 GMT
27
27
  Content-Type:
28
28
  - text/plain; charset=us-ascii
29
29
  Transfer-Encoding:
@@ -34,5 +34,5 @@ http_interactions:
34
34
  encoding: UTF-8
35
35
  string: Authentication parameters missing
36
36
  http_version:
37
- recorded_at: Thu, 17 Sep 2015 11:17:32 GMT
37
+ recorded_at: Fri, 22 Jan 2016 13:17:57 GMT
38
38
  recorded_with: VCR 2.9.3
@@ -25,9 +25,9 @@ http_interactions:
25
25
  message: Bad Request
26
26
  headers:
27
27
  Server:
28
- - openresty/1.7.7.2
28
+ - openresty/1.9.3.2
29
29
  Date:
30
- - Thu, 17 Sep 2015 11:17:30 GMT
30
+ - Fri, 22 Jan 2016 13:18:01 GMT
31
31
  Content-Type:
32
32
  - application/json;charset=UTF-8
33
33
  Content-Length:
@@ -37,9 +37,9 @@ http_interactions:
37
37
  X-Ratelimit-Limit:
38
38
  - '207000'
39
39
  X-Ratelimit-Remaining:
40
- - '206407'
40
+ - '206338'
41
41
  X-Ratelimit-Reset:
42
- - '1442534400'
42
+ - '1453507200'
43
43
  body:
44
44
  encoding: UTF-8
45
45
  string: |-
@@ -53,5 +53,5 @@ http_interactions:
53
53
  }]
54
54
  }
55
55
  http_version:
56
- recorded_at: Thu, 17 Sep 2015 11:17:31 GMT
56
+ recorded_at: Fri, 22 Jan 2016 13:18:01 GMT
57
57
  recorded_with: VCR 2.9.3
@@ -25,9 +25,9 @@ http_interactions:
25
25
  message: Not Found
26
26
  headers:
27
27
  Server:
28
- - openresty/1.7.7.2
28
+ - openresty/1.9.3.2
29
29
  Date:
30
- - Thu, 17 Sep 2015 11:17:31 GMT
30
+ - Fri, 22 Jan 2016 13:17:57 GMT
31
31
  Content-Type:
32
32
  - text/plain;charset=UTF-8
33
33
  Content-Length:
@@ -37,12 +37,12 @@ http_interactions:
37
37
  X-Ratelimit-Limit:
38
38
  - '207000'
39
39
  X-Ratelimit-Remaining:
40
- - '206406'
40
+ - '206351'
41
41
  X-Ratelimit-Reset:
42
- - '1442534400'
42
+ - '1453507200'
43
43
  body:
44
44
  encoding: UTF-8
45
45
  string: The requested resource could not be found.
46
46
  http_version:
47
- recorded_at: Thu, 17 Sep 2015 11:17:31 GMT
47
+ recorded_at: Fri, 22 Jan 2016 13:17:57 GMT
48
48
  recorded_with: VCR 2.9.3
@@ -25,9 +25,9 @@ http_interactions:
25
25
  message: OK
26
26
  headers:
27
27
  Server:
28
- - openresty/1.7.7.2
28
+ - openresty/1.9.3.2
29
29
  Date:
30
- - Thu, 17 Sep 2015 11:17:31 GMT
30
+ - Fri, 22 Jan 2016 13:18:02 GMT
31
31
  Content-Type:
32
32
  - application/json;charset=UTF-8
33
33
  Content-Length:
@@ -37,9 +37,9 @@ http_interactions:
37
37
  X-Ratelimit-Limit:
38
38
  - '207000'
39
39
  X-Ratelimit-Remaining:
40
- - '206405'
40
+ - '206337'
41
41
  X-Ratelimit-Reset:
42
- - '1442534400'
42
+ - '1453507200'
43
43
  body:
44
44
  encoding: UTF-8
45
45
  string: |-
@@ -71,5 +71,5 @@ http_interactions:
71
71
  }]
72
72
  }
73
73
  http_version:
74
- recorded_at: Thu, 17 Sep 2015 11:17:31 GMT
74
+ recorded_at: Fri, 22 Jan 2016 13:18:02 GMT
75
75
  recorded_with: VCR 2.9.3
@@ -25,9 +25,9 @@ http_interactions:
25
25
  message: Forbidden
26
26
  headers:
27
27
  Server:
28
- - openresty/1.7.7.2
28
+ - openresty/1.9.3.2
29
29
  Date:
30
- - Thu, 17 Sep 2015 11:17:30 GMT
30
+ - Fri, 22 Jan 2016 13:17:59 GMT
31
31
  Content-Type:
32
32
  - text/plain; charset=us-ascii
33
33
  Transfer-Encoding:
@@ -38,5 +38,5 @@ http_interactions:
38
38
  encoding: UTF-8
39
39
  string: Authentication failed
40
40
  http_version:
41
- recorded_at: Thu, 17 Sep 2015 11:17:30 GMT
41
+ recorded_at: Fri, 22 Jan 2016 13:17:59 GMT
42
42
  recorded_with: VCR 2.9.3