rubberband 0.1.5 → 0.1.6
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/Gemfile +0 -2
- data/README.rdoc +9 -1
- data/lib/elasticsearch.rb +2 -2
- data/lib/elasticsearch/client/abstract_client.rb +23 -2
- data/lib/elasticsearch/client/admin_index.rb +3 -2
- data/lib/elasticsearch/version.rb +1 -1
- data/rubberband.gemspec +1 -2
- data/spec/admin_spec.rb +8 -0
- data/spec/connect_spec.rb +29 -0
- metadata +71 -133
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -17,7 +17,15 @@ Copyright 2010-2011 Grant Rodgers. See included LICENSE file.
|
|
17
17
|
|
18
18
|
Instantiate a client:
|
19
19
|
|
20
|
-
|
20
|
+
client = ElasticSearch.new('127.0.0.1:9200', :index => "twitter", :type => "tweet")
|
21
|
+
|
22
|
+
Instantiate a client with multiple servers:
|
23
|
+
|
24
|
+
client = ElasticSearch.new(['127.0.0.1:9200', '127.0.0.1:9201'])
|
25
|
+
|
26
|
+
Instantiate a client using a Heroku URL (this sets the default index):
|
27
|
+
|
28
|
+
client = ElasticSearch.new(ENV['ELASTICSEARCH_URL'])
|
21
29
|
|
22
30
|
API:
|
23
31
|
|
data/lib/elasticsearch.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
1
3
|
module ElasticSearch
|
2
4
|
class AbstractClient
|
3
5
|
|
@@ -5,12 +7,31 @@ module ElasticSearch
|
|
5
7
|
:transport => ElasticSearch::Transport::HTTP
|
6
8
|
}.freeze
|
7
9
|
|
8
|
-
def initialize(
|
10
|
+
def initialize(servers_or_url, options={})
|
9
11
|
@options = DEFAULTS.merge(options)
|
10
|
-
@server_list =
|
12
|
+
@server_list, @default_index, @default_type = extract_server_list_and_defaults(servers_or_url)
|
11
13
|
@current_server = @server_list.first
|
12
14
|
end
|
13
15
|
|
16
|
+
def extract_server_list_and_defaults(servers_or_url)
|
17
|
+
default_index = default_type = nil
|
18
|
+
servers = Array(servers_or_url).collect do |server|
|
19
|
+
uri = URI.parse(server)
|
20
|
+
_, default_index, default_type = uri.path.split("/")
|
21
|
+
uri.path = "" # is this expected behavior of URI? may be dangerous to rely on
|
22
|
+
uri.to_s
|
23
|
+
end
|
24
|
+
[servers, default_index, default_type]
|
25
|
+
end
|
26
|
+
|
27
|
+
def current_server
|
28
|
+
@current_server
|
29
|
+
end
|
30
|
+
|
31
|
+
def servers
|
32
|
+
@server_list
|
33
|
+
end
|
34
|
+
|
14
35
|
def inspect
|
15
36
|
"<#{self.class} @current_server=#{@current_server} @server_list=#{@server_list.inspect} @options=#{@options.inspect}>"
|
16
37
|
end
|
@@ -55,7 +55,8 @@ module ElasticSearch
|
|
55
55
|
execute(:alias_index, alias_ops, options)
|
56
56
|
end
|
57
57
|
|
58
|
-
def get_aliases(index, options={})
|
58
|
+
def get_aliases(index=default_index, options={})
|
59
|
+
index, type, options = extract_scope(options)
|
59
60
|
execute(:get_aliases, index, options)
|
60
61
|
end
|
61
62
|
|
@@ -83,7 +84,7 @@ module ElasticSearch
|
|
83
84
|
execute(:update_settings, index, settings, options)
|
84
85
|
end
|
85
86
|
|
86
|
-
def get_settings(index, options={})
|
87
|
+
def get_settings(index=default_index, options={})
|
87
88
|
execute(:get_settings, index, options)
|
88
89
|
end
|
89
90
|
|
data/rubberband.gemspec
CHANGED
@@ -26,12 +26,11 @@ Gem::Specification.new do |s|
|
|
26
26
|
]
|
27
27
|
s.licenses = ["Apache v2"]
|
28
28
|
|
29
|
-
s.add_runtime_dependency("patron", ["
|
29
|
+
s.add_runtime_dependency("patron", ["~> 0.4.12"])
|
30
30
|
s.add_runtime_dependency("yajl-ruby", [">= 0"])
|
31
31
|
s.add_development_dependency("rake", ["~> 0.9.2"])
|
32
32
|
s.add_development_dependency("rspec", ["~> 2.0"])
|
33
33
|
s.add_development_dependency("yard", [">= 0.7.0"])
|
34
|
-
s.add_development_dependency("bundler", ["~> 1.0.0"])
|
35
34
|
s.add_development_dependency("simplecov", [">= 0.3.8"])
|
36
35
|
s.add_development_dependency("mocha", ["~> 0.9.0"])
|
37
36
|
|
data/spec/admin_spec.rb
CHANGED
@@ -16,11 +16,15 @@ describe "basic ops" do
|
|
16
16
|
|
17
17
|
@client.update_mapping({"tweet" => {:properties => {:bar => {:type => "string"}}}})
|
18
18
|
@client.index_mapping(@first_index).should == {@first_index => {"tweet" => { "properties" => { "foo" => {"type" => "string" }, "bar" => { "type" => "string"}}}}}
|
19
|
+
# default should also work
|
20
|
+
@client.index_mapping.should == {@first_index => {"tweet" => { "properties" => { "foo" => {"type" => "string" }, "bar" => { "type" => "string"}}}}}
|
19
21
|
end
|
20
22
|
|
21
23
|
it "should get and update settings" do
|
22
24
|
@client.update_settings("index" => {"refresh_interval" => 30})
|
23
25
|
@client.get_settings(@first_index)[@first_index]["settings"].should include("index.refresh_interval" => "30")
|
26
|
+
# default should also work
|
27
|
+
@client.get_settings[@first_index]["settings"].should include("index.refresh_interval" => "30")
|
24
28
|
end
|
25
29
|
|
26
30
|
it "should get and update aliases" do
|
@@ -31,5 +35,9 @@ describe "basic ops" do
|
|
31
35
|
result = @client.get_aliases(@first_index)
|
32
36
|
result[@first_index]["aliases"].keys.should_not include("#{@first_index}-alias")
|
33
37
|
result[@first_index]["aliases"].keys.should include("#{@first_index}-alias2")
|
38
|
+
# default should also work
|
39
|
+
result = @client.get_aliases
|
40
|
+
result[@first_index]["aliases"].keys.should_not include("#{@first_index}-alias")
|
41
|
+
result[@first_index]["aliases"].keys.should include("#{@first_index}-alias2")
|
34
42
|
end
|
35
43
|
end
|
data/spec/connect_spec.rb
CHANGED
@@ -9,9 +9,21 @@ describe "connect" do
|
|
9
9
|
client = ElasticSearch.new(servers)
|
10
10
|
client.nodes_info.should include('cluster_name')
|
11
11
|
end
|
12
|
+
|
12
13
|
end
|
13
14
|
|
14
15
|
context "multiple servers" do
|
16
|
+
let(:servers) { ['http://127.0.0.1:9200', 'http://127.0.0.1:9201'] }
|
17
|
+
|
18
|
+
it 'should set servers array' do
|
19
|
+
client = ElasticSearch.new(servers, :auto_discovery => false)
|
20
|
+
client.servers.should == servers
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should choose a server to connect to' do
|
24
|
+
client = ElasticSearch.new(servers, :auto_discovery => false)
|
25
|
+
servers.should include(client.current_server)
|
26
|
+
end
|
15
27
|
end
|
16
28
|
|
17
29
|
context 'invalid server' do
|
@@ -29,4 +41,21 @@ describe "connect" do
|
|
29
41
|
expect { ElasticSearch.new(servers).nodes_info }.to raise_error(ElasticSearch::ConnectionFailed)
|
30
42
|
end
|
31
43
|
end
|
44
|
+
|
45
|
+
context 'server url with index' do
|
46
|
+
let(:servers) { 'http://127.0.0.1:9200/test_index' }
|
47
|
+
|
48
|
+
it 'should set default_index' do
|
49
|
+
client = ElasticSearch.new(servers, :auto_discovery => false)
|
50
|
+
client.current_server.should == 'http://127.0.0.1:9200'
|
51
|
+
client.default_index.should == 'test_index'
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should set default_type' do
|
55
|
+
client = ElasticSearch.new(servers + "/test_type", :auto_discovery => false)
|
56
|
+
client.current_server.should == 'http://127.0.0.1:9200'
|
57
|
+
client.default_index.should == 'test_index'
|
58
|
+
client.default_type.should == 'test_type'
|
59
|
+
end
|
60
|
+
end
|
32
61
|
end
|
metadata
CHANGED
@@ -1,156 +1,102 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubberband
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 5
|
10
|
-
version: 0.1.5
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Grant Rodgers
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: patron
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &16575640 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.4.12
|
32
22
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: yajl-ruby
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *16575640
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: yajl-ruby
|
27
|
+
requirement: &16575000 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: rake
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *16575000
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &16574340 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
40
|
+
requirements:
|
54
41
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
hash: 63
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
- 9
|
60
|
-
- 2
|
42
|
+
- !ruby/object:Gem::Version
|
61
43
|
version: 0.9.2
|
62
44
|
type: :development
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rspec
|
66
45
|
prerelease: false
|
67
|
-
|
46
|
+
version_requirements: *16574340
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
requirement: &16573760 !ruby/object:Gem::Requirement
|
68
50
|
none: false
|
69
|
-
requirements:
|
51
|
+
requirements:
|
70
52
|
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
segments:
|
74
|
-
- 2
|
75
|
-
- 0
|
76
|
-
version: "2.0"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
77
55
|
type: :development
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: yard
|
81
56
|
prerelease: false
|
82
|
-
|
57
|
+
version_requirements: *16573760
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: yard
|
60
|
+
requirement: &16573180 !ruby/object:Gem::Requirement
|
83
61
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
hash: 3
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
- 7
|
91
|
-
- 0
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
92
65
|
version: 0.7.0
|
93
66
|
type: :development
|
94
|
-
version_requirements: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: bundler
|
97
67
|
prerelease: false
|
98
|
-
|
99
|
-
|
100
|
-
requirements:
|
101
|
-
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
hash: 23
|
104
|
-
segments:
|
105
|
-
- 1
|
106
|
-
- 0
|
107
|
-
- 0
|
108
|
-
version: 1.0.0
|
109
|
-
type: :development
|
110
|
-
version_requirements: *id006
|
111
|
-
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: *16573180
|
69
|
+
- !ruby/object:Gem::Dependency
|
112
70
|
name: simplecov
|
113
|
-
|
114
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
71
|
+
requirement: &16572580 !ruby/object:Gem::Requirement
|
115
72
|
none: false
|
116
|
-
requirements:
|
117
|
-
- -
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
hash: 3
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
- 3
|
123
|
-
- 8
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
124
76
|
version: 0.3.8
|
125
77
|
type: :development
|
126
|
-
version_requirements: *id007
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: mocha
|
129
78
|
prerelease: false
|
130
|
-
|
79
|
+
version_requirements: *16572580
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: mocha
|
82
|
+
requirement: &16571980 !ruby/object:Gem::Requirement
|
131
83
|
none: false
|
132
|
-
requirements:
|
84
|
+
requirements:
|
133
85
|
- - ~>
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
hash: 59
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
- 9
|
139
|
-
- 0
|
86
|
+
- !ruby/object:Gem::Version
|
140
87
|
version: 0.9.0
|
141
88
|
type: :development
|
142
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *16571980
|
143
91
|
description: An ElasticSearch client with ThriftClient-like failover handling.
|
144
|
-
email:
|
92
|
+
email:
|
145
93
|
- grantr@gmail.com
|
146
94
|
executables: []
|
147
|
-
|
148
95
|
extensions: []
|
149
|
-
|
150
|
-
extra_rdoc_files:
|
96
|
+
extra_rdoc_files:
|
151
97
|
- LICENSE
|
152
98
|
- README.rdoc
|
153
|
-
files:
|
99
|
+
files:
|
154
100
|
- .autotest
|
155
101
|
- .gitignore
|
156
102
|
- .rspec
|
@@ -195,39 +141,31 @@ files:
|
|
195
141
|
- spec/type_spec.rb
|
196
142
|
- vendor/elasticsearch/elasticsearch.thrift
|
197
143
|
homepage: http://github.com/grantr/rubberband
|
198
|
-
licenses:
|
144
|
+
licenses:
|
199
145
|
- Apache v2
|
200
146
|
post_install_message:
|
201
147
|
rdoc_options: []
|
202
|
-
|
203
|
-
require_paths:
|
148
|
+
require_paths:
|
204
149
|
- lib
|
205
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
206
151
|
none: false
|
207
|
-
requirements:
|
208
|
-
- -
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
|
211
|
-
|
212
|
-
- 0
|
213
|
-
version: "0"
|
214
|
-
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
|
215
157
|
none: false
|
216
|
-
requirements:
|
217
|
-
- -
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
|
220
|
-
segments:
|
221
|
-
- 0
|
222
|
-
version: "0"
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
223
162
|
requirements: []
|
224
|
-
|
225
163
|
rubyforge_project: rubberband
|
226
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.11
|
227
165
|
signing_key:
|
228
166
|
specification_version: 3
|
229
167
|
summary: An ElasticSearch client with ThriftClient-like failover handling.
|
230
|
-
test_files:
|
168
|
+
test_files:
|
231
169
|
- spec/admin_spec.rb
|
232
170
|
- spec/bulk_spec.rb
|
233
171
|
- spec/connect_spec.rb
|