sunspot_mongo 1.1.0 → 1.2.0
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 +4 -4
- data/.rubocop_todo.yml +12 -9
- data/CHANGELOG.md +7 -0
- data/README.md +5 -1
- data/UPGRADING.md +8 -0
- data/lib/sunspot/mongo.rb +15 -2
- data/lib/sunspot/mongo/tasks.rb +16 -15
- data/lib/sunspot/mongo/version.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/sunspot_mongo_spec.rb +14 -0
- data/spec/support/models/mongoid.rb +11 -0
- data/spec/support/rails.rb +5 -0
- data/sunspot_mongo.gemspec +2 -1
- metadata +9 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0b69f799044bedbdd34c2e51e95ea5b7de468da6
         | 
| 4 | 
            +
              data.tar.gz: 4dde9885c91e575ace88a47e92b543046ea75b0c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d81247aaf38e4dbe82cd1f7606b4365d8e290d165a1296c315234d04018d6b39073ec946fdddc0e81f4a4fb4f7a2dd30b6a584eb4665ebc70e3747e03a25817c
         | 
| 7 | 
            +
              data.tar.gz: 95a1f3a371d16bcb577f407ef32a363c37ee6819c9d784db5ab970f1d3181eab06a94f7cc8f6c48781a41cdb443e10488565482cd8ad7d428dcfb771151934f1
         | 
    
        data/.rubocop_todo.yml
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 | 
            -
            # This configuration was generated by | 
| 2 | 
            -
            #  | 
| 1 | 
            +
            # This configuration was generated by
         | 
| 2 | 
            +
            # `rubocop --auto-gen-config`
         | 
| 3 | 
            +
            # on 2015-08-28 12:21:38 -0400 using RuboCop version 0.33.0.
         | 
| 3 4 | 
             
            # The point is for the user to remove these configuration records
         | 
| 4 5 | 
             
            # one by one as the offenses are removed from the code base.
         | 
| 5 6 | 
             
            # Note that changes in the inspected code, or installation of new
         | 
| @@ -9,7 +10,7 @@ | |
| 9 10 | 
             
            Metrics/AbcSize:
         | 
| 10 11 | 
             
              Max: 20
         | 
| 11 12 |  | 
| 12 | 
            -
            # Offense count:  | 
| 13 | 
            +
            # Offense count: 9
         | 
| 13 14 | 
             
            # Configuration parameters: AllowURI, URISchemes.
         | 
| 14 15 | 
             
            Metrics/LineLength:
         | 
| 15 16 | 
             
              Max: 124
         | 
| @@ -19,10 +20,12 @@ Metrics/LineLength: | |
| 19 20 | 
             
            Metrics/MethodLength:
         | 
| 20 21 | 
             
              Max: 15
         | 
| 21 22 |  | 
| 22 | 
            -
            # Offense count:  | 
| 23 | 
            +
            # Offense count: 10
         | 
| 23 24 | 
             
            Style/Documentation:
         | 
| 24 | 
            -
               | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 25 | 
            +
              Exclude:
         | 
| 26 | 
            +
                - 'lib/sunspot/mongo.rb'
         | 
| 27 | 
            +
                - 'lib/sunspot/mongo/railtie.rb'
         | 
| 28 | 
            +
                - 'lib/sunspot/mongo/version.rb'
         | 
| 29 | 
            +
                - 'spec/support/models/mongo_mapper.rb'
         | 
| 30 | 
            +
                - 'spec/support/models/mongoid.rb'
         | 
| 31 | 
            +
                - 'spec/support/rails.rb'
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            #### 1.2.0 (2015/08/28)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * [#9](https://github.com/derekharmel/sunspot_mongo/pull/9): Changed `DataAccessor` to fix support for eager loading of associations - [@cec](https://github.com/cec).
         | 
| 4 | 
            +
            * [#9](https://github.com/derekharmel/sunspot_mongo/pull/9): Changed `rake sunspot:mongo:reindex` to support namespaced models - [@cec](https://github.com/cec).
         | 
| 5 | 
            +
            * [#9](https://github.com/derekharmel/sunspot_mongo/pull/9): Renamed `rake sunspot:mongo:reindex` to `sunspot:reindex`, overriding Sunspot's original task - [@cec](https://github.com/cec).
         | 
| 6 | 
            +
            * [#9](https://github.com/derekharmel/sunspot_mongo/pull/9): Added UPGRADING - [@cec](https://github.com/cec).
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            #### 1.1.0 (2015/01/27)
         | 
| 2 9 |  | 
| 3 10 | 
             
            * Changed `DataAccessor#load_all` to use the `.find` method for MongoMapper and Mongoid for loading a group of documents - [@derekharmel](https://github.com/derekharmel).
         | 
    
        data/README.md
    CHANGED
    
    | @@ -35,6 +35,10 @@ rails g sunspot_rails:install | |
| 35 35 | 
             
            rake sunspot:solr:start
         | 
| 36 36 | 
             
            ```
         | 
| 37 37 |  | 
| 38 | 
            +
            ## Upgrading
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            When upgrading to a new version, don't forget to check [UPGRADING](UPGRADING.md) for notes about breaking changes.
         | 
| 41 | 
            +
             | 
| 38 42 | 
             
            ## Usage
         | 
| 39 43 |  | 
| 40 44 | 
             
            Add the following to your model (assuming you have a string field named "content"):
         | 
| @@ -64,7 +68,7 @@ If you are using Rails, objects are automatically indexed to Solr as a part of t | |
| 64 68 | 
             
            If you make a change to the object's "schema" (code in the searchable block), you must reindex all objects so the changes are reflected in Solr. Run:
         | 
| 65 69 |  | 
| 66 70 | 
             
            ```
         | 
| 67 | 
            -
            bundle exec rake sunspot: | 
| 71 | 
            +
            bundle exec rake sunspot:reindex
         | 
| 68 72 | 
             
            ```
         | 
| 69 73 |  | 
| 70 74 | 
             
            ## More info
         | 
    
        data/UPGRADING.md
    ADDED
    
    | @@ -0,0 +1,8 @@ | |
| 1 | 
            +
            Upgrading SunspotMongo
         | 
| 2 | 
            +
            ======================
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ### Upgrading to >= 1.2.0
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            The Rake task `sunspot:mongo:reindex` has been renamed to `sunspot:reindex` and now overrides the original Rake task from Sunspot.
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            See [#9](https://github.com/derekhamel/sunspot_mongo/pull/9) for more information.
         | 
    
        data/lib/sunspot/mongo.rb
    CHANGED
    
    | @@ -18,12 +18,25 @@ module Sunspot | |
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 20 | 
             
                class DataAccessor < Sunspot::Adapters::DataAccessor
         | 
| 21 | 
            +
                  attr_accessor :include
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  # inspired by how Sunspot does this for ActiveRecord
         | 
| 24 | 
            +
                  def initialize(clazz)
         | 
| 25 | 
            +
                    super(clazz)
         | 
| 26 | 
            +
                    @inherited_attributes = [:include]
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
             | 
| 21 29 | 
             
                  def load(id)
         | 
| 22 | 
            -
                     | 
| 30 | 
            +
                    scope.find(id)
         | 
| 23 31 | 
             
                  end
         | 
| 24 32 |  | 
| 25 33 | 
             
                  def load_all(ids)
         | 
| 26 | 
            -
                     | 
| 34 | 
            +
                    scope.find(ids)
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  def scope
         | 
| 38 | 
            +
                    sc = @clazz.respond_to?(:criteria) ? @clazz.criteria : @clazz
         | 
| 39 | 
            +
                    @include ? sc.includes(@include) : sc
         | 
| 27 40 | 
             
                  end
         | 
| 28 41 | 
             
                end
         | 
| 29 42 | 
             
              end
         | 
    
        data/lib/sunspot/mongo/tasks.rb
    CHANGED
    
    | @@ -1,20 +1,21 @@ | |
| 1 | 
            +
            # Delete reindex task registered by sunspot_rails
         | 
| 2 | 
            +
            tasks = Rake.application.instance_variable_get '@tasks'
         | 
| 3 | 
            +
            tasks.delete 'sunspot:reindex'
         | 
| 4 | 
            +
             | 
| 1 5 | 
             
            namespace :sunspot do
         | 
| 2 | 
            -
               | 
| 3 | 
            -
             | 
| 4 | 
            -
                 | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
                                    | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
                                     all_models.select { |m| m.include?(Sunspot::Mongo) && m.searchable? }
         | 
| 11 | 
            -
                                   end
         | 
| 6 | 
            +
              desc "Reindex all models that include Sunspot::Mongo and are located in your application's models directory."
         | 
| 7 | 
            +
              task :reindex, [:models] => :environment do |_t, args|
         | 
| 8 | 
            +
                sunspot_models = if args[:models]
         | 
| 9 | 
            +
                                   args[:models].split('+').map(&:constantize)
         | 
| 10 | 
            +
                                 else
         | 
| 11 | 
            +
                                   Rails.application.eager_load!
         | 
| 12 | 
            +
                                   Sunspot.searchable # when a model calls searchable, it registers itself to Sunspot
         | 
| 13 | 
            +
                                 end
         | 
| 12 14 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
                  end
         | 
| 15 | 
            +
                sunspot_models.each do |model|
         | 
| 16 | 
            +
                  puts "reindexing #{model}"
         | 
| 17 | 
            +
                  model.all.each(&:index)
         | 
| 18 | 
            +
                  Sunspot.commit
         | 
| 18 19 | 
             
                end
         | 
| 19 20 | 
             
              end
         | 
| 20 21 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require 'rails'
         | 
| 2 2 | 
             
            require 'sunspot_mongo'
         | 
| 3 | 
            +
            require 'support/rails'
         | 
| 3 4 |  | 
| 4 5 | 
             
            ENV['MONGOID_VERSION'] = '4' unless ENV['MONGOID_VERSION'] || ENV['MONGO_MAPPER_VERSION']
         | 
| 5 6 |  | 
| @@ -17,7 +18,7 @@ require 'shared_examples' | |
| 17 18 | 
             
            def setup_servers_and_connections
         | 
| 18 19 | 
             
              FileUtils.mkdir_p '/tmp/sunspot_mongo_test/'
         | 
| 19 20 |  | 
| 20 | 
            -
              @solr_pid | 
| 21 | 
            +
              @solr_pid = fork { `sunspot-solr start --log-file=solr.log --data-directory=data --log-level=INFO --port=8900` }
         | 
| 21 22 | 
             
              sleep 5
         | 
| 22 23 |  | 
| 23 24 | 
             
              if ENV['MONGOID_VERSION']
         | 
    
        data/spec/sunspot_mongo_spec.rb
    CHANGED
    
    | @@ -19,6 +19,20 @@ describe 'Sunspot::Mongo' do | |
| 19 19 | 
             
              if ENV['MONGOID_VERSION']
         | 
| 20 20 | 
             
                describe MongoidTestDocument do
         | 
| 21 21 | 
             
                  it_behaves_like 'a mongo document'
         | 
| 22 | 
            +
                  it 'eager-loads associations specified through :include option' do
         | 
| 23 | 
            +
                    test_doc = MongoidTestDocument.create title: 'So much foo, so little bar.'
         | 
| 24 | 
            +
                    test_tag = MongoidTestDocumentTag.create name: 'A tag'
         | 
| 25 | 
            +
                    test_doc.tags << test_tag
         | 
| 26 | 
            +
                    test_doc.save
         | 
| 27 | 
            +
                    test_doc.index!
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    search = MongoidTestDocument.solr_search(include: :tags) do
         | 
| 30 | 
            +
                      fulltext 'foo'
         | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
                    expect(search.hits.length).to eql 1
         | 
| 33 | 
            +
                    expect(search.results.first).to eql test_doc
         | 
| 34 | 
            +
                    expect(search.results.first.tags).to match [test_tag]
         | 
| 35 | 
            +
                  end
         | 
| 22 36 | 
             
                end
         | 
| 23 37 | 
             
                describe 'test documents with options' do
         | 
| 24 38 | 
             
                  it 'should set sunspot_options' do
         | 
| @@ -4,7 +4,18 @@ class MongoidTestDocument | |
| 4 4 |  | 
| 5 5 | 
             
              field :title
         | 
| 6 6 |  | 
| 7 | 
            +
              has_and_belongs_to_many :tags, class_name: 'MongoidTestDocumentTag'
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
              searchable do
         | 
| 8 10 | 
             
                text :title
         | 
| 9 11 | 
             
              end
         | 
| 10 12 | 
             
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            class MongoidTestDocumentTag
         | 
| 15 | 
            +
              include Mongoid::Document
         | 
| 16 | 
            +
              include Sunspot::Mongo
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              field :name
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              has_and_belongs_to_many :documents, class_name: 'MongoidTestDocument'
         | 
| 21 | 
            +
            end
         | 
    
        data/sunspot_mongo.gemspec
    CHANGED
    
    | @@ -10,6 +10,7 @@ Gem::Specification.new do |s| | |
| 10 10 | 
             
              s.homepage    = 'https://github.com/derekharmel/sunspot_mongo'
         | 
| 11 11 | 
             
              s.summary     = 'Sunspot support for Mongo Mapper and Mongoid.'
         | 
| 12 12 | 
             
              s.description = 'Sunspot support for Mongo Mapper and Mongoid.'
         | 
| 13 | 
            +
              s.license     = 'MIT'
         | 
| 13 14 |  | 
| 14 15 | 
             
              s.rubyforge_project = 'sunspot_mongo'
         | 
| 15 16 |  | 
| @@ -25,5 +26,5 @@ Gem::Specification.new do |s| | |
| 25 26 | 
             
              s.add_development_dependency 'guard'
         | 
| 26 27 | 
             
              s.add_development_dependency 'guard-rspec'
         | 
| 27 28 | 
             
              s.add_development_dependency 'sunspot_solr', '2.0.0'
         | 
| 28 | 
            -
              s.add_development_dependency 'rubocop', '0. | 
| 29 | 
            +
              s.add_development_dependency 'rubocop', '0.33.0'
         | 
| 29 30 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sunspot_mongo
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brian Alexander
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015- | 
| 12 | 
            +
            date: 2015-08-28 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: sunspot_rails
         | 
| @@ -101,14 +101,14 @@ dependencies: | |
| 101 101 | 
             
                requirements:
         | 
| 102 102 | 
             
                - - '='
         | 
| 103 103 | 
             
                  - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                    version: 0. | 
| 104 | 
            +
                    version: 0.33.0
         | 
| 105 105 | 
             
              type: :development
         | 
| 106 106 | 
             
              prerelease: false
         | 
| 107 107 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 108 108 | 
             
                requirements:
         | 
| 109 109 | 
             
                - - '='
         | 
| 110 110 | 
             
                  - !ruby/object:Gem::Version
         | 
| 111 | 
            -
                    version: 0. | 
| 111 | 
            +
                    version: 0.33.0
         | 
| 112 112 | 
             
            description: Sunspot support for Mongo Mapper and Mongoid.
         | 
| 113 113 | 
             
            email:
         | 
| 114 114 | 
             
            - balexand@gmail.com
         | 
| @@ -129,6 +129,7 @@ files: | |
| 129 129 | 
             
            - LICENSE
         | 
| 130 130 | 
             
            - README.md
         | 
| 131 131 | 
             
            - Rakefile
         | 
| 132 | 
            +
            - UPGRADING.md
         | 
| 132 133 | 
             
            - lib/sunspot/mongo.rb
         | 
| 133 134 | 
             
            - lib/sunspot/mongo/railtie.rb
         | 
| 134 135 | 
             
            - lib/sunspot/mongo/tasks.rb
         | 
| @@ -139,9 +140,11 @@ files: | |
| 139 140 | 
             
            - spec/sunspot_mongo_spec.rb
         | 
| 140 141 | 
             
            - spec/support/models/mongo_mapper.rb
         | 
| 141 142 | 
             
            - spec/support/models/mongoid.rb
         | 
| 143 | 
            +
            - spec/support/rails.rb
         | 
| 142 144 | 
             
            - sunspot_mongo.gemspec
         | 
| 143 145 | 
             
            homepage: https://github.com/derekharmel/sunspot_mongo
         | 
| 144 | 
            -
            licenses: | 
| 146 | 
            +
            licenses:
         | 
| 147 | 
            +
            - MIT
         | 
| 145 148 | 
             
            metadata: {}
         | 
| 146 149 | 
             
            post_install_message: 
         | 
| 147 150 | 
             
            rdoc_options: []
         | 
| @@ -169,3 +172,4 @@ test_files: | |
| 169 172 | 
             
            - spec/sunspot_mongo_spec.rb
         | 
| 170 173 | 
             
            - spec/support/models/mongo_mapper.rb
         | 
| 171 174 | 
             
            - spec/support/models/mongoid.rb
         | 
| 175 | 
            +
            - spec/support/rails.rb
         |