search_flip 1.1.0 → 2.0.0.beta
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 +5 -5
 - data/.rubocop.yml +110 -0
 - data/.travis.yml +11 -30
 - data/CHANGELOG.md +17 -5
 - data/README.md +32 -0
 - data/docker-compose.yml +6 -0
 - data/lib/search_flip.rb +2 -42
 - data/lib/search_flip/aggregatable.rb +1 -1
 - data/lib/search_flip/aggregation.rb +15 -9
 - data/lib/search_flip/bulk.rb +8 -5
 - data/lib/search_flip/config.rb +0 -11
 - data/lib/search_flip/connection.rb +131 -0
 - data/lib/search_flip/criteria.rb +89 -73
 - data/lib/search_flip/exceptions.rb +5 -0
 - data/lib/search_flip/filterable.rb +3 -1
 - data/lib/search_flip/index.rb +32 -26
 - data/lib/search_flip/model.rb +1 -1
 - data/lib/search_flip/post_filterable.rb +5 -3
 - data/lib/search_flip/response.rb +1 -1
 - data/lib/search_flip/version.rb +1 -1
 - data/search_flip.gemspec +10 -9
 - data/test/search_flip/aggregation_test.rb +39 -21
 - data/test/search_flip/bulk_test.rb +1 -1
 - data/test/search_flip/connection_test.rb +70 -0
 - data/test/search_flip/criteria_test.rb +87 -44
 - data/test/search_flip/http_client_test.rb +1 -1
 - data/test/search_flip/index_test.rb +49 -17
 - data/test/search_flip/model_test.rb +1 -1
 - data/test/search_flip/response_test.rb +4 -3
 - data/test/search_flip/to_json_test.rb +1 -1
 - data/test/test_helper.rb +5 -5
 - metadata +28 -26
 - data/test/database.yml +0 -4
 - data/test/search_flip_test.rb +0 -26
 
| 
         @@ -1,12 +1,34 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
     | 
    
         
            -
            require File.expand_path(" 
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path("../test_helper", __dir__)
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            class SearchFlip::IndexTest < SearchFlip::TestCase
         
     | 
| 
       5 
     | 
    
         
            -
              should_delegate_methods :profile, :where, :where_not, :filter, :range, :match_all, :exists, 
     | 
| 
       6 
     | 
    
         
            -
                : 
     | 
| 
       7 
     | 
    
         
            -
                : 
     | 
| 
       8 
     | 
    
         
            -
                : 
     | 
| 
       9 
     | 
    
         
            -
                : 
     | 
| 
      
 5 
     | 
    
         
            +
              should_delegate_methods :profile, :where, :where_not, :filter, :range, :match_all, :exists,
         
     | 
| 
      
 6 
     | 
    
         
            +
                :exists_not, :post_where, :post_where_not, :post_filter, :post_must, :post_must_not,
         
     | 
| 
      
 7 
     | 
    
         
            +
                :post_should, :post_range, :post_exists, :post_exists_not, :aggregate, :scroll, :source,
         
     | 
| 
      
 8 
     | 
    
         
            +
                :includes, :eager_load, :preload, :sort, :resort, :order, :reorder, :offset, :limit,
         
     | 
| 
      
 9 
     | 
    
         
            +
                :paginate, :page, :per, :search, :find_in_batches, :highlight, :suggest, :custom, :find_each,
         
     | 
| 
      
 10 
     | 
    
         
            +
                :failsafe, :total_entries, :total_count, :terminate_after, :timeout, :should, :should_not,
         
     | 
| 
      
 11 
     | 
    
         
            +
                :must, :must_not, to: :criteria, subject: ProductIndex
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              def test_serialize_exception
         
     | 
| 
      
 14 
     | 
    
         
            +
                klass = Class.new do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  include SearchFlip::Index
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                assert_raises SearchFlip::MethodNotImplemented do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  klass.serialize(Hashie::Mash)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              def test_type_name_exception
         
     | 
| 
      
 24 
     | 
    
         
            +
                klass = Class.new do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  include SearchFlip::Index
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                assert_raises SearchFlip::MethodNotImplemented do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  klass.serialize(Hashie::Mash)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
       10 
32 
     | 
    
         | 
| 
       11 
33 
     | 
    
         
             
              def test_create_index
         
     | 
| 
       12 
34 
     | 
    
         
             
                assert TestIndex.create_index
         
     | 
| 
         @@ -75,10 +97,6 @@ class SearchFlip::IndexTest < SearchFlip::TestCase 
     | 
|
| 
       75 
97 
     | 
    
         
             
                end
         
     | 
| 
       76 
98 
     | 
    
         
             
              end
         
     | 
| 
       77 
99 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
              def test_base_url
         
     | 
| 
       79 
     | 
    
         
            -
                assert_equal "http://127.0.0.1:9200", ProductIndex.base_url
         
     | 
| 
       80 
     | 
    
         
            -
              end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
100 
     | 
    
         
             
              def test_index_url
         
     | 
| 
       83 
101 
     | 
    
         
             
                assert_equal "http://127.0.0.1:9200/products", ProductIndex.index_url
         
     | 
| 
       84 
102 
     | 
    
         | 
| 
         @@ -151,7 +169,9 @@ class SearchFlip::IndexTest < SearchFlip::TestCase 
     | 
|
| 
       151 
169 
     | 
    
         
             
                  ProductIndex.import products
         
     | 
| 
       152 
170 
     | 
    
         
             
                end
         
     | 
| 
       153 
171 
     | 
    
         | 
| 
       154 
     | 
    
         
            -
                 
     | 
| 
      
 172 
     | 
    
         
            +
                actual = products.map { |product| ProductIndex.get(product.id)["_version"] }
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                assert_equal [3, 3], actual
         
     | 
| 
       155 
175 
     | 
    
         
             
              end
         
     | 
| 
       156 
176 
     | 
    
         | 
| 
       157 
177 
     | 
    
         
             
              def test_index_array
         
     | 
| 
         @@ -267,32 +287,38 @@ class SearchFlip::IndexTest < SearchFlip::TestCase 
     | 
|
| 
       267 
287 
     | 
    
         | 
| 
       268 
288 
     | 
    
         
             
                products = create_list(:product, 2)
         
     | 
| 
       269 
289 
     | 
    
         | 
| 
       270 
     | 
    
         
            -
                if  
     | 
| 
      
 290 
     | 
    
         
            +
                if ProductIndex.connection.version.to_i >= 5
         
     | 
| 
       271 
291 
     | 
    
         
             
                  assert_difference "ProductIndex.total_entries", 2 do
         
     | 
| 
       272 
292 
     | 
    
         
             
                    ProductIndex.create products, {}, routing: "r1"
         
     | 
| 
       273 
293 
     | 
    
         
             
                  end
         
     | 
| 
       274 
294 
     | 
    
         | 
| 
       275 
     | 
    
         
            -
                   
     | 
| 
      
 295 
     | 
    
         
            +
                  actual = ProductIndex.get(products.first.id, routing: "r1")["_routing"]
         
     | 
| 
      
 296 
     | 
    
         
            +
             
     | 
| 
      
 297 
     | 
    
         
            +
                  assert_equal "r1", actual
         
     | 
| 
       276 
298 
     | 
    
         
             
                else
         
     | 
| 
       277 
299 
     | 
    
         
             
                  assert_difference "ProductIndex.total_entries", 2 do
         
     | 
| 
       278 
300 
     | 
    
         
             
                    ProductIndex.create products, {}, version: 2, version_type: "external"
         
     | 
| 
       279 
301 
     | 
    
         
             
                  end
         
     | 
| 
       280 
302 
     | 
    
         | 
| 
       281 
     | 
    
         
            -
                   
     | 
| 
      
 303 
     | 
    
         
            +
                  actual = products.map { |product| ProductIndex.get(product.id)["_version"] }
         
     | 
| 
      
 304 
     | 
    
         
            +
             
     | 
| 
      
 305 
     | 
    
         
            +
                  assert_equal [2, 2], actual
         
     | 
| 
       282 
306 
     | 
    
         
             
                end
         
     | 
| 
       283 
307 
     | 
    
         
             
              end
         
     | 
| 
       284 
308 
     | 
    
         | 
| 
       285 
309 
     | 
    
         
             
              def test_create_with_class_options
         
     | 
| 
       286 
310 
     | 
    
         
             
                products = create_list(:product, 2)
         
     | 
| 
       287 
311 
     | 
    
         | 
| 
       288 
     | 
    
         
            -
                if  
     | 
| 
      
 312 
     | 
    
         
            +
                if ProductIndex.connection.version.to_i >= 5
         
     | 
| 
       289 
313 
     | 
    
         
             
                  ProductIndex.stubs(:index_options).returns(routing: "r1")
         
     | 
| 
       290 
314 
     | 
    
         | 
| 
       291 
315 
     | 
    
         
             
                  assert_difference "ProductIndex.total_entries", 2 do
         
     | 
| 
       292 
316 
     | 
    
         
             
                    ProductIndex.create products
         
     | 
| 
       293 
317 
     | 
    
         
             
                  end
         
     | 
| 
       294 
318 
     | 
    
         | 
| 
       295 
     | 
    
         
            -
                   
     | 
| 
      
 319 
     | 
    
         
            +
                  actual = products.map { |product| ProductIndex.get(product.id, routing: "r1")["_routing"] }
         
     | 
| 
      
 320 
     | 
    
         
            +
             
     | 
| 
      
 321 
     | 
    
         
            +
                  assert_equal ["r1", "r1"], actual
         
     | 
| 
       296 
322 
     | 
    
         
             
                else
         
     | 
| 
       297 
323 
     | 
    
         
             
                  ProductIndex.stubs(:index_options).returns(version: 2, version_type: "external")
         
     | 
| 
       298 
324 
     | 
    
         | 
| 
         @@ -300,7 +326,9 @@ class SearchFlip::IndexTest < SearchFlip::TestCase 
     | 
|
| 
       300 
326 
     | 
    
         
             
                    ProductIndex.create products
         
     | 
| 
       301 
327 
     | 
    
         
             
                  end
         
     | 
| 
       302 
328 
     | 
    
         | 
| 
       303 
     | 
    
         
            -
                   
     | 
| 
      
 329 
     | 
    
         
            +
                  actual = products.map { |product| ProductIndex.get(product.id)["_version"] }
         
     | 
| 
      
 330 
     | 
    
         
            +
             
     | 
| 
      
 331 
     | 
    
         
            +
                  assert_equal [2, 2], actual
         
     | 
| 
       304 
332 
     | 
    
         
             
                end
         
     | 
| 
       305 
333 
     | 
    
         
             
              end
         
     | 
| 
       306 
334 
     | 
    
         | 
| 
         @@ -346,5 +374,9 @@ class SearchFlip::IndexTest < SearchFlip::TestCase 
     | 
|
| 
       346 
374 
     | 
    
         
             
                  end
         
     | 
| 
       347 
375 
     | 
    
         
             
                end
         
     | 
| 
       348 
376 
     | 
    
         
             
              end
         
     | 
| 
      
 377 
     | 
    
         
            +
             
     | 
| 
      
 378 
     | 
    
         
            +
              def test_connection
         
     | 
| 
      
 379 
     | 
    
         
            +
                assert_equal ProductIndex.connection.base_url, "http://127.0.0.1:9200"
         
     | 
| 
      
 380 
     | 
    
         
            +
              end
         
     | 
| 
       349 
381 
     | 
    
         
             
            end
         
     | 
| 
       350 
382 
     | 
    
         | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
     | 
    
         
            -
            require File.expand_path(" 
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path("../test_helper", __dir__)
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            class SearchFlip::ResponseTest < SearchFlip::TestCase
         
     | 
| 
       5 
5 
     | 
    
         
             
              def test_total_entries
         
     | 
| 
         @@ -124,10 +124,11 @@ class SearchFlip::ResponseTest < SearchFlip::TestCase 
     | 
|
| 
       124 
124 
     | 
    
         
             
                ProductIndex.import [product1, product2, product3]
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
126 
     | 
    
         
             
                query = ProductIndex.aggregate(:category) do |aggregation|
         
     | 
| 
       127 
     | 
    
         
            -
                  aggregation.aggregate(price_sum: { sum: { field: "price" }})
         
     | 
| 
      
 127 
     | 
    
         
            +
                  aggregation.aggregate(price_sum: { sum: { field: "price" } })
         
     | 
| 
       128 
128 
     | 
    
         
             
                end
         
     | 
| 
       129 
129 
     | 
    
         | 
| 
       130 
     | 
    
         
            -
                assert_equal Hash["category1" => 2, "category2" => 1], 
     | 
| 
      
 130 
     | 
    
         
            +
                assert_equal Hash["category1" => 2, "category2" => 1],
         
     | 
| 
      
 131 
     | 
    
         
            +
                  query.aggregations(:category).each_with_object({}) { |(key, agg), hash| hash[key] = agg.doc_count }
         
     | 
| 
       131 
132 
     | 
    
         | 
| 
       132 
133 
     | 
    
         
             
                assert_equal 40, query.aggregations(:category)["category1"].price_sum.value
         
     | 
| 
       133 
134 
     | 
    
         
             
                assert_equal 20, query.aggregations(:category)["category2"].price_sum.value
         
     | 
    
        data/test/test_helper.rb
    CHANGED
    
    | 
         @@ -11,7 +11,7 @@ require "yaml" 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            WebMock.allow_net_connect!
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
            ActiveRecord::Base.establish_connection  
     | 
| 
      
 14 
     | 
    
         
            +
            ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
            SearchFlip::Config[:auto_refresh] = true
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
         @@ -23,7 +23,7 @@ ActiveRecord::Base.connection.create_table :products do |t| 
     | 
|
| 
       23 
23 
     | 
    
         
             
              t.float :price
         
     | 
| 
       24 
24 
     | 
    
         
             
              t.string :category
         
     | 
| 
       25 
25 
     | 
    
         
             
              t.integer :version, default: 1
         
     | 
| 
       26 
     | 
    
         
            -
              t.integer :rank, : 
     | 
| 
      
 26 
     | 
    
         
            +
              t.integer :rank, default: 0
         
     | 
| 
       27 
27 
     | 
    
         
             
              t.integer :user_id
         
     | 
| 
       28 
28 
     | 
    
         
             
              t.timestamps null: false
         
     | 
| 
       29 
29 
     | 
    
         
             
            end
         
     | 
| 
         @@ -99,7 +99,7 @@ class ProductIndex 
     | 
|
| 
       99 
99 
     | 
    
         
             
              include SearchFlip::Index
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
       101 
101 
     | 
    
         
             
              def self.mapping
         
     | 
| 
       102 
     | 
    
         
            -
                if  
     | 
| 
      
 102 
     | 
    
         
            +
                if ProductIndex.connection.version.to_i >= 5
         
     | 
| 
       103 
103 
     | 
    
         
             
                  {
         
     | 
| 
       104 
104 
     | 
    
         
             
                    products: {
         
     | 
| 
       105 
105 
     | 
    
         
             
                      properties: {
         
     | 
| 
         @@ -180,7 +180,7 @@ class SearchFlip::TestCase < MiniTest::Test 
     | 
|
| 
       180 
180 
     | 
    
         | 
| 
       181 
181 
     | 
    
         
             
                  assert target.respond_to?(as), "#{to} doesn't respond to #{as}"
         
     | 
| 
       182 
182 
     | 
    
         | 
| 
       183 
     | 
    
         
            -
                  params = subject.method(method).arity.abs 
     | 
| 
      
 183 
     | 
    
         
            +
                  params = Array.new(subject.method(method).arity.abs) { |i| "param-#{i}" }
         
     | 
| 
       184 
184 
     | 
    
         | 
| 
       185 
185 
     | 
    
         
             
                  mock_target = mock
         
     | 
| 
       186 
186 
     | 
    
         
             
                  mock_target.expects(as).with(*params)
         
     | 
| 
         @@ -198,7 +198,7 @@ class SearchFlip::TestCase < MiniTest::Test 
     | 
|
| 
       198 
198 
     | 
    
         
             
              end
         
     | 
| 
       199 
199 
     | 
    
         | 
| 
       200 
200 
     | 
    
         
             
              def assert_difference(expressions, difference = 1, &block)
         
     | 
| 
       201 
     | 
    
         
            -
                callables = Array(expressions).map { |e|  
     | 
| 
      
 201 
     | 
    
         
            +
                callables = Array(expressions).map { |e| -> { eval(e, block.binding) } }
         
     | 
| 
       202 
202 
     | 
    
         | 
| 
       203 
203 
     | 
    
         
             
                before = callables.map(&:call)
         
     | 
| 
       204 
204 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,31 +1,31 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: search_flip
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.0.beta
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Benjamin Vetter
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-02-20 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name:  
     | 
| 
      
 14 
     | 
    
         
            +
              name: activerecord
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - ">="
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :development
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - ">="
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name:  
     | 
| 
      
 28 
     | 
    
         
            +
              name: bundler
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
31 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -39,7 +39,7 @@ dependencies: 
     | 
|
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name:  
     | 
| 
      
 42 
     | 
    
         
            +
              name: factory_bot
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
45 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -53,7 +53,7 @@ dependencies: 
     | 
|
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
54 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       55 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
     | 
    
         
            -
              name:  
     | 
| 
      
 56 
     | 
    
         
            +
              name: minitest
         
     | 
| 
       57 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
59 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -67,7 +67,7 @@ dependencies: 
     | 
|
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
68 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
     | 
    
         
            -
              name:  
     | 
| 
      
 70 
     | 
    
         
            +
              name: mocha
         
     | 
| 
       71 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       72 
72 
     | 
    
         
             
                requirements:
         
     | 
| 
       73 
73 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -81,7 +81,7 @@ dependencies: 
     | 
|
| 
       81 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
82 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       83 
83 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
     | 
    
         
            -
              name:  
     | 
| 
      
 84 
     | 
    
         
            +
              name: rake
         
     | 
| 
       85 
85 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       86 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       87 
87 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -95,21 +95,21 @@ dependencies: 
     | 
|
| 
       95 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
96 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       97 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
     | 
    
         
            -
              name:  
     | 
| 
      
 98 
     | 
    
         
            +
              name: sqlite3
         
     | 
| 
       99 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       101 
     | 
    
         
            -
                - - " 
     | 
| 
      
 101 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       102 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
     | 
    
         
            -
                    version:  
     | 
| 
      
 103 
     | 
    
         
            +
                    version: 1.3.6
         
     | 
| 
       104 
104 
     | 
    
         
             
              type: :development
         
     | 
| 
       105 
105 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       106 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       108 
     | 
    
         
            -
                - - " 
     | 
| 
      
 108 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       109 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
     | 
    
         
            -
                    version:  
     | 
| 
      
 110 
     | 
    
         
            +
                    version: 1.3.6
         
     | 
| 
       111 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
     | 
    
         
            -
              name:  
     | 
| 
      
 112 
     | 
    
         
            +
              name: timecop
         
     | 
| 
       113 
113 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
114 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
115 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -123,7 +123,7 @@ dependencies: 
     | 
|
| 
       123 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
124 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       125 
125 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
     | 
    
         
            -
              name:  
     | 
| 
      
 126 
     | 
    
         
            +
              name: webmock
         
     | 
| 
       127 
127 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
128 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
129 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -137,7 +137,7 @@ dependencies: 
     | 
|
| 
       137 
137 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
138 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       139 
139 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
     | 
    
         
            -
              name:  
     | 
| 
      
 140 
     | 
    
         
            +
              name: hashie
         
     | 
| 
       141 
141 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
142 
     | 
    
         
             
                requirements:
         
     | 
| 
       143 
143 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -151,7 +151,7 @@ dependencies: 
     | 
|
| 
       151 
151 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
152 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       153 
153 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       154 
     | 
    
         
            -
              name:  
     | 
| 
      
 154 
     | 
    
         
            +
              name: http
         
     | 
| 
       155 
155 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       156 
156 
     | 
    
         
             
                requirements:
         
     | 
| 
       157 
157 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -186,18 +186,22 @@ extensions: [] 
     | 
|
| 
       186 
186 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       187 
187 
     | 
    
         
             
            files:
         
     | 
| 
       188 
188 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
      
 189 
     | 
    
         
            +
            - ".rubocop.yml"
         
     | 
| 
       189 
190 
     | 
    
         
             
            - ".travis.yml"
         
     | 
| 
       190 
191 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       191 
192 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       192 
193 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       193 
194 
     | 
    
         
             
            - README.md
         
     | 
| 
       194 
195 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 196 
     | 
    
         
            +
            - docker-compose.yml
         
     | 
| 
       195 
197 
     | 
    
         
             
            - lib/search_flip.rb
         
     | 
| 
       196 
198 
     | 
    
         
             
            - lib/search_flip/aggregatable.rb
         
     | 
| 
       197 
199 
     | 
    
         
             
            - lib/search_flip/aggregation.rb
         
     | 
| 
       198 
200 
     | 
    
         
             
            - lib/search_flip/bulk.rb
         
     | 
| 
       199 
201 
     | 
    
         
             
            - lib/search_flip/config.rb
         
     | 
| 
      
 202 
     | 
    
         
            +
            - lib/search_flip/connection.rb
         
     | 
| 
       200 
203 
     | 
    
         
             
            - lib/search_flip/criteria.rb
         
     | 
| 
      
 204 
     | 
    
         
            +
            - lib/search_flip/exceptions.rb
         
     | 
| 
       201 
205 
     | 
    
         
             
            - lib/search_flip/filterable.rb
         
     | 
| 
       202 
206 
     | 
    
         
             
            - lib/search_flip/http_client.rb
         
     | 
| 
       203 
207 
     | 
    
         
             
            - lib/search_flip/index.rb
         
     | 
| 
         @@ -209,16 +213,15 @@ files: 
     | 
|
| 
       209 
213 
     | 
    
         
             
            - lib/search_flip/to_json.rb
         
     | 
| 
       210 
214 
     | 
    
         
             
            - lib/search_flip/version.rb
         
     | 
| 
       211 
215 
     | 
    
         
             
            - search_flip.gemspec
         
     | 
| 
       212 
     | 
    
         
            -
            - test/database.yml
         
     | 
| 
       213 
216 
     | 
    
         
             
            - test/search_flip/aggregation_test.rb
         
     | 
| 
       214 
217 
     | 
    
         
             
            - test/search_flip/bulk_test.rb
         
     | 
| 
      
 218 
     | 
    
         
            +
            - test/search_flip/connection_test.rb
         
     | 
| 
       215 
219 
     | 
    
         
             
            - test/search_flip/criteria_test.rb
         
     | 
| 
       216 
220 
     | 
    
         
             
            - test/search_flip/http_client_test.rb
         
     | 
| 
       217 
221 
     | 
    
         
             
            - test/search_flip/index_test.rb
         
     | 
| 
       218 
222 
     | 
    
         
             
            - test/search_flip/model_test.rb
         
     | 
| 
       219 
223 
     | 
    
         
             
            - test/search_flip/response_test.rb
         
     | 
| 
       220 
224 
     | 
    
         
             
            - test/search_flip/to_json_test.rb
         
     | 
| 
       221 
     | 
    
         
            -
            - test/search_flip_test.rb
         
     | 
| 
       222 
225 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       223 
226 
     | 
    
         
             
            homepage: https://github.com/mrkamel/search_flip
         
     | 
| 
       224 
227 
     | 
    
         
             
            licenses:
         
     | 
| 
         @@ -235,24 +238,23 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       235 
238 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       236 
239 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       237 
240 
     | 
    
         
             
              requirements:
         
     | 
| 
       238 
     | 
    
         
            -
              - - " 
     | 
| 
      
 241 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       239 
242 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       240 
     | 
    
         
            -
                  version:  
     | 
| 
      
 243 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       241 
244 
     | 
    
         
             
            requirements: []
         
     | 
| 
       242 
245 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       243 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 246 
     | 
    
         
            +
            rubygems_version: 2.7.3
         
     | 
| 
       244 
247 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       245 
248 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       246 
249 
     | 
    
         
             
            summary: Powerful ElasticSearch client library to easily build complex queries
         
     | 
| 
       247 
250 
     | 
    
         
             
            test_files:
         
     | 
| 
       248 
     | 
    
         
            -
            - test/database.yml
         
     | 
| 
       249 
251 
     | 
    
         
             
            - test/search_flip/aggregation_test.rb
         
     | 
| 
       250 
252 
     | 
    
         
             
            - test/search_flip/bulk_test.rb
         
     | 
| 
      
 253 
     | 
    
         
            +
            - test/search_flip/connection_test.rb
         
     | 
| 
       251 
254 
     | 
    
         
             
            - test/search_flip/criteria_test.rb
         
     | 
| 
       252 
255 
     | 
    
         
             
            - test/search_flip/http_client_test.rb
         
     | 
| 
       253 
256 
     | 
    
         
             
            - test/search_flip/index_test.rb
         
     | 
| 
       254 
257 
     | 
    
         
             
            - test/search_flip/model_test.rb
         
     | 
| 
       255 
258 
     | 
    
         
             
            - test/search_flip/response_test.rb
         
     | 
| 
       256 
259 
     | 
    
         
             
            - test/search_flip/to_json_test.rb
         
     | 
| 
       257 
     | 
    
         
            -
            - test/search_flip_test.rb
         
     | 
| 
       258 
260 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
    
        data/test/database.yml
    DELETED
    
    
    
        data/test/search_flip_test.rb
    DELETED
    
    | 
         @@ -1,26 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
            require File.expand_path("../test_helper", __FILE__)
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            class SearchFlipTest < SearchFlip::TestCase
         
     | 
| 
       5 
     | 
    
         
            -
              def test_msearch
         
     | 
| 
       6 
     | 
    
         
            -
                ProductIndex.import create(:product)
         
     | 
| 
       7 
     | 
    
         
            -
                CommentIndex.import create(:comment)
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                responses = SearchFlip.msearch([ProductIndex.match_all, CommentIndex.match_all])
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                assert_equal 2, responses.size
         
     | 
| 
       12 
     | 
    
         
            -
                assert_equal 1, responses[0].total_entries
         
     | 
| 
       13 
     | 
    
         
            -
                assert_equal 1, responses[1].total_entries
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def test_aliases
         
     | 
| 
       17 
     | 
    
         
            -
                assert SearchFlip.aliases(actions: [
         
     | 
| 
       18 
     | 
    
         
            -
                  add: { index: "products", alias: "alias1" }
         
     | 
| 
       19 
     | 
    
         
            -
                ])
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                assert SearchFlip.aliases(actions: [
         
     | 
| 
       22 
     | 
    
         
            -
                  remove: { index: "products", alias: "alias1" }
         
     | 
| 
       23 
     | 
    
         
            -
                ])
         
     | 
| 
       24 
     | 
    
         
            -
              end
         
     | 
| 
       25 
     | 
    
         
            -
            end
         
     | 
| 
       26 
     | 
    
         
            -
             
     |