keen 0.9.9 → 0.9.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38dbcdb5882d0ecaca4d8a069ba569b12ed28fc7
4
- data.tar.gz: 9a5278be0634db7ca4658b9dff70c46b0750e77e
3
+ metadata.gz: e480ce2b302b1c4176b0d7af6860fdcadab0d18c
4
+ data.tar.gz: 9e6563894e8ca2c84e6e1812e251d3ad4c792bcd
5
5
  SHA512:
6
- metadata.gz: ce6065efb92a0ec0aa8073a43ee0f7a3df9da5dd412ed967b84ae88af4e51c3ca8043cfe10f85635e5aa6978fba720ff6d11a8deabd8a3547d3529f3358ea791
7
- data.tar.gz: d1a51bd9f953b0d401654b28e1ccc08623cba520a978db467d0ab146d30c15d0dae221ac41e57529bbb6e987b0376a067fe9cb201fee51f3b6d834a45fe20363
6
+ metadata.gz: be393227858df11b2ef2f8a1b87326747e13285d318d9fc627ebd8449e816ec80788a19ca70c576599b6be201cfddb45617572d773dc2fa2c7da4b92d8f1ea26
7
+ data.tar.gz: 33fa125a869b6969587a0f5e32c0e09b665f98b1f8e3ea7342c3d1d11e1f7ce3c5361edd8e2db5a919060325e8464e0c727bceac74348b492eb8e27d30613380
data/README.md CHANGED
@@ -375,12 +375,19 @@ You can use the scoped key created in Ruby for API requests from any client. Sco
375
375
 
376
376
  ##### HTTP Read Timeout
377
377
 
378
- The default `Net:HTTP` timeout is 60 seconds. That's usually enough, but if you're querying over a large collection you may need to increase it. The timeout on the API side is 300 seconds, so that's as far as you'd want to go. You can configure a read timeout (in seconds) by setting a `KEEN_READ_TIMEOUT` environment variable, or by passing in a `read_timeout` option to the client constructor as follows:
378
+ The default `Net::HTTP` timeout is 60 seconds. That's usually enough, but if you're querying over a large collection you may need to increase it. The timeout on the API side is 300 seconds, so that's as far as you'd want to go. You can configure a read timeout (in seconds) by setting a `KEEN_READ_TIMEOUT` environment variable, or by passing in a `read_timeout` option to the client constructor as follows:
379
379
 
380
380
  ``` ruby
381
381
  keen = Keen::Client.new(:read_timeout => 300)
382
382
  ```
383
383
 
384
+ You can also configure the `NET::HTTP` open timeout, default is 60 seconds. To configure the timeout (in seconds) either set `KEEN_OPEN_TIMEOUT` environment variable, or by passing in a `open_timeout` option to the client constructor as follows:
385
+
386
+ ``` ruby
387
+ keen = Keen::Client.new(:open_timeout => 30)
388
+ ```
389
+
390
+
384
391
  ##### HTTP Proxy
385
392
 
386
393
  You can set the `KEEN_PROXY_TYPE` and `KEEN_PROXY_URL` environment variables to enable HTTP proxying. `KEEN_PROXY_TYPE` should be set to `socks5`. You can also configure this on client instances by passing in `proxy_type` and `proxy_url` keys.
@@ -412,6 +419,9 @@ If you want some bot protection, check out the [Voight-Kampff](https://github.co
412
419
 
413
420
  ### Changelog
414
421
 
422
+ ##### 0.9.10
423
+ + Add ability to set the `open_time` setting for the http client.
424
+
415
425
  ##### 0.9.9
416
426
  + Added the ability to send additional optional headers.
417
427
 
@@ -419,7 +429,7 @@ If you want some bot protection, check out the [Voight-Kampff](https://github.co
419
429
  + Added a new header `Keen-Sdk` that sends the SDK version information on all requests.
420
430
 
421
431
  ##### 0.9.6
422
- + Updated behavior of saved queries to allow fetching results using the READ KEY as opposed to requiring the MASTER KEY, making the gem consistent with https://keen.io/docs/api/#getting-saved-query-results
432
+ + Updated behavior of saved queries to allow fetching results using the READ KEY as opposed to requiring the MASTER KEY, making the gem consistent with https://keen.io/docs/api/#getting-saved-query-results
423
433
 
424
434
  ##### 0.9.5
425
435
  + Fix bug with scoped key generation not working with newer Keen projects.
@@ -75,7 +75,8 @@ module Keen
75
75
  :api_url => ENV['KEEN_API_URL'],
76
76
  :proxy_url => ENV['KEEN_PROXY_URL'],
77
77
  :proxy_type => ENV['KEEN_PROXY_TYPE'],
78
- :read_timeout => ENV['KEEN_READ_TIMEOUT']
78
+ :read_timeout => ENV['KEEN_READ_TIMEOUT'],
79
+ :open_timeout => ENV['KEEN_OPEN_TIMEOUT']
79
80
  )
80
81
  end
81
82
  end
@@ -17,7 +17,7 @@ module Keen
17
17
  include Keen::Client::QueryingMethods
18
18
  include Keen::Client::MaintenanceMethods
19
19
 
20
- attr_accessor :project_id, :write_key, :read_key, :master_key, :api_url, :proxy_url, :proxy_type, :read_timeout
20
+ attr_accessor :project_id, :write_key, :read_key, :master_key, :api_url, :proxy_url, :proxy_type, :read_timeout, :open_timeout
21
21
 
22
22
  CONFIG = {
23
23
  :api_url => "https://api.keen.io",
@@ -54,6 +54,8 @@ module Keen
54
54
  self.proxy_url, self.proxy_type = options.values_at(:proxy_url, :proxy_type)
55
55
 
56
56
  self.read_timeout = options[:read_timeout].to_f unless options[:read_timeout].nil?
57
+
58
+ self.open_timeout = options[:open_timeout].to_f unless options[:open_timeout].nil?
57
59
  end
58
60
 
59
61
  def saved_queries
@@ -87,7 +87,7 @@ module Keen
87
87
  private
88
88
 
89
89
  def http_sync
90
- @http_sync ||= Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout)
90
+ @http_sync ||= Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout, self.open_timeout)
91
91
  end
92
92
 
93
93
  end
@@ -161,7 +161,7 @@ module Keen
161
161
  def publish_body(path, body, error_method)
162
162
  begin
163
163
  response = Keen::HTTP::Sync.new(
164
- self.api_url, self.proxy_url, self.read_timeout).post(
164
+ self.api_url, self.proxy_url, self.read_timeout, self.open_timeout).post(
165
165
  :path => path,
166
166
  :headers => api_headers(self.write_key, "sync"),
167
167
  :body => body)
@@ -242,7 +242,7 @@ module Keen
242
242
 
243
243
  query_params = params.dup
244
244
  query_params[:event_collection] = event_collection.to_s if event_collection
245
- Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout).post(
245
+ Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout, self.open_timeout).post(
246
246
  :path => api_query_resource_path(analysis_type),
247
247
  :headers => request_headers(options),
248
248
  :body => MultiJson.encode(query_params)
@@ -262,7 +262,7 @@ module Keen
262
262
 
263
263
  def get_response(url, options={})
264
264
  uri = URI.parse(url)
265
- Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout).get(
265
+ Keen::HTTP::Sync.new(self.api_url, self.proxy_url, self.read_timeout, self.open_timeout).get(
266
266
  :path => "#{uri.path}?#{uri.query}",
267
267
  :headers => request_headers(options)
268
268
  )
@@ -25,7 +25,7 @@ class SavedQueries
25
25
  end
26
26
 
27
27
  def create(saved_query_name, saved_query_body)
28
- response = Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout).put(
28
+ response = Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout, client.open_timeout).put(
29
29
  path: "#{saved_query_base_url}/#{saved_query_name}",
30
30
  headers: api_headers(client.master_key, "sync"),
31
31
  body: saved_query_body
@@ -35,7 +35,7 @@ class SavedQueries
35
35
  alias_method :update, :create
36
36
 
37
37
  def delete(saved_query_name)
38
- response = Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout).delete(
38
+ response = Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout, client.open_timeout).delete(
39
39
  path: "#{saved_query_base_url}/#{saved_query_name}",
40
40
  headers: api_headers(client.master_key, "sync")
41
41
  )
@@ -47,7 +47,7 @@ class SavedQueries
47
47
  attr_reader :client
48
48
 
49
49
  def saved_query_response(api_key, path = "")
50
- Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout).get(
50
+ Keen::HTTP::Sync.new(client.api_url, client.proxy_url, client.read_timeout, client.open_timeout).get(
51
51
  path: saved_query_base_url + path,
52
52
  headers: api_headers(api_key, "sync")
53
53
  )
@@ -1,7 +1,7 @@
1
1
  module Keen
2
2
  module HTTP
3
3
  class Sync
4
- def initialize(base_url, proxy_url=nil, read_timeout=nil)
4
+ def initialize(base_url, proxy_url=nil, read_timeout=nil, open_timeout=nil)
5
5
  require 'uri'
6
6
  require 'net/http'
7
7
 
@@ -10,6 +10,7 @@ module Keen
10
10
  arguments+= proxy_arguments_for(proxy_url) if proxy_url
11
11
 
12
12
  @http = Net::HTTP.new(*arguments)
13
+ @http.open_timeout = open_timeout if open_timeout
13
14
  @http.read_timeout = read_timeout if read_timeout
14
15
 
15
16
  if uri.scheme == "https"
@@ -1,3 +1,3 @@
1
1
  module Keen
2
- VERSION = "0.9.9"
2
+ VERSION = "0.9.10"
3
3
  end
@@ -7,6 +7,7 @@ describe Keen::Client do
7
7
  let(:api_url) { "http://fake.keen.io:fakeport" }
8
8
  let(:client) { Keen::Client.new(:project_id => project_id) }
9
9
  let(:read_timeout) { 40 }
10
+ let(:open_timeout) { 10 }
10
11
 
11
12
  before do
12
13
  ENV["KEEN_PROJECT_ID"] = nil
@@ -14,6 +15,7 @@ describe Keen::Client do
14
15
  ENV["KEEN_READ_KEY"] = nil
15
16
  ENV["KEEN_API_URL"] = nil
16
17
  ENV["KEEN_READ_TIMEOUT"] = nil
18
+ ENV["KEEN_OPEN_TIMEOUT"] = nil
17
19
  end
18
20
 
19
21
  describe "#initialize" do
@@ -32,12 +34,14 @@ describe Keen::Client do
32
34
  :write_key => write_key,
33
35
  :read_key => read_key,
34
36
  :api_url => api_url,
35
- :read_timeout => read_timeout)
37
+ :read_timeout => read_timeout,
38
+ :open_timeout => open_timeout)
36
39
  expect(client.write_key).to eq(write_key)
37
40
  expect(client.read_key).to eq(read_key)
38
41
  expect(client.project_id).to eq(project_id)
39
42
  expect(client.api_url).to eq(api_url)
40
43
  expect(client.read_timeout).to eq(read_timeout)
44
+ expect(client.open_timeout).to eq(open_timeout)
41
45
  end
42
46
 
43
47
  it "should set a default api_url" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 0.9.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Kleissner
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-03 00:00:00.000000000 Z
12
+ date: 2017-05-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json