swiftype 1.2.0 → 1.2.1
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/.travis.yml +2 -1
- data/lib/swiftype/client.rb +7 -1
- data/lib/swiftype/request.rb +9 -3
- data/lib/swiftype/version.rb +1 -1
- data/spec/client_spec.rb +29 -3
- metadata +15 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f11f2ce09ccdf271510c73431424c332a41182b9
|
4
|
+
data.tar.gz: e83507c697bbca3b65df19a806b9a99d93881d2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cafb2792d12bdc1bbfef1e814c9c050a88318b17252e149f2caf989bc8a2baeeb5bd28a901cb46f17a7ef47d924195a8fe68dd230c5c428ca80585e2e14d814
|
7
|
+
data.tar.gz: 51c46e6e9f9bdc2f2055338bb5bb6e552908e177bbbf9c2a4fdf23c286da0e5f6f8ce16f3d13fb025c259ae3538695c954651e0192e25b8bd600d6eac87be7bf
|
data/.travis.yml
CHANGED
data/lib/swiftype/client.rb
CHANGED
@@ -17,7 +17,8 @@ module Swiftype
|
|
17
17
|
# @param options [Hash] a hash of configuration options that will override what is set on the Swiftype class.
|
18
18
|
# @option options [String] :api_key an API Key to use for this client
|
19
19
|
# @option options [String] :platform_access_token a user's access token, will be used instead of API key for authenticating requests
|
20
|
-
# @option options [
|
20
|
+
# @option options [Numeric] :overall_timeout overall timeout for requests in seconds
|
21
|
+
# @option options [Numeric] :open_timeout the number of seconds Net::HTTP
|
21
22
|
# will wait while opening a connection before raising a Timeout::Error
|
22
23
|
|
23
24
|
def initialize(options={})
|
@@ -36,6 +37,11 @@ module Swiftype
|
|
36
37
|
@options[:open_timeout]
|
37
38
|
end
|
38
39
|
|
40
|
+
def overall_timeout
|
41
|
+
@options[:overall_timeout].to_f
|
42
|
+
end
|
43
|
+
|
44
|
+
|
39
45
|
# Methods wrapping the Swiftype private search and API endpoints. Using these methods, you can perform full-text
|
40
46
|
# and prefix searches over the Documents in your Engine, in a specific DocumentType, or any subset of DocumentTypes.
|
41
47
|
# You can also filter results and get faceted counts for results.
|
data/lib/swiftype/request.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'net/https'
|
2
|
-
if RUBY_VERSION <
|
2
|
+
if RUBY_VERSION < '1.9'
|
3
3
|
require 'swiftype/ext/backport-uri'
|
4
4
|
else
|
5
5
|
require 'uri'
|
@@ -49,12 +49,15 @@ module Swiftype
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
# Construct and send a request to the API.
|
53
|
+
#
|
54
|
+
# @raise [Timeout::Error] when the timeout expires
|
52
55
|
def request(method, path, params={})
|
53
56
|
uri = URI.parse("#{Swiftype.endpoint}#{path}")
|
54
57
|
|
55
58
|
request = build_request(method, uri, params)
|
56
59
|
http = Net::HTTP.new(uri.host, uri.port)
|
57
|
-
http.open_timeout =
|
60
|
+
http.open_timeout = open_timeout
|
58
61
|
|
59
62
|
if uri.scheme == 'https'
|
60
63
|
http.use_ssl = true
|
@@ -62,7 +65,10 @@ module Swiftype
|
|
62
65
|
http.ca_file = File.join(File.dirname(__FILE__), '..', 'data', 'ca-bundle.crt')
|
63
66
|
end
|
64
67
|
|
65
|
-
response =
|
68
|
+
response = nil
|
69
|
+
Timeout.timeout(overall_timeout) do
|
70
|
+
response = http.request(request)
|
71
|
+
end
|
66
72
|
|
67
73
|
handle_errors(response)
|
68
74
|
|
data/lib/swiftype/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -71,9 +71,35 @@ describe Swiftype::Client do
|
|
71
71
|
let(:options_client) { Swiftype::Client.new(options) }
|
72
72
|
|
73
73
|
context '#request' do
|
74
|
-
|
75
|
-
|
76
|
-
|
74
|
+
context 'open_timeout' do
|
75
|
+
let(:options) { { :open_timeout => 3 } }
|
76
|
+
it 'respects the Net::HTTP open_timeout option' do
|
77
|
+
expect(options_client.open_timeout).to eq(3)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'overall_timeout' do
|
82
|
+
context 'with timeout specified' do
|
83
|
+
let(:options) { { :overall_timeout => 0.001 } }
|
84
|
+
it 'respects the overall timeout option' do
|
85
|
+
expect(options_client.overall_timeout).to eq(0.001)
|
86
|
+
allow_any_instance_of(Net::HTTP).to receive(:request) { sleep 3 }
|
87
|
+
expect {
|
88
|
+
options_client.search(engine_slug, 'cat')
|
89
|
+
}.to raise_error(Timeout::Error)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'without timeout specified' do
|
94
|
+
let(:options) { Hash.new }
|
95
|
+
it 'omits the option' do
|
96
|
+
expect(options_client.overall_timeout).to eq(0.0)
|
97
|
+
expect(Timeout).to receive(:timeout).with(0.0).and_call_original
|
98
|
+
VCR.use_cassette(:engine_search) do
|
99
|
+
options_client.search(engine_slug, 'cat')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
77
103
|
end
|
78
104
|
end
|
79
105
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swiftype
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Quin Hoxie
|
@@ -9,62 +9,62 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 3.0.0
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: awesome_print
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: vcr
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 2.9.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 2.9.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: webmock
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
description: API client for accessing the Swiftype Search API with no dependencies
|
@@ -75,8 +75,8 @@ executables: []
|
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
|
-
- .gitignore
|
79
|
-
- .travis.yml
|
78
|
+
- ".gitignore"
|
79
|
+
- ".travis.yml"
|
80
80
|
- Gemfile
|
81
81
|
- LICENSE.txt
|
82
82
|
- README.md
|
@@ -181,17 +181,17 @@ require_paths:
|
|
181
181
|
- lib
|
182
182
|
required_ruby_version: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
|
-
- -
|
184
|
+
- - ">="
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
|
-
- -
|
189
|
+
- - ">="
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0'
|
192
192
|
requirements: []
|
193
193
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.
|
194
|
+
rubygems_version: 2.4.8
|
195
195
|
signing_key:
|
196
196
|
specification_version: 4
|
197
197
|
summary: Official gem for accessing the Swiftype Search API
|
@@ -276,4 +276,3 @@ test_files:
|
|
276
276
|
- spec/spec_helper.rb
|
277
277
|
- spec/ssl_spec.rb
|
278
278
|
- spec/sso_spec.rb
|
279
|
-
has_rdoc:
|