base_indexer 3.0.0 → 4.0.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/.gitignore +40 -0
- data/.travis.yml +17 -0
- data/Gemfile +49 -0
- data/LICENSE +13 -0
- data/README.md +151 -0
- data/app/controllers/base_indexer/about_controller.rb +1 -1
- data/base_indexer.gemspec +40 -0
- data/code_diagram.png +0 -0
- data/config/initializers/base_indexer.rb +0 -2
- data/config/initializers/config.rb +6 -0
- data/lib/base_indexer.rb +0 -3
- data/lib/base_indexer/engine.rb +0 -9
- data/lib/base_indexer/main_indexer_engine.rb +5 -6
- data/lib/base_indexer/solr/client.rb +3 -3
- data/lib/base_indexer/version.rb +1 -1
- data/lib/generators/base_indexer/install_generator.rb +1 -1
- data/lib/generators/base_indexer/templates/settings.yml +5 -0
- data/lib/tasks/index.rake +4 -4
- data/spec/base_indexer/main_indexer_engine_spec.rb +46 -0
- data/spec/base_indexer/solr/client_spec.rb +47 -0
- data/spec/base_indexer/solr/writer_spec.rb +72 -0
- data/spec/controllers/base_indexer/items_controller_spec.rb +36 -0
- data/spec/fixtures/vcr_cassettes/available_mods_xml.yml +105 -0
- data/spec/fixtures/vcr_cassettes/available_purl_xml.yml +110 -0
- data/spec/fixtures/vcr_cassettes/get_collection_name_for_item.yml +197 -0
- data/spec/fixtures/vcr_cassettes/read_mods_in_vaild.yml +154 -0
- data/spec/fixtures/vcr_cassettes/read_mods_vaild.yml +199 -0
- data/spec/fixtures/vcr_cassettes/read_purl_in_vaild.yml +154 -0
- data/spec/fixtures/vcr_cassettes/read_purl_vaild.yml +197 -0
- data/spec/fixtures/vcr_cassettes/rsolr_client_delete.yml +174 -0
- data/spec/fixtures/vcr_cassettes/rsolr_client_index.yml +115 -0
- data/spec/fixtures/vcr_cassettes/rsolr_update.yml +313 -0
- data/spec/spec_helper.rb +112 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +14 -0
- metadata +72 -14
- data/lib/base_indexer/config/solr_configuration.rb +0 -17
- data/lib/base_indexer/config/solr_configuration_from_file.rb +0 -25
- data/lib/generators/base_indexer/templates/solr.yml +0 -4
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
                    require 'rails/generators'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
                    class TestAppGenerator < Rails::Generators::Base
         | 
| 4 | 
            +
                      source_root "./spec/test_app_templates"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                      # if you need to generate any additional configuration
         | 
| 7 | 
            +
                      # into the test app, this generator will be run immediately
         | 
| 8 | 
            +
                      # after setting up the application
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                      def install_engine
         | 
| 11 | 
            +
                        generate 'base_indexer:install'
         | 
| 12 | 
            +
                      end
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
             | 
    
        metadata
    CHANGED
    
    | @@ -1,30 +1,36 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: base_indexer
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 4.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ahmed Alsum
         | 
| 8 8 | 
             
            - Laney McGlohon
         | 
| 9 9 | 
             
            autorequire: 
         | 
| 10 | 
            -
            bindir:  | 
| 10 | 
            +
            bindir: exe
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2017-01-10 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rails
         | 
| 16 16 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                requirements:
         | 
| 18 | 
            -
                - - " | 
| 18 | 
            +
                - - ">="
         | 
| 19 19 | 
             
                  - !ruby/object:Gem::Version
         | 
| 20 20 | 
             
                    version: '4'
         | 
| 21 | 
            +
                - - "<"
         | 
| 22 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 23 | 
            +
                    version: '6'
         | 
| 21 24 | 
             
              type: :runtime
         | 
| 22 25 | 
             
              prerelease: false
         | 
| 23 26 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 24 27 | 
             
                requirements:
         | 
| 25 | 
            -
                - - " | 
| 28 | 
            +
                - - ">="
         | 
| 26 29 | 
             
                  - !ruby/object:Gem::Version
         | 
| 27 30 | 
             
                    version: '4'
         | 
| 31 | 
            +
                - - "<"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '6'
         | 
| 28 34 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 29 35 | 
             
              name: discovery-indexer
         | 
| 30 36 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -32,9 +38,9 @@ dependencies: | |
| 32 38 | 
             
                - - ">="
         | 
| 33 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 34 40 | 
             
                    version: '2'
         | 
| 35 | 
            -
                - - " | 
| 41 | 
            +
                - - "<"
         | 
| 36 42 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            -
                    version: '4 | 
| 43 | 
            +
                    version: '4'
         | 
| 38 44 | 
             
              type: :runtime
         | 
| 39 45 | 
             
              prerelease: false
         | 
| 40 46 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -42,9 +48,9 @@ dependencies: | |
| 42 48 | 
             
                - - ">="
         | 
| 43 49 | 
             
                  - !ruby/object:Gem::Version
         | 
| 44 50 | 
             
                    version: '2'
         | 
| 45 | 
            -
                - - " | 
| 51 | 
            +
                - - "<"
         | 
| 46 52 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '4 | 
| 53 | 
            +
                    version: '4'
         | 
| 48 54 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 55 | 
             
              name: retries
         | 
| 50 56 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -73,6 +79,20 @@ dependencies: | |
| 73 79 | 
             
                - - ">="
         | 
| 74 80 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 81 | 
             
                    version: '0'
         | 
| 82 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 83 | 
            +
              name: config
         | 
| 84 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 85 | 
            +
                requirements:
         | 
| 86 | 
            +
                - - ">="
         | 
| 87 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            +
                    version: '0'
         | 
| 89 | 
            +
              type: :runtime
         | 
| 90 | 
            +
              prerelease: false
         | 
| 91 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 92 | 
            +
                requirements:
         | 
| 93 | 
            +
                - - ">="
         | 
| 94 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            +
                    version: '0'
         | 
| 76 96 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 77 97 | 
             
              name: sqlite3
         | 
| 78 98 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -220,6 +240,11 @@ executables: [] | |
| 220 240 | 
             
            extensions: []
         | 
| 221 241 | 
             
            extra_rdoc_files: []
         | 
| 222 242 | 
             
            files:
         | 
| 243 | 
            +
            - ".gitignore"
         | 
| 244 | 
            +
            - ".travis.yml"
         | 
| 245 | 
            +
            - Gemfile
         | 
| 246 | 
            +
            - LICENSE
         | 
| 247 | 
            +
            - README.md
         | 
| 223 248 | 
             
            - Rakefile
         | 
| 224 249 | 
             
            - app/controllers/base_indexer/about_controller.rb
         | 
| 225 250 | 
             
            - app/controllers/base_indexer/application_controller.rb
         | 
| @@ -230,20 +255,37 @@ files: | |
| 230 255 | 
             
            - app/views/base_indexer/about/version.html.erb
         | 
| 231 256 | 
             
            - app/views/base_indexer/items/destroy.json.erb
         | 
| 232 257 | 
             
            - app/views/base_indexer/items/new.json.erb
         | 
| 258 | 
            +
            - base_indexer.gemspec
         | 
| 259 | 
            +
            - code_diagram.png
         | 
| 233 260 | 
             
            - config/initializers/base_indexer.rb
         | 
| 261 | 
            +
            - config/initializers/config.rb
         | 
| 234 262 | 
             
            - config/routes.rb
         | 
| 235 263 | 
             
            - lib/base_indexer.rb
         | 
| 236 | 
            -
            - lib/base_indexer/config/solr_configuration.rb
         | 
| 237 | 
            -
            - lib/base_indexer/config/solr_configuration_from_file.rb
         | 
| 238 264 | 
             
            - lib/base_indexer/engine.rb
         | 
| 239 265 | 
             
            - lib/base_indexer/main_indexer_engine.rb
         | 
| 240 266 | 
             
            - lib/base_indexer/solr/client.rb
         | 
| 241 267 | 
             
            - lib/base_indexer/solr/writer.rb
         | 
| 242 268 | 
             
            - lib/base_indexer/version.rb
         | 
| 243 269 | 
             
            - lib/generators/base_indexer/install_generator.rb
         | 
| 244 | 
            -
            - lib/generators/base_indexer/templates/ | 
| 270 | 
            +
            - lib/generators/base_indexer/templates/settings.yml
         | 
| 245 271 | 
             
            - lib/tasks/base_indexer_tasks.rake
         | 
| 246 272 | 
             
            - lib/tasks/index.rake
         | 
| 273 | 
            +
            - spec/base_indexer/main_indexer_engine_spec.rb
         | 
| 274 | 
            +
            - spec/base_indexer/solr/client_spec.rb
         | 
| 275 | 
            +
            - spec/base_indexer/solr/writer_spec.rb
         | 
| 276 | 
            +
            - spec/controllers/base_indexer/items_controller_spec.rb
         | 
| 277 | 
            +
            - spec/fixtures/vcr_cassettes/available_mods_xml.yml
         | 
| 278 | 
            +
            - spec/fixtures/vcr_cassettes/available_purl_xml.yml
         | 
| 279 | 
            +
            - spec/fixtures/vcr_cassettes/get_collection_name_for_item.yml
         | 
| 280 | 
            +
            - spec/fixtures/vcr_cassettes/read_mods_in_vaild.yml
         | 
| 281 | 
            +
            - spec/fixtures/vcr_cassettes/read_mods_vaild.yml
         | 
| 282 | 
            +
            - spec/fixtures/vcr_cassettes/read_purl_in_vaild.yml
         | 
| 283 | 
            +
            - spec/fixtures/vcr_cassettes/read_purl_vaild.yml
         | 
| 284 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_client_delete.yml
         | 
| 285 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_client_index.yml
         | 
| 286 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_update.yml
         | 
| 287 | 
            +
            - spec/spec_helper.rb
         | 
| 288 | 
            +
            - spec/test_app_templates/lib/generators/test_app_generator.rb
         | 
| 247 289 | 
             
            homepage: 
         | 
| 248 290 | 
             
            licenses:
         | 
| 249 291 | 
             
            - Apache 2
         | 
| @@ -264,8 +306,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 264 306 | 
             
                  version: '0'
         | 
| 265 307 | 
             
            requirements: []
         | 
| 266 308 | 
             
            rubyforge_project: 
         | 
| 267 | 
            -
            rubygems_version: 2.5. | 
| 309 | 
            +
            rubygems_version: 2.5.2
         | 
| 268 310 | 
             
            signing_key: 
         | 
| 269 311 | 
             
            specification_version: 4
         | 
| 270 312 | 
             
            summary: Summary of BaseIndexer.
         | 
| 271 | 
            -
            test_files: | 
| 313 | 
            +
            test_files:
         | 
| 314 | 
            +
            - spec/base_indexer/main_indexer_engine_spec.rb
         | 
| 315 | 
            +
            - spec/base_indexer/solr/client_spec.rb
         | 
| 316 | 
            +
            - spec/base_indexer/solr/writer_spec.rb
         | 
| 317 | 
            +
            - spec/controllers/base_indexer/items_controller_spec.rb
         | 
| 318 | 
            +
            - spec/fixtures/vcr_cassettes/available_mods_xml.yml
         | 
| 319 | 
            +
            - spec/fixtures/vcr_cassettes/available_purl_xml.yml
         | 
| 320 | 
            +
            - spec/fixtures/vcr_cassettes/get_collection_name_for_item.yml
         | 
| 321 | 
            +
            - spec/fixtures/vcr_cassettes/read_mods_in_vaild.yml
         | 
| 322 | 
            +
            - spec/fixtures/vcr_cassettes/read_mods_vaild.yml
         | 
| 323 | 
            +
            - spec/fixtures/vcr_cassettes/read_purl_in_vaild.yml
         | 
| 324 | 
            +
            - spec/fixtures/vcr_cassettes/read_purl_vaild.yml
         | 
| 325 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_client_delete.yml
         | 
| 326 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_client_index.yml
         | 
| 327 | 
            +
            - spec/fixtures/vcr_cassettes/rsolr_update.yml
         | 
| 328 | 
            +
            - spec/spec_helper.rb
         | 
| 329 | 
            +
            - spec/test_app_templates/lib/generators/test_app_generator.rb
         | 
| @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            module BaseIndexer
         | 
| 2 | 
            -
              
         | 
| 3 | 
            -
              # It is an interface to load the solr configuration hash
         | 
| 4 | 
            -
              class SolrConfiguration
         | 
| 5 | 
            -
                
         | 
| 6 | 
            -
                # It reads the configuration argument. This function is loaded by default when the 
         | 
| 7 | 
            -
                # base_indexer_engine is loading
         | 
| 8 | 
            -
                def read(default_arg=nil)
         | 
| 9 | 
            -
                end
         | 
| 10 | 
            -
                
         | 
| 11 | 
            -
                # @return [Hash] hash represents the solr configuration
         | 
| 12 | 
            -
                # @example
         | 
| 13 | 
            -
                #   {"target1":{"url"=>"http://localhost/solr/"},"target2":{"url"=>"http://solr-cor.com/solr/"}}
         | 
| 14 | 
            -
                def get_configuration_hash
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
            end
         | 
| @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            require 'singleton'
         | 
| 2 | 
            -
            require 'yaml'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            module BaseIndexer
         | 
| 5 | 
            -
              
         | 
| 6 | 
            -
              # It reads the solr configuration from YAML file
         | 
| 7 | 
            -
              class SolrConfigurationFromFile < SolrConfiguration
         | 
| 8 | 
            -
                include Singleton
         | 
| 9 | 
            -
                
         | 
| 10 | 
            -
                # reads the solr yaml configuration file
         | 
| 11 | 
            -
                # @param yaml_file [String] solr yaml configuration file name
         | 
| 12 | 
            -
                def read(yaml_file=nil)
         | 
| 13 | 
            -
                  @solr_config_hash = YAML.load_file(yaml_file)
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
                
         | 
| 16 | 
            -
                 # @return [Hash] hash represents the solr configuration
         | 
| 17 | 
            -
                 # @example
         | 
| 18 | 
            -
                 #   {"target1":{"url"=>"http://localhost/solr/"},"target2":{"url"=>"http://solr-cor.com/solr/"}}
         | 
| 19 | 
            -
                 #
         | 
| 20 | 
            -
                 #   {"target1":{"url"=>"http://localhost/solr/","open_timeout"=>120},"target2":{"url"=>"http://solr-cor.com/solr/"}}
         | 
| 21 | 
            -
                 def get_configuration_hash
         | 
| 22 | 
            -
                   Hash[ @solr_config_hash.collect {|k,v| [k.upcase, v] } ] # updase all of the target names
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
            end
         |