picky 4.0.7 → 4.0.8
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.
| @@ -5,15 +5,16 @@ module Picky | |
| 5 5 |  | 
| 6 6 | 
             
                  def self.extended base
         | 
| 7 7 | 
             
                    base.post '/' do
         | 
| 8 | 
            -
                      index_name = params[ | 
| 8 | 
            +
                      index_name = params['index']
         | 
| 9 9 | 
             
                      index = Picky::Indexes[index_name.to_sym]
         | 
| 10 | 
            -
                      data = params[ | 
| 11 | 
            -
                      index.replace_from data if data
         | 
| 10 | 
            +
                      data = params['data']
         | 
| 11 | 
            +
                      index.replace_from Yajl::Parser.parse(data) if data
         | 
| 12 12 | 
             
                    end
         | 
| 13 13 | 
             
                    base.delete '/' do
         | 
| 14 | 
            -
                      index_name = params[ | 
| 14 | 
            +
                      index_name = params['index']
         | 
| 15 15 | 
             
                      index = Picky::Indexes[index_name.to_sym]
         | 
| 16 | 
            -
                       | 
| 16 | 
            +
                      data = Yajl::Parser.parse params['data']
         | 
| 17 | 
            +
                      id = data['id']
         | 
| 17 18 | 
             
                      index.remove id if id
         | 
| 18 19 | 
             
                    end
         | 
| 19 20 | 
             
                  end
         | 
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            require 'Yajl'
         | 
| 2 | 
            +
            require 'sinatra'
         | 
| 3 | 
            +
            require 'picky-client'
         | 
| 4 | 
            +
            require 'spec_helper'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            describe 'Sinatra Index Actions' do
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              # This is the application that is tested.
         | 
| 9 | 
            +
              #
         | 
| 10 | 
            +
              class MyPickyServer < Sinatra::Base
         | 
| 11 | 
            +
                extend Picky::Sinatra::IndexActions
         | 
| 12 | 
            +
                
         | 
| 13 | 
            +
                data = Picky::Index.new :index do
         | 
| 14 | 
            +
                  category :name
         | 
| 15 | 
            +
                  category :surname
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
                people = Picky::Search.new data
         | 
| 18 | 
            +
                
         | 
| 19 | 
            +
                get '/people' do
         | 
| 20 | 
            +
                  results = people.search params[:query], params[:ids] || 20, params[:offset] || 0
         | 
| 21 | 
            +
                  results.to_json
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
              
         | 
| 25 | 
            +
              describe 'updating' do
         | 
| 26 | 
            +
                before(:each) do
         | 
| 27 | 
            +
                  Picky::Indexes.clear
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                let(:request) { ::Rack::MockRequest.new MyPickyServer }
         | 
| 30 | 
            +
                it 'should update the index correctly' do
         | 
| 31 | 
            +
                  request.post('/', params: { index: 'index', data: %Q{{ "id":"1", "name":"Florian", "surname":"Hanke" }} })
         | 
| 32 | 
            +
                  
         | 
| 33 | 
            +
                  results = Yajl::Parser.parse request.get('/people', params: { query: 'florian' }).body
         | 
| 34 | 
            +
                  results['total'].should == 1
         | 
| 35 | 
            +
                  
         | 
| 36 | 
            +
                  request.post('/', params: { index: 'index', data: %Q{{ "id":"2", "name":"Florian", "surname":"Meier" }} })
         | 
| 37 | 
            +
                  
         | 
| 38 | 
            +
                  results = Yajl::Parser.parse request.get('/people', params: { query: 'florian' }).body
         | 
| 39 | 
            +
                  results['total'].should == 2
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
                it 'should delete entries from the index correctly' do
         | 
| 42 | 
            +
                  request.post('/', params: { index: 'index', data: %Q{{ "id":"1", "name":"Florian", "surname":"Hanke" }} })
         | 
| 43 | 
            +
                  request.post('/', params: { index: 'index', data: %Q{{ "id":"2", "name":"Florian", "surname":"Meier" }} })
         | 
| 44 | 
            +
                  
         | 
| 45 | 
            +
                  results = Yajl::Parser.parse request.get('/people', params: { query: 'florian' }).body
         | 
| 46 | 
            +
                  results['total'].should == 2
         | 
| 47 | 
            +
                  
         | 
| 48 | 
            +
                  request.delete('/', params: { index: 'index', data: %Q{{ "id":"1" }} })
         | 
| 49 | 
            +
                  
         | 
| 50 | 
            +
                  results = Yajl::Parser.parse request.get('/people', params: { query: 'florian' }).body
         | 
| 51 | 
            +
                  results['total'].should == 1
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
                it 'should have no problem with a superfluous delete' do
         | 
| 54 | 
            +
                  request.delete('/', params: { index: 'index', data: %Q{{ "id":"1" }} })
         | 
| 55 | 
            +
                  
         | 
| 56 | 
            +
                  results = Yajl::Parser.parse request.get('/people', params: { query: 'florian' }).body
         | 
| 57 | 
            +
                  results['total'].should == 0
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
              
         | 
| 61 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: picky
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4.0. | 
| 4 | 
            +
              version: 4.0.8
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -13,7 +13,7 @@ date: 2012-01-06 00:00:00.000000000 Z | |
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rspec
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70173949808360 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,21 +21,21 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70173949808360
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: picky-client
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70173949807420 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version: 4.0. | 
| 32 | 
            +
                    version: 4.0.8
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70173949807420
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: text
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70173949821340 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :runtime
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70173949821340
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: yajl-ruby
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70173949819100 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70173949819100
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: activesupport
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70173949818100 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ~>
         | 
| @@ -65,10 +65,10 @@ dependencies: | |
| 65 65 | 
             
                    version: '3.0'
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70173949818100
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: procrastinate
         | 
| 71 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70173949814720 !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                none: false
         | 
| 73 73 | 
             
                requirements:
         | 
| 74 74 | 
             
                - - ~>
         | 
| @@ -76,10 +76,10 @@ dependencies: | |
| 76 76 | 
             
                    version: '0.4'
         | 
| 77 77 | 
             
              type: :runtime
         | 
| 78 78 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70173949814720
         | 
| 80 80 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 81 | 
             
              name: rack_fast_escape
         | 
| 82 | 
            -
              requirement: & | 
| 82 | 
            +
              requirement: &70173949830000 !ruby/object:Gem::Requirement
         | 
| 83 83 | 
             
                none: false
         | 
| 84 84 | 
             
                requirements:
         | 
| 85 85 | 
             
                - - ! '>='
         | 
| @@ -87,7 +87,7 @@ dependencies: | |
| 87 87 | 
             
                    version: '0'
         | 
| 88 88 | 
             
              type: :runtime
         | 
| 89 89 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements: * | 
| 90 | 
            +
              version_requirements: *70173949830000
         | 
| 91 91 | 
             
            description: Fast Ruby semantic text search engine with comfortable single field interface.
         | 
| 92 92 | 
             
            email: florian.hanke+picky@gmail.com
         | 
| 93 93 | 
             
            executables:
         | 
| @@ -253,6 +253,7 @@ files: | |
| 253 253 | 
             
            - spec/functional/regression_spec.rb
         | 
| 254 254 | 
             
            - spec/functional/speed_spec.rb
         | 
| 255 255 | 
             
            - spec/functional/terminate_early_spec.rb
         | 
| 256 | 
            +
            - spec/integration/sinatra_index_actions_spec.rb
         | 
| 256 257 | 
             
            - spec/lib/analytics_spec.rb
         | 
| 257 258 | 
             
            - spec/lib/analyzer_spec.rb
         | 
| 258 259 | 
             
            - spec/lib/api/category/partial_spec.rb
         | 
| @@ -397,6 +398,7 @@ test_files: | |
| 397 398 | 
             
            - spec/functional/regression_spec.rb
         | 
| 398 399 | 
             
            - spec/functional/speed_spec.rb
         | 
| 399 400 | 
             
            - spec/functional/terminate_early_spec.rb
         | 
| 401 | 
            +
            - spec/integration/sinatra_index_actions_spec.rb
         | 
| 400 402 | 
             
            - spec/lib/analytics_spec.rb
         | 
| 401 403 | 
             
            - spec/lib/analyzer_spec.rb
         | 
| 402 404 | 
             
            - spec/lib/api/category/partial_spec.rb
         |