load_balanced_tire 0.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.
Files changed (121) hide show
  1. data/.gitignore +14 -0
  2. data/.travis.yml +29 -0
  3. data/Gemfile +4 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.markdown +760 -0
  6. data/Rakefile +78 -0
  7. data/examples/rails-application-template.rb +249 -0
  8. data/examples/tire-dsl.rb +876 -0
  9. data/lib/tire.rb +55 -0
  10. data/lib/tire/alias.rb +296 -0
  11. data/lib/tire/configuration.rb +30 -0
  12. data/lib/tire/dsl.rb +43 -0
  13. data/lib/tire/http/client.rb +62 -0
  14. data/lib/tire/http/clients/curb.rb +61 -0
  15. data/lib/tire/http/clients/faraday.rb +71 -0
  16. data/lib/tire/http/response.rb +27 -0
  17. data/lib/tire/index.rb +361 -0
  18. data/lib/tire/logger.rb +60 -0
  19. data/lib/tire/model/callbacks.rb +40 -0
  20. data/lib/tire/model/import.rb +26 -0
  21. data/lib/tire/model/indexing.rb +128 -0
  22. data/lib/tire/model/naming.rb +100 -0
  23. data/lib/tire/model/percolate.rb +99 -0
  24. data/lib/tire/model/persistence.rb +71 -0
  25. data/lib/tire/model/persistence/attributes.rb +143 -0
  26. data/lib/tire/model/persistence/finders.rb +66 -0
  27. data/lib/tire/model/persistence/storage.rb +69 -0
  28. data/lib/tire/model/search.rb +307 -0
  29. data/lib/tire/results/collection.rb +114 -0
  30. data/lib/tire/results/item.rb +86 -0
  31. data/lib/tire/results/pagination.rb +54 -0
  32. data/lib/tire/rubyext/hash.rb +8 -0
  33. data/lib/tire/rubyext/ruby_1_8.rb +7 -0
  34. data/lib/tire/rubyext/symbol.rb +11 -0
  35. data/lib/tire/search.rb +188 -0
  36. data/lib/tire/search/facet.rb +74 -0
  37. data/lib/tire/search/filter.rb +28 -0
  38. data/lib/tire/search/highlight.rb +37 -0
  39. data/lib/tire/search/query.rb +186 -0
  40. data/lib/tire/search/scan.rb +114 -0
  41. data/lib/tire/search/script_field.rb +23 -0
  42. data/lib/tire/search/sort.rb +25 -0
  43. data/lib/tire/tasks.rb +135 -0
  44. data/lib/tire/utils.rb +17 -0
  45. data/lib/tire/version.rb +22 -0
  46. data/test/fixtures/articles/1.json +1 -0
  47. data/test/fixtures/articles/2.json +1 -0
  48. data/test/fixtures/articles/3.json +1 -0
  49. data/test/fixtures/articles/4.json +1 -0
  50. data/test/fixtures/articles/5.json +1 -0
  51. data/test/integration/active_model_indexing_test.rb +51 -0
  52. data/test/integration/active_model_searchable_test.rb +114 -0
  53. data/test/integration/active_record_searchable_test.rb +446 -0
  54. data/test/integration/boolean_queries_test.rb +43 -0
  55. data/test/integration/count_test.rb +34 -0
  56. data/test/integration/custom_score_queries_test.rb +88 -0
  57. data/test/integration/dis_max_queries_test.rb +68 -0
  58. data/test/integration/dsl_search_test.rb +22 -0
  59. data/test/integration/explanation_test.rb +44 -0
  60. data/test/integration/facets_test.rb +259 -0
  61. data/test/integration/filtered_queries_test.rb +66 -0
  62. data/test/integration/filters_test.rb +63 -0
  63. data/test/integration/fuzzy_queries_test.rb +20 -0
  64. data/test/integration/highlight_test.rb +64 -0
  65. data/test/integration/index_aliases_test.rb +122 -0
  66. data/test/integration/index_mapping_test.rb +43 -0
  67. data/test/integration/index_store_test.rb +96 -0
  68. data/test/integration/index_update_document_test.rb +111 -0
  69. data/test/integration/mongoid_searchable_test.rb +309 -0
  70. data/test/integration/percolator_test.rb +111 -0
  71. data/test/integration/persistent_model_test.rb +130 -0
  72. data/test/integration/prefix_query_test.rb +43 -0
  73. data/test/integration/query_return_version_test.rb +70 -0
  74. data/test/integration/query_string_test.rb +52 -0
  75. data/test/integration/range_queries_test.rb +36 -0
  76. data/test/integration/reindex_test.rb +46 -0
  77. data/test/integration/results_test.rb +39 -0
  78. data/test/integration/scan_test.rb +56 -0
  79. data/test/integration/script_fields_test.rb +38 -0
  80. data/test/integration/sort_test.rb +36 -0
  81. data/test/integration/text_query_test.rb +39 -0
  82. data/test/models/active_model_article.rb +31 -0
  83. data/test/models/active_model_article_with_callbacks.rb +49 -0
  84. data/test/models/active_model_article_with_custom_document_type.rb +7 -0
  85. data/test/models/active_model_article_with_custom_index_name.rb +7 -0
  86. data/test/models/active_record_models.rb +122 -0
  87. data/test/models/article.rb +15 -0
  88. data/test/models/mongoid_models.rb +97 -0
  89. data/test/models/persistent_article.rb +11 -0
  90. data/test/models/persistent_article_in_namespace.rb +12 -0
  91. data/test/models/persistent_article_with_casting.rb +28 -0
  92. data/test/models/persistent_article_with_defaults.rb +11 -0
  93. data/test/models/persistent_articles_with_custom_index_name.rb +10 -0
  94. data/test/models/supermodel_article.rb +17 -0
  95. data/test/models/validated_model.rb +11 -0
  96. data/test/test_helper.rb +93 -0
  97. data/test/unit/active_model_lint_test.rb +17 -0
  98. data/test/unit/configuration_test.rb +74 -0
  99. data/test/unit/http_client_test.rb +76 -0
  100. data/test/unit/http_response_test.rb +49 -0
  101. data/test/unit/index_alias_test.rb +275 -0
  102. data/test/unit/index_test.rb +894 -0
  103. data/test/unit/logger_test.rb +125 -0
  104. data/test/unit/model_callbacks_test.rb +116 -0
  105. data/test/unit/model_import_test.rb +71 -0
  106. data/test/unit/model_persistence_test.rb +528 -0
  107. data/test/unit/model_search_test.rb +913 -0
  108. data/test/unit/results_collection_test.rb +281 -0
  109. data/test/unit/results_item_test.rb +162 -0
  110. data/test/unit/rubyext_test.rb +66 -0
  111. data/test/unit/search_facet_test.rb +153 -0
  112. data/test/unit/search_filter_test.rb +42 -0
  113. data/test/unit/search_highlight_test.rb +46 -0
  114. data/test/unit/search_query_test.rb +301 -0
  115. data/test/unit/search_scan_test.rb +113 -0
  116. data/test/unit/search_script_field_test.rb +26 -0
  117. data/test/unit/search_sort_test.rb +50 -0
  118. data/test/unit/search_test.rb +499 -0
  119. data/test/unit/tire_test.rb +126 -0
  120. data/tire.gemspec +90 -0
  121. metadata +549 -0
@@ -0,0 +1,126 @@
1
+ require 'test_helper'
2
+
3
+ module Tire
4
+
5
+ class TireTest < Test::Unit::TestCase
6
+
7
+ context "Tire" do
8
+
9
+ should "have the DSL methods available" do
10
+ assert_respond_to Tire, :search
11
+ assert_respond_to Tire, :index
12
+ assert_respond_to Tire, :configure
13
+ end
14
+
15
+ context "DSL" do
16
+
17
+ should "allow searching with a block" do
18
+ Search::Search.expects(:new).returns( stub(:perform => true) )
19
+
20
+ Tire.search 'dummy' do
21
+ query 'foo'
22
+ end
23
+ end
24
+
25
+ should "allow searching with a Ruby Hash" do
26
+ payload = { :query => { :query_string => { :query => 'foo' } } }
27
+ Search::Search.expects(:new).with('dummy', :payload => payload).returns( stub(:perform => true) )
28
+
29
+ Tire.search 'dummy', payload
30
+ end
31
+
32
+ should "allow searching with a JSON string" do
33
+ payload = '{"query":{"query_string":{"query":"foo"}}}'
34
+ Search::Search.expects(:new).with('dummy', :payload => payload).returns( stub(:perform => true) )
35
+
36
+ Tire.search 'dummy', payload
37
+ end
38
+
39
+ should "raise an error when passed incorrect payload" do
40
+ assert_raise(ArgumentError) do
41
+ Tire.search 'dummy', 1
42
+ end
43
+ end
44
+
45
+ should "raise SearchRequestFailed when receiving bad response from backend" do
46
+ assert_raise(Search::SearchRequestFailed) do
47
+ Tire::Configuration.client.expects(:get).returns( mock_response('INDEX DOES NOT EXIST', 404) )
48
+ Tire.search('not-existing', :query => { :query_string => { :query => 'foo' }}).results
49
+ end
50
+ end
51
+
52
+ context "when retrieving results" do
53
+
54
+ should "not call the #perform method immediately" do
55
+ s = Tire.search('dummy') { query { string 'foo' } }
56
+ s.expects(:perform).never
57
+ end
58
+
59
+ should "call #perform from #results" do
60
+ s = Tire.search('dummy') { query { string 'foo' } }
61
+ s.expects(:perform).once
62
+ s.results
63
+ end
64
+
65
+ end
66
+
67
+ context "when scanning an index" do
68
+
69
+ should "initiate the scan" do
70
+ Search::Scan.expects(:new).with { |index,options| index == 'dummy' }
71
+
72
+ Tire.scan('dummy')
73
+ end
74
+
75
+ should "allow to pass the query as a block to scan" do
76
+ Search::Scan.expects(:new).with do |index,options|
77
+ index == 'dummy'
78
+ end
79
+
80
+ Tire.scan('dummy') { query { string 'foo' } }
81
+ end
82
+
83
+ should "allow to pass the query as a hash to scan" do
84
+ payload = { :query => { :query_string => { :query => 'foo' } } }
85
+ Search::Scan.expects(:new).with('dummy', payload)
86
+
87
+ Tire.scan 'dummy', payload
88
+ end
89
+ end
90
+
91
+ end
92
+
93
+ context "aliases" do
94
+
95
+ should "list all aliases" do
96
+ json = {'dummy' => {'aliases' => {'foo' => {}}}}.to_json
97
+ Configuration.client.expects(:get).returns(mock_response(json))
98
+
99
+ aliases = Tire.aliases
100
+
101
+ assert_equal 'foo', aliases.first.name
102
+ assert_equal ['dummy'], aliases.first.indices.to_a
103
+ end
104
+
105
+ end
106
+
107
+ context "utils" do
108
+
109
+ should "encode a string for URL" do
110
+ assert_equal 'foo+bar', Utils.escape('foo bar')
111
+ assert_equal 'foo%2Fbar', Utils.escape('foo/bar')
112
+ assert_equal 'foo%21', Utils.escape('foo!')
113
+ end
114
+
115
+ should "encode a string from URL" do
116
+ assert_equal 'foo bar', Utils.unescape('foo+bar')
117
+ assert_equal 'foo/bar', Utils.unescape('foo%2Fbar')
118
+ assert_equal 'foo!', Utils.unescape('foo%21')
119
+ end
120
+
121
+ end
122
+ end
123
+
124
+ end
125
+
126
+ end
data/tire.gemspec ADDED
@@ -0,0 +1,90 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "tire/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "load_balanced_tire"
7
+ s.version = 0.1
8
+ s.platform = Gem::Platform::RUBY
9
+ s.summary = "Ruby client for ElasticSearch w/ load balancing via load_balance_client"
10
+ s.homepage = "http://github.com/themattray/tire"
11
+ s.authors = [ 'Karel Minarik', 'Matt Ray' ]
12
+ s.email = 'themattray@gmail.com'
13
+
14
+ s.rubyforge_project = "load_balanced_tire"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+
20
+ s.require_paths = ["lib"]
21
+
22
+ s.extra_rdoc_files = [ "README.markdown", "MIT-LICENSE" ]
23
+ s.rdoc_options = [ "--charset=UTF-8" ]
24
+
25
+ s.required_rubygems_version = ">= 1.3.6"
26
+
27
+ # = Library dependencies
28
+ #
29
+ s.add_dependency "rake"
30
+ #s.add_dependency "rest-client", "~> 1.6"
31
+ s.add_dependency "load_balance_client"
32
+ s.add_dependency "multi_json", "~> 1.0"
33
+ s.add_dependency "activemodel", ">= 3.0"
34
+ s.add_dependency "hashr", "~> 0.0.19"
35
+ s.add_dependency "rack", ">= 1.4" if defined?(RUBY_VERSION) && RUBY_VERSION < '1.9'
36
+
37
+ # = Development dependencies
38
+ #
39
+ s.add_development_dependency "bundler", "~> 1.0"
40
+ s.add_development_dependency "yajl-ruby", "~> 1.0"
41
+ s.add_development_dependency "shoulda"
42
+ s.add_development_dependency "mocha"
43
+ s.add_development_dependency "activerecord", ">= 3.0"
44
+ s.add_development_dependency "sqlite3"
45
+ s.add_development_dependency "mongoid", "~> 2.2"
46
+ s.add_development_dependency "bson_ext"
47
+ s.add_development_dependency "redis-persistence"
48
+ s.add_development_dependency "curb"
49
+ s.add_development_dependency "minitest"
50
+ s.add_development_dependency "turn", "~> 0.9" if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
51
+
52
+ # These gems are not needed for CI at <http://travis-ci.org/#!/karmi/tire>
53
+ #
54
+ unless ENV["CI"]
55
+ s.add_development_dependency "rdoc"
56
+ end
57
+
58
+ s.description = <<-DESC
59
+ Tire is a Ruby client for the ElasticSearch search engine/database.
60
+
61
+ It provides Ruby-like API for fluent communication with the ElasticSearch server
62
+ and blends with ActiveModel class for convenient usage in Rails applications.
63
+
64
+ It allows to delete and create indices, define mapping for them, supports
65
+ the bulk API, and presents an easy-to-use DSL for constructing your queries.
66
+
67
+ It has full ActiveRecord/ActiveModel compatibility, allowing you to index
68
+ your models (incrementally upon saving, or in bulk), searching and
69
+ paginating the results.
70
+
71
+ Please check the documentation at <http://karmi.github.com/tire/>.
72
+
73
+ It has been modified to use the load_balance_client gem instead of the
74
+ rest-client to support multiple elasticsearch servers with failover.
75
+
76
+ DESC
77
+
78
+ s.post_install_message =<<-CHANGELOG.gsub(/^ /, '')
79
+ ================================================================================
80
+
81
+ Please check the documentation at <http://karmi.github.com/tire/>.
82
+
83
+ --------------------------------------------------------------------------------
84
+
85
+ #{Tire::CHANGELOG}
86
+ See the full changelog at <http://github.com/karmi/tire/commits/v#{Tire::VERSION}>.
87
+
88
+ --------------------------------------------------------------------------------
89
+ CHANGELOG
90
+ end
metadata ADDED
@@ -0,0 +1,549 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: load_balanced_tire
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Karel Minarik
9
+ - Matt Ray
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-08-08 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: load_balance_client
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: multi_json
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: activemodel
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '3.0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '3.0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: hashr
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 0.0.19
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 0.0.19
95
+ - !ruby/object:Gem::Dependency
96
+ name: bundler
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: '1.0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: yajl-ruby
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '1.0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: '1.0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: shoulda
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: mocha
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: activerecord
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '3.0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '3.0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: sqlite3
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: mongoid
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: '2.2'
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ version: '2.2'
207
+ - !ruby/object:Gem::Dependency
208
+ name: bson_ext
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: redis-persistence
225
+ requirement: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ - !ruby/object:Gem::Dependency
240
+ name: curb
241
+ requirement: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: minitest
257
+ requirement: !ruby/object:Gem::Requirement
258
+ none: false
259
+ requirements:
260
+ - - ! '>='
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ! '>='
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ - !ruby/object:Gem::Dependency
272
+ name: turn
273
+ requirement: !ruby/object:Gem::Requirement
274
+ none: false
275
+ requirements:
276
+ - - ~>
277
+ - !ruby/object:Gem::Version
278
+ version: '0.9'
279
+ type: :development
280
+ prerelease: false
281
+ version_requirements: !ruby/object:Gem::Requirement
282
+ none: false
283
+ requirements:
284
+ - - ~>
285
+ - !ruby/object:Gem::Version
286
+ version: '0.9'
287
+ - !ruby/object:Gem::Dependency
288
+ name: rdoc
289
+ requirement: !ruby/object:Gem::Requirement
290
+ none: false
291
+ requirements:
292
+ - - ! '>='
293
+ - !ruby/object:Gem::Version
294
+ version: '0'
295
+ type: :development
296
+ prerelease: false
297
+ version_requirements: !ruby/object:Gem::Requirement
298
+ none: false
299
+ requirements:
300
+ - - ! '>='
301
+ - !ruby/object:Gem::Version
302
+ version: '0'
303
+ description: ! " Tire is a Ruby client for the ElasticSearch search engine/database.\n\n
304
+ \ It provides Ruby-like API for fluent communication with the ElasticSearch server\n
305
+ \ and blends with ActiveModel class for convenient usage in Rails applications.\n\n
306
+ \ It allows to delete and create indices, define mapping for them, supports\n the
307
+ bulk API, and presents an easy-to-use DSL for constructing your queries.\n\n It
308
+ has full ActiveRecord/ActiveModel compatibility, allowing you to index\n your
309
+ models (incrementally upon saving, or in bulk), searching and\n paginating the
310
+ results.\n\n Please check the documentation at <http://karmi.github.com/tire/>.\n\n
311
+ \ It has been modified to use the load_balance_client gem instead of the\n rest-client
312
+ to support multiple elasticsearch servers with failover.\n\n"
313
+ email: themattray@gmail.com
314
+ executables: []
315
+ extensions: []
316
+ extra_rdoc_files:
317
+ - README.markdown
318
+ - MIT-LICENSE
319
+ files:
320
+ - .gitignore
321
+ - .travis.yml
322
+ - Gemfile
323
+ - MIT-LICENSE
324
+ - README.markdown
325
+ - Rakefile
326
+ - examples/rails-application-template.rb
327
+ - examples/tire-dsl.rb
328
+ - lib/tire.rb
329
+ - lib/tire/alias.rb
330
+ - lib/tire/configuration.rb
331
+ - lib/tire/dsl.rb
332
+ - lib/tire/http/client.rb
333
+ - lib/tire/http/clients/curb.rb
334
+ - lib/tire/http/clients/faraday.rb
335
+ - lib/tire/http/response.rb
336
+ - lib/tire/index.rb
337
+ - lib/tire/logger.rb
338
+ - lib/tire/model/callbacks.rb
339
+ - lib/tire/model/import.rb
340
+ - lib/tire/model/indexing.rb
341
+ - lib/tire/model/naming.rb
342
+ - lib/tire/model/percolate.rb
343
+ - lib/tire/model/persistence.rb
344
+ - lib/tire/model/persistence/attributes.rb
345
+ - lib/tire/model/persistence/finders.rb
346
+ - lib/tire/model/persistence/storage.rb
347
+ - lib/tire/model/search.rb
348
+ - lib/tire/results/collection.rb
349
+ - lib/tire/results/item.rb
350
+ - lib/tire/results/pagination.rb
351
+ - lib/tire/rubyext/hash.rb
352
+ - lib/tire/rubyext/ruby_1_8.rb
353
+ - lib/tire/rubyext/symbol.rb
354
+ - lib/tire/search.rb
355
+ - lib/tire/search/facet.rb
356
+ - lib/tire/search/filter.rb
357
+ - lib/tire/search/highlight.rb
358
+ - lib/tire/search/query.rb
359
+ - lib/tire/search/scan.rb
360
+ - lib/tire/search/script_field.rb
361
+ - lib/tire/search/sort.rb
362
+ - lib/tire/tasks.rb
363
+ - lib/tire/utils.rb
364
+ - lib/tire/version.rb
365
+ - test/fixtures/articles/1.json
366
+ - test/fixtures/articles/2.json
367
+ - test/fixtures/articles/3.json
368
+ - test/fixtures/articles/4.json
369
+ - test/fixtures/articles/5.json
370
+ - test/integration/active_model_indexing_test.rb
371
+ - test/integration/active_model_searchable_test.rb
372
+ - test/integration/active_record_searchable_test.rb
373
+ - test/integration/boolean_queries_test.rb
374
+ - test/integration/count_test.rb
375
+ - test/integration/custom_score_queries_test.rb
376
+ - test/integration/dis_max_queries_test.rb
377
+ - test/integration/dsl_search_test.rb
378
+ - test/integration/explanation_test.rb
379
+ - test/integration/facets_test.rb
380
+ - test/integration/filtered_queries_test.rb
381
+ - test/integration/filters_test.rb
382
+ - test/integration/fuzzy_queries_test.rb
383
+ - test/integration/highlight_test.rb
384
+ - test/integration/index_aliases_test.rb
385
+ - test/integration/index_mapping_test.rb
386
+ - test/integration/index_store_test.rb
387
+ - test/integration/index_update_document_test.rb
388
+ - test/integration/mongoid_searchable_test.rb
389
+ - test/integration/percolator_test.rb
390
+ - test/integration/persistent_model_test.rb
391
+ - test/integration/prefix_query_test.rb
392
+ - test/integration/query_return_version_test.rb
393
+ - test/integration/query_string_test.rb
394
+ - test/integration/range_queries_test.rb
395
+ - test/integration/reindex_test.rb
396
+ - test/integration/results_test.rb
397
+ - test/integration/scan_test.rb
398
+ - test/integration/script_fields_test.rb
399
+ - test/integration/sort_test.rb
400
+ - test/integration/text_query_test.rb
401
+ - test/models/active_model_article.rb
402
+ - test/models/active_model_article_with_callbacks.rb
403
+ - test/models/active_model_article_with_custom_document_type.rb
404
+ - test/models/active_model_article_with_custom_index_name.rb
405
+ - test/models/active_record_models.rb
406
+ - test/models/article.rb
407
+ - test/models/mongoid_models.rb
408
+ - test/models/persistent_article.rb
409
+ - test/models/persistent_article_in_namespace.rb
410
+ - test/models/persistent_article_with_casting.rb
411
+ - test/models/persistent_article_with_defaults.rb
412
+ - test/models/persistent_articles_with_custom_index_name.rb
413
+ - test/models/supermodel_article.rb
414
+ - test/models/validated_model.rb
415
+ - test/test_helper.rb
416
+ - test/unit/active_model_lint_test.rb
417
+ - test/unit/configuration_test.rb
418
+ - test/unit/http_client_test.rb
419
+ - test/unit/http_response_test.rb
420
+ - test/unit/index_alias_test.rb
421
+ - test/unit/index_test.rb
422
+ - test/unit/logger_test.rb
423
+ - test/unit/model_callbacks_test.rb
424
+ - test/unit/model_import_test.rb
425
+ - test/unit/model_persistence_test.rb
426
+ - test/unit/model_search_test.rb
427
+ - test/unit/results_collection_test.rb
428
+ - test/unit/results_item_test.rb
429
+ - test/unit/rubyext_test.rb
430
+ - test/unit/search_facet_test.rb
431
+ - test/unit/search_filter_test.rb
432
+ - test/unit/search_highlight_test.rb
433
+ - test/unit/search_query_test.rb
434
+ - test/unit/search_scan_test.rb
435
+ - test/unit/search_script_field_test.rb
436
+ - test/unit/search_sort_test.rb
437
+ - test/unit/search_test.rb
438
+ - test/unit/tire_test.rb
439
+ - tire.gemspec
440
+ homepage: http://github.com/themattray/tire
441
+ licenses: []
442
+ post_install_message: ! "================================================================================\n\n
443
+ \ Please check the documentation at <http://karmi.github.com/tire/>.\n\n--------------------------------------------------------------------------------\n\n
444
+ \ IMPORTANT CHANGES LATELY:\n\n Version 0.4.1\n -------------\n * Added a Index#settings
445
+ method to retrieve index settings as a Hash\n * Added support for the \"scan\"
446
+ search in the Ruby API\n * Added support for reindexing the index documents into
447
+ new index\n * Added basic support for index aliases\n * Changed, that Index#bulk_store
448
+ runs against an index endpoint, not against `/_bulk`\n * Refactorings, fixes, Ruby
449
+ 1.8 compatibility\n\n Version 0.4.2\n -------------\n * Fixed incorrect handling
450
+ of PUT requests in the Curb client\n * Fixed, that blocks passed to `Tire::Index.new`
451
+ or `Tire.index` losed the scope\n * Added `Tire::Alias`, interface and DSL to manage
452
+ aliases as resources\n\n See the full changelog at <http://github.com/karmi/tire/commits/v0.4.2>.\n\n--------------------------------------------------------------------------------\n"
453
+ rdoc_options:
454
+ - --charset=UTF-8
455
+ require_paths:
456
+ - lib
457
+ required_ruby_version: !ruby/object:Gem::Requirement
458
+ none: false
459
+ requirements:
460
+ - - ! '>='
461
+ - !ruby/object:Gem::Version
462
+ version: '0'
463
+ required_rubygems_version: !ruby/object:Gem::Requirement
464
+ none: false
465
+ requirements:
466
+ - - ! '>='
467
+ - !ruby/object:Gem::Version
468
+ version: 1.3.6
469
+ requirements: []
470
+ rubyforge_project: load_balanced_tire
471
+ rubygems_version: 1.8.24
472
+ signing_key:
473
+ specification_version: 3
474
+ summary: Ruby client for ElasticSearch w/ load balancing via load_balance_client
475
+ test_files:
476
+ - test/fixtures/articles/1.json
477
+ - test/fixtures/articles/2.json
478
+ - test/fixtures/articles/3.json
479
+ - test/fixtures/articles/4.json
480
+ - test/fixtures/articles/5.json
481
+ - test/integration/active_model_indexing_test.rb
482
+ - test/integration/active_model_searchable_test.rb
483
+ - test/integration/active_record_searchable_test.rb
484
+ - test/integration/boolean_queries_test.rb
485
+ - test/integration/count_test.rb
486
+ - test/integration/custom_score_queries_test.rb
487
+ - test/integration/dis_max_queries_test.rb
488
+ - test/integration/dsl_search_test.rb
489
+ - test/integration/explanation_test.rb
490
+ - test/integration/facets_test.rb
491
+ - test/integration/filtered_queries_test.rb
492
+ - test/integration/filters_test.rb
493
+ - test/integration/fuzzy_queries_test.rb
494
+ - test/integration/highlight_test.rb
495
+ - test/integration/index_aliases_test.rb
496
+ - test/integration/index_mapping_test.rb
497
+ - test/integration/index_store_test.rb
498
+ - test/integration/index_update_document_test.rb
499
+ - test/integration/mongoid_searchable_test.rb
500
+ - test/integration/percolator_test.rb
501
+ - test/integration/persistent_model_test.rb
502
+ - test/integration/prefix_query_test.rb
503
+ - test/integration/query_return_version_test.rb
504
+ - test/integration/query_string_test.rb
505
+ - test/integration/range_queries_test.rb
506
+ - test/integration/reindex_test.rb
507
+ - test/integration/results_test.rb
508
+ - test/integration/scan_test.rb
509
+ - test/integration/script_fields_test.rb
510
+ - test/integration/sort_test.rb
511
+ - test/integration/text_query_test.rb
512
+ - test/models/active_model_article.rb
513
+ - test/models/active_model_article_with_callbacks.rb
514
+ - test/models/active_model_article_with_custom_document_type.rb
515
+ - test/models/active_model_article_with_custom_index_name.rb
516
+ - test/models/active_record_models.rb
517
+ - test/models/article.rb
518
+ - test/models/mongoid_models.rb
519
+ - test/models/persistent_article.rb
520
+ - test/models/persistent_article_in_namespace.rb
521
+ - test/models/persistent_article_with_casting.rb
522
+ - test/models/persistent_article_with_defaults.rb
523
+ - test/models/persistent_articles_with_custom_index_name.rb
524
+ - test/models/supermodel_article.rb
525
+ - test/models/validated_model.rb
526
+ - test/test_helper.rb
527
+ - test/unit/active_model_lint_test.rb
528
+ - test/unit/configuration_test.rb
529
+ - test/unit/http_client_test.rb
530
+ - test/unit/http_response_test.rb
531
+ - test/unit/index_alias_test.rb
532
+ - test/unit/index_test.rb
533
+ - test/unit/logger_test.rb
534
+ - test/unit/model_callbacks_test.rb
535
+ - test/unit/model_import_test.rb
536
+ - test/unit/model_persistence_test.rb
537
+ - test/unit/model_search_test.rb
538
+ - test/unit/results_collection_test.rb
539
+ - test/unit/results_item_test.rb
540
+ - test/unit/rubyext_test.rb
541
+ - test/unit/search_facet_test.rb
542
+ - test/unit/search_filter_test.rb
543
+ - test/unit/search_highlight_test.rb
544
+ - test/unit/search_query_test.rb
545
+ - test/unit/search_scan_test.rb
546
+ - test/unit/search_script_field_test.rb
547
+ - test/unit/search_sort_test.rb
548
+ - test/unit/search_test.rb
549
+ - test/unit/tire_test.rb