rubberband 0.9.3 → 0.9.4
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.
- data/.travis.yml +3 -3
- data/lib/elasticsearch/client/abstract_client.rb +1 -0
- data/lib/elasticsearch/client/retrying_client.rb +49 -5
- data/lib/elasticsearch/transport/http.rb +1 -1
- data/lib/elasticsearch/version.rb +1 -1
- data/spec/retrying_client_spec.rb +124 -0
- data/spec/support/counting_client.rb +24 -0
- data/spec/support/counting_retrying_client.rb +7 -0
- data/spec/support/exception_client.rb +20 -0
- data/spec/support/timeout_retrying_client.rb +5 -0
- metadata +164 -180
data/.travis.yml
CHANGED
|
@@ -21,6 +21,7 @@ module ElasticSearch
|
|
|
21
21
|
given_servers = Array(servers_or_url).collect do |server|
|
|
22
22
|
begin
|
|
23
23
|
uri = URI.parse(server)
|
|
24
|
+
raise URI::InvalidURIError, server if uri.path.nil?
|
|
24
25
|
_, default_index, default_type = uri.path.split("/")
|
|
25
26
|
uri.path = "" # is this expected behavior of URI? may be dangerous to rely on
|
|
26
27
|
uri.to_s
|
|
@@ -18,6 +18,8 @@ module ElasticSearch
|
|
|
18
18
|
super
|
|
19
19
|
@options = RETRYING_DEFAULTS.merge(@options)
|
|
20
20
|
@retries = options[:retries] || @servers.size
|
|
21
|
+
@connect_retries_count = 0
|
|
22
|
+
@execute_retries_count = 0
|
|
21
23
|
@request_count = 0
|
|
22
24
|
@max_requests = @options[:server_max_requests]
|
|
23
25
|
@retry_period = @options[:server_retry_period]
|
|
@@ -26,8 +28,11 @@ module ElasticSearch
|
|
|
26
28
|
|
|
27
29
|
def connect!
|
|
28
30
|
@current_server = next_server
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
clear_connect_retries_count_after do
|
|
32
|
+
super
|
|
33
|
+
end
|
|
34
|
+
rescue ElasticSearch::RetryableError => exception
|
|
35
|
+
increment_or_raise_on_connect_retry( exception )
|
|
31
36
|
retry
|
|
32
37
|
end
|
|
33
38
|
|
|
@@ -50,7 +55,7 @@ module ElasticSearch
|
|
|
50
55
|
elsif @live_server_list.empty?
|
|
51
56
|
rebuild_live_server_list!
|
|
52
57
|
end
|
|
53
|
-
@live_server_list.
|
|
58
|
+
@live_server_list.shift
|
|
54
59
|
end
|
|
55
60
|
|
|
56
61
|
def rebuild_live_server_list!
|
|
@@ -66,9 +71,12 @@ module ElasticSearch
|
|
|
66
71
|
disconnect_on_max! if @max_requests and @request_count >= @max_requests
|
|
67
72
|
@request_count += 1
|
|
68
73
|
begin
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
clear_execute_retries_count_after do
|
|
75
|
+
super
|
|
76
|
+
end
|
|
77
|
+
rescue ElasticSearch::RetryableError => exception
|
|
71
78
|
disconnect!
|
|
79
|
+
increment_or_raise_on_execute_retry( exception )
|
|
72
80
|
retry
|
|
73
81
|
end
|
|
74
82
|
end
|
|
@@ -77,5 +85,41 @@ module ElasticSearch
|
|
|
77
85
|
@live_server_list.push(@current_server)
|
|
78
86
|
disconnect!
|
|
79
87
|
end
|
|
88
|
+
|
|
89
|
+
protected
|
|
90
|
+
|
|
91
|
+
def clear_connect_retries_count_after
|
|
92
|
+
result = yield
|
|
93
|
+
@connect_retries_count = 0
|
|
94
|
+
result
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def clear_execute_retries_count_after
|
|
98
|
+
result = yield
|
|
99
|
+
@execute_retries_count = 0
|
|
100
|
+
@connect_retries_count = 0
|
|
101
|
+
result
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def increment_or_raise_on_connect_retry( exception )
|
|
105
|
+
if @retries <= @connect_retries_count
|
|
106
|
+
@connect_retries_count = 0
|
|
107
|
+
@execute_retries_count = 0
|
|
108
|
+
raise exception
|
|
109
|
+
else
|
|
110
|
+
@connect_retries_count += 1
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def increment_or_raise_on_execute_retry( exception )
|
|
115
|
+
if @retries <= @execute_retries_count
|
|
116
|
+
@execute_retries_count = 0
|
|
117
|
+
@connect_retries_count = 0
|
|
118
|
+
raise exception
|
|
119
|
+
else
|
|
120
|
+
@execute_retries_count += 1
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
80
124
|
end
|
|
81
125
|
end
|
|
@@ -55,7 +55,7 @@ module ElasticSearch
|
|
|
55
55
|
response
|
|
56
56
|
rescue Exception => e
|
|
57
57
|
case e
|
|
58
|
-
when Faraday::Error::ConnectionFailed
|
|
58
|
+
when Faraday::Error::ConnectionFailed, Errno::EHOSTUNREACH
|
|
59
59
|
raise ConnectionFailed, $!
|
|
60
60
|
when Faraday::Error::TimeoutError
|
|
61
61
|
raise TimeoutError, $!
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
|
+
|
|
3
|
+
describe ElasticSearch::RetryingClient do
|
|
4
|
+
|
|
5
|
+
context 'will all timeouts' do
|
|
6
|
+
|
|
7
|
+
def new_client
|
|
8
|
+
TimeoutRetryingClient.new( "http://noserverhere.local:9456", :retries => 3, :server_retry_period => nil )
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe 'when connecting' do
|
|
12
|
+
it 'should give up retrying after 3 failures' do
|
|
13
|
+
|
|
14
|
+
@client = new_client
|
|
15
|
+
expect { @client.connect! }.to raise_error( ElasticSearch::TimeoutError )
|
|
16
|
+
@client.connect_calls.should == 4
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'when executing' do
|
|
22
|
+
|
|
23
|
+
it 'should give up retrying after 3 failures' do
|
|
24
|
+
|
|
25
|
+
@client = new_client
|
|
26
|
+
expect { @client.execute( "get" ) }.to raise_error( ElasticSearch::TimeoutError )
|
|
27
|
+
@client.execute_calls.should == 4
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
context 'with successful response' do
|
|
36
|
+
|
|
37
|
+
def new_client
|
|
38
|
+
CountingClient.new( "http://noserverhere.local:9456", :retries => 3, :server_retry_period => nil )
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context 'when connecting' do
|
|
42
|
+
|
|
43
|
+
it 'should try to connect only once' do
|
|
44
|
+
|
|
45
|
+
@client = new_client
|
|
46
|
+
@client.connect!
|
|
47
|
+
|
|
48
|
+
@client.connect_calls.should == 1
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
context 'when executing' do
|
|
54
|
+
|
|
55
|
+
it 'should try to execute only once' do
|
|
56
|
+
@client = new_client
|
|
57
|
+
@client.execute('get')
|
|
58
|
+
@client.execute_calls.should == 1
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
context 'with non-retryable-exception' do
|
|
66
|
+
|
|
67
|
+
def new_client
|
|
68
|
+
TimeoutRetryingClient.new( "http://noserverhere.local:9456", :retries => 3, :server_retry_period => nil, :exception => StandardError )
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it 'should try to connect once and give up' do
|
|
72
|
+
|
|
73
|
+
@client = new_client
|
|
74
|
+
expect { @client.connect! }.to raise_error(StandardError)
|
|
75
|
+
@client.connect_calls.should == 1
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'should try to execute once and give up' do
|
|
80
|
+
@client = new_client
|
|
81
|
+
expect { @client.execute('get') }.to raise_error(StandardError)
|
|
82
|
+
@client.execute_calls.should == 1
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
context 'on next_server calls' do
|
|
88
|
+
|
|
89
|
+
before do
|
|
90
|
+
@servers = [ 'http://noserver.local1', 'http://noserver.local2' ]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def new_client( retry_period = nil )
|
|
94
|
+
CountingRetryingClient.new( @servers, :server_retry_period => retry_period, :randomize_server_list => false )
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it 'should pick up the next server if one is available' do
|
|
98
|
+
@client = new_client
|
|
99
|
+
|
|
100
|
+
@client.next_server.should == @servers.first
|
|
101
|
+
@client.next_server.should == @servers.last
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it 'should re-seed the list if client tries to pick more servers than available' do
|
|
105
|
+
@client = new_client
|
|
106
|
+
|
|
107
|
+
@client.next_server.should == @servers.first
|
|
108
|
+
@client.next_server.should == @servers.last
|
|
109
|
+
@client.next_server.should == @servers.first
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
it 'should raise a NoServersAvailable if tried to take too many servers without waiting' do
|
|
113
|
+
|
|
114
|
+
@client = new_client 10
|
|
115
|
+
|
|
116
|
+
@client.next_server.should == @servers.first
|
|
117
|
+
@client.next_server.should == @servers.last
|
|
118
|
+
expect { @client.next_server }.to raise_error(ElasticSearch::NoServersAvailable)
|
|
119
|
+
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
class CountingClient < ElasticSearch::AbstractClient
|
|
2
|
+
|
|
3
|
+
attr_accessor :connect_calls, :disconnect_calls, :execute_calls
|
|
4
|
+
|
|
5
|
+
def initialize(servers_or_url, options={})
|
|
6
|
+
super
|
|
7
|
+
@connect_calls = 0
|
|
8
|
+
@disconnect_calls = 0
|
|
9
|
+
@execute_calls = 0
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def connect!
|
|
13
|
+
@connect_calls += 1
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def disconnect!
|
|
17
|
+
@disconnect_calls += 1
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def execute(method_name, *args)
|
|
21
|
+
@execute_calls += 1
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require File.expand_path('../counting_client', __FILE__)
|
|
2
|
+
|
|
3
|
+
class ExceptionClient < CountingClient
|
|
4
|
+
|
|
5
|
+
def initialize(servers_or_url, options={})
|
|
6
|
+
super
|
|
7
|
+
@exception = options[:exception] || ElasticSearch::TimeoutError
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def connect!
|
|
11
|
+
super
|
|
12
|
+
raise @exception
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def execute(method_name, *args)
|
|
16
|
+
super
|
|
17
|
+
raise @exception
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,199 +1,183 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubberband
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.3
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
5
4
|
prerelease:
|
|
5
|
+
version: 0.9.4
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
8
|
-
- Grant Rodgers
|
|
7
|
+
authors:
|
|
8
|
+
- Grant Rodgers
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
none: false
|
|
82
|
-
requirements:
|
|
83
|
-
- - ! '>='
|
|
84
|
-
- !ruby/object:Gem::Version
|
|
85
|
-
version: 0.3.8
|
|
86
|
-
type: :development
|
|
87
|
-
prerelease: false
|
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
|
-
requirements:
|
|
91
|
-
- - ! '>='
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
version: 0.3.8
|
|
94
|
-
- !ruby/object:Gem::Dependency
|
|
95
|
-
name: mocha
|
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
|
-
requirements:
|
|
99
|
-
- - ~>
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: 0.9.0
|
|
102
|
-
type: :development
|
|
103
|
-
prerelease: false
|
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
|
-
requirements:
|
|
107
|
-
- - ~>
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: 0.9.0
|
|
12
|
+
|
|
13
|
+
date: 2012-09-10 00:00:00 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: faraday
|
|
17
|
+
prerelease: false
|
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
19
|
+
none: false
|
|
20
|
+
requirements:
|
|
21
|
+
- - ~>
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: 0.8.0
|
|
24
|
+
type: :runtime
|
|
25
|
+
version_requirements: *id001
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: multi_json
|
|
28
|
+
prerelease: false
|
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
30
|
+
none: false
|
|
31
|
+
requirements:
|
|
32
|
+
- - ">="
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: "0"
|
|
35
|
+
type: :runtime
|
|
36
|
+
version_requirements: *id002
|
|
37
|
+
- !ruby/object:Gem::Dependency
|
|
38
|
+
name: rake
|
|
39
|
+
prerelease: false
|
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: "0"
|
|
46
|
+
type: :development
|
|
47
|
+
version_requirements: *id003
|
|
48
|
+
- !ruby/object:Gem::Dependency
|
|
49
|
+
name: rspec
|
|
50
|
+
prerelease: false
|
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
52
|
+
none: false
|
|
53
|
+
requirements:
|
|
54
|
+
- - ~>
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: "2.0"
|
|
57
|
+
type: :development
|
|
58
|
+
version_requirements: *id004
|
|
59
|
+
- !ruby/object:Gem::Dependency
|
|
60
|
+
name: simplecov
|
|
61
|
+
prerelease: false
|
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
63
|
+
none: false
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 0.3.8
|
|
68
|
+
type: :development
|
|
69
|
+
version_requirements: *id005
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: mocha
|
|
72
|
+
prerelease: false
|
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
74
|
+
none: false
|
|
75
|
+
requirements:
|
|
76
|
+
- - ~>
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 0.9.0
|
|
79
|
+
type: :development
|
|
80
|
+
version_requirements: *id006
|
|
110
81
|
description: An ElasticSearch client with ThriftClient-like failover handling.
|
|
111
|
-
email:
|
|
112
|
-
- grantr@gmail.com
|
|
82
|
+
email:
|
|
83
|
+
- grantr@gmail.com
|
|
113
84
|
executables: []
|
|
85
|
+
|
|
114
86
|
extensions: []
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
- .
|
|
121
|
-
- .
|
|
122
|
-
- .
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
- lib/elasticsearch
|
|
131
|
-
- lib/elasticsearch/client
|
|
132
|
-
- lib/elasticsearch/client/
|
|
133
|
-
- lib/elasticsearch/client/
|
|
134
|
-
- lib/elasticsearch/client/
|
|
135
|
-
- lib/elasticsearch/client/
|
|
136
|
-
- lib/elasticsearch/client/
|
|
137
|
-
- lib/elasticsearch/client/
|
|
138
|
-
- lib/elasticsearch/client/
|
|
139
|
-
- lib/elasticsearch/
|
|
140
|
-
- lib/elasticsearch/encoding
|
|
141
|
-
- lib/elasticsearch/encoding/
|
|
142
|
-
- lib/elasticsearch/
|
|
143
|
-
- lib/elasticsearch/transport
|
|
144
|
-
- lib/elasticsearch/transport/
|
|
145
|
-
- lib/elasticsearch/transport/
|
|
146
|
-
- lib/elasticsearch/transport/
|
|
147
|
-
- lib/elasticsearch/transport/
|
|
148
|
-
- lib/elasticsearch/transport/thrift
|
|
149
|
-
- lib/elasticsearch/transport/thrift/
|
|
150
|
-
- lib/elasticsearch/transport/thrift/
|
|
151
|
-
- lib/elasticsearch/
|
|
152
|
-
- lib/
|
|
153
|
-
- rubberband.
|
|
154
|
-
-
|
|
155
|
-
- spec/
|
|
156
|
-
- spec/
|
|
157
|
-
- spec/
|
|
158
|
-
- spec/
|
|
159
|
-
- spec/
|
|
160
|
-
- spec/
|
|
161
|
-
- spec/
|
|
162
|
-
- spec/
|
|
163
|
-
-
|
|
87
|
+
|
|
88
|
+
extra_rdoc_files:
|
|
89
|
+
- LICENSE
|
|
90
|
+
- README.md
|
|
91
|
+
files:
|
|
92
|
+
- .autotest
|
|
93
|
+
- .gitignore
|
|
94
|
+
- .rspec
|
|
95
|
+
- .travis.yml
|
|
96
|
+
- CONTRIBUTORS
|
|
97
|
+
- Gemfile
|
|
98
|
+
- LICENSE
|
|
99
|
+
- README.md
|
|
100
|
+
- Rakefile
|
|
101
|
+
- TODO
|
|
102
|
+
- lib/elasticsearch.rb
|
|
103
|
+
- lib/elasticsearch/client.rb
|
|
104
|
+
- lib/elasticsearch/client/abstract_client.rb
|
|
105
|
+
- lib/elasticsearch/client/admin_cluster.rb
|
|
106
|
+
- lib/elasticsearch/client/admin_index.rb
|
|
107
|
+
- lib/elasticsearch/client/auto_discovering_client.rb
|
|
108
|
+
- lib/elasticsearch/client/default_scope.rb
|
|
109
|
+
- lib/elasticsearch/client/hits.rb
|
|
110
|
+
- lib/elasticsearch/client/index.rb
|
|
111
|
+
- lib/elasticsearch/client/retrying_client.rb
|
|
112
|
+
- lib/elasticsearch/encoding.rb
|
|
113
|
+
- lib/elasticsearch/encoding/base.rb
|
|
114
|
+
- lib/elasticsearch/encoding/json.rb
|
|
115
|
+
- lib/elasticsearch/transport.rb
|
|
116
|
+
- lib/elasticsearch/transport/base.rb
|
|
117
|
+
- lib/elasticsearch/transport/base_protocol.rb
|
|
118
|
+
- lib/elasticsearch/transport/http.rb
|
|
119
|
+
- lib/elasticsearch/transport/memcached.rb
|
|
120
|
+
- lib/elasticsearch/transport/thrift.rb
|
|
121
|
+
- lib/elasticsearch/transport/thrift/elasticsearch_constants.rb
|
|
122
|
+
- lib/elasticsearch/transport/thrift/elasticsearch_types.rb
|
|
123
|
+
- lib/elasticsearch/transport/thrift/rest.rb
|
|
124
|
+
- lib/elasticsearch/version.rb
|
|
125
|
+
- lib/rubberband.rb
|
|
126
|
+
- rubberband.gemspec
|
|
127
|
+
- spec/admin_spec.rb
|
|
128
|
+
- spec/bulk_spec.rb
|
|
129
|
+
- spec/connect_spec.rb
|
|
130
|
+
- spec/hits_spec.rb
|
|
131
|
+
- spec/http_spec.rb
|
|
132
|
+
- spec/index_spec.rb
|
|
133
|
+
- spec/retrying_client_spec.rb
|
|
134
|
+
- spec/spec_helper.rb
|
|
135
|
+
- spec/support/counting_client.rb
|
|
136
|
+
- spec/support/counting_retrying_client.rb
|
|
137
|
+
- spec/support/dummy_transport.rb
|
|
138
|
+
- spec/support/exception_client.rb
|
|
139
|
+
- spec/support/timeout_retrying_client.rb
|
|
140
|
+
- spec/type_spec.rb
|
|
141
|
+
- vendor/elasticsearch/elasticsearch.thrift
|
|
164
142
|
homepage: http://github.com/grantr/rubberband
|
|
165
|
-
licenses:
|
|
166
|
-
- Apache v2
|
|
143
|
+
licenses:
|
|
144
|
+
- Apache v2
|
|
167
145
|
post_install_message:
|
|
168
146
|
rdoc_options: []
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
147
|
+
|
|
148
|
+
require_paths:
|
|
149
|
+
- lib
|
|
150
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
151
|
none: false
|
|
173
|
-
requirements:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
|
+
requirements:
|
|
153
|
+
- - ">="
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: "0"
|
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
157
|
none: false
|
|
179
|
-
requirements:
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
158
|
+
requirements:
|
|
159
|
+
- - ">="
|
|
160
|
+
- !ruby/object:Gem::Version
|
|
161
|
+
version: "0"
|
|
183
162
|
requirements: []
|
|
163
|
+
|
|
184
164
|
rubyforge_project: rubberband
|
|
185
|
-
rubygems_version: 1.8.
|
|
165
|
+
rubygems_version: 1.8.15
|
|
186
166
|
signing_key:
|
|
187
167
|
specification_version: 3
|
|
188
168
|
summary: An ElasticSearch client with ThriftClient-like failover handling.
|
|
189
|
-
test_files:
|
|
190
|
-
- spec/admin_spec.rb
|
|
191
|
-
- spec/bulk_spec.rb
|
|
192
|
-
- spec/connect_spec.rb
|
|
193
|
-
- spec/hits_spec.rb
|
|
194
|
-
- spec/http_spec.rb
|
|
195
|
-
- spec/index_spec.rb
|
|
196
|
-
- spec/
|
|
197
|
-
- spec/
|
|
198
|
-
- spec/
|
|
199
|
-
|
|
169
|
+
test_files:
|
|
170
|
+
- spec/admin_spec.rb
|
|
171
|
+
- spec/bulk_spec.rb
|
|
172
|
+
- spec/connect_spec.rb
|
|
173
|
+
- spec/hits_spec.rb
|
|
174
|
+
- spec/http_spec.rb
|
|
175
|
+
- spec/index_spec.rb
|
|
176
|
+
- spec/retrying_client_spec.rb
|
|
177
|
+
- spec/spec_helper.rb
|
|
178
|
+
- spec/support/counting_client.rb
|
|
179
|
+
- spec/support/counting_retrying_client.rb
|
|
180
|
+
- spec/support/dummy_transport.rb
|
|
181
|
+
- spec/support/exception_client.rb
|
|
182
|
+
- spec/support/timeout_retrying_client.rb
|
|
183
|
+
- spec/type_spec.rb
|