solrmarc_wrapper 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,26 @@
1
+ ## PROJECT
2
+ .bundle
3
+ rdoc
4
+ doc
5
+ .yardoc
6
+ *.lock
7
+ solrmarc.log*
8
+ pkg
9
+
10
+ ## vim
11
+ *.swp
12
+
13
+ ## rcov
14
+ coverage.data
15
+ coverage
16
+
17
+ ## MAC OS
18
+ .DS_Store
19
+
20
+ ## TextMate
21
+ *.tmproj
22
+ tmtags
23
+
24
+ ## Rubymine
25
+ .idea/*
26
+
data/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "solrmarc"]
2
+ path = solrmarc
3
+ url = git://github.com/solrmarc/stanford-solr-marc.git
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use jruby-1.6.7@solrmarc_wrapper --create
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :rubygems
2
+
3
+ # Please see solrmarc_wrapper.gemspec for this gem's dependencies
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Naomi Dushay
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,36 @@
1
+ = SolrmarcWrapper
2
+
3
+ Ruby wrapper for accessing SolrMarc and Solr objects, such as using org.solrmarc.marc.SolrReIndexer to get a SolrInputDocument from a marc record stored in the Solr index.
4
+
5
+ == Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'solrmarc_wrapper'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install solrmarc_wrapper
18
+
19
+ == Usage
20
+
21
+ This gem must be run under JRuby, and also requires a solrmarc dist directory and solr url (see config/settings.yml)
22
+
23
+ Example: this retrieves the full marc record stored in the Solr index, runs it through SolrMarc indexing to get a SolrInputDocument from the marcxml. It identifies Solr documents by the Solr "id" field, and expects the marc to be stored in a Solr field "marcxml".
24
+
25
+ def solr_input_doc(id)
26
+ @solrmarc_wrapper.get_solr_input_doc_from_marcxml(id)
27
+ end
28
+
29
+
30
+ == Contributing
31
+
32
+ 1. Fork it
33
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
34
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
35
+ 4. Push to the branch (`git push origin my-new-feature`)
36
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env rake
2
+ require 'bundler/setup'
3
+ require "bundler/gem_tasks"
4
+
5
+ require 'rake'
6
+ require 'bundler'
7
+
8
+ begin
9
+ Bundler.setup(:default, :development)
10
+ rescue Bundler::BundlerError => e
11
+ $stderr.puts e.message
12
+ $stderr.puts "Run `bundle install` to install missing gems"
13
+ exit e.status_code
14
+ end
15
+
16
+ Dir.glob('lib/tasks/*.rake').each { |r| import r }
17
+
18
+ namespace :sm_wrap do
19
+ task :default => :ci
20
+ task :rspec => :rspec_core
21
+ end
@@ -0,0 +1,24 @@
1
+ # settings for production
2
+ prod:
3
+ solrmarc_dist_dir: your_production_solrmarc_dist_dir
4
+ solrmarc_conf_props_file: your_solrmarc_config.properties
5
+ solr_url: your_production_solr_url
6
+ log_level: error
7
+
8
+ # settings for local development
9
+ dev:
10
+ solrmarc_dist_dir: your_solrmarc_dist_dir
11
+ solrmarc_conf_props_file: your_solrmarc_config.properties
12
+ solr_url: http://127.0.0.1:8983/solr/dev
13
+ log_level: info
14
+
15
+ # settings for continuous integration
16
+ ci:
17
+ solrmarc_dist_dir: solrmarc/dist
18
+ solrmarc_conf_props_file: sw_config.properties
19
+ solr_url: http://127.0.0.1:8983/solr/test
20
+ log_level: info
21
+
22
+ # add:
23
+ #solr id field?
24
+ #solr marcxml field?
@@ -0,0 +1,22 @@
1
+ require 'yaml'
2
+
3
+ # Read the .yml file containing the configuration values
4
+ class Settings
5
+
6
+ attr_reader :solrmarc_dist_dir, :solrmarc_conf_props_file, :solr_url
7
+
8
+ def initialize(settings_group)
9
+ yml = YAML.load_file('config/settings.yml')[settings_group]
10
+ @solrmarc_dist_dir = yml["solrmarc_dist_dir"]
11
+ @solrmarc_conf_props_file = yml["solrmarc_conf_props_file"]
12
+ @solr_url = yml["solr_url"]
13
+ end
14
+
15
+ # @return the attributes of this class as a Hash
16
+ def as_hash
17
+ {:solrmarc_dist_dir => @solrmarc_dist_dir,
18
+ :solrmarc_conf_props_file => @solrmarc_conf_props_file,
19
+ :solr_url => @solr_url }
20
+ end
21
+
22
+ end
@@ -0,0 +1,3 @@
1
+ class SolrmarcWrapper
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,59 @@
1
+ include Java
2
+
3
+ require "solrmarc_wrapper/version"
4
+ require 'logger'
5
+
6
+ # a way to use SolrMarc objects,
7
+ # such as using SolrReIndexer to get a SolrInputDocument from a marc record stored in the Solr index.
8
+ class SolrmarcWrapper
9
+
10
+ attr_accessor :logger
11
+
12
+ # @param solrmarc_dist_dir distribution directory of SolrMarc build
13
+ # @param solrmarc_conf_props_fname the name of the xx_config.properties file for SolrMarc, relative to solrmarc_dist_dir
14
+ # @param
15
+ # solr_url base url of the solr instance
16
+ def initialize(solrmarc_dist_dir, config_props_fname, solr_url, log_level=Logger::INFO, log_file=STDERR)
17
+ if not defined? JRUBY_VERSION
18
+ raise "SolrmarcWrapper only runs under jruby"
19
+ end
20
+ load_solrmarc(solrmarc_dist_dir)
21
+ setup_solr_reindexer(solr_url, config_props_fname)
22
+ @logger = Logger.new(log_file)
23
+ @logger.level = log_level
24
+ end
25
+
26
+ # retrieves the full marc rec
27
+ # ord stored in the Solr index, runs it through SolrMarc indexing to get a SolrInputDocument
28
+ # note that it identifies Solr documents by the "id" field, and expects the marc to be stored in a Solr field "marcxml"
29
+ # if there is no single document matching the id, an error is logged and nil is returned
30
+ # @param doc_id the value of the "id" Solr field for the record to be retrieved
31
+ # @return a SolrInputDocument for the doc_id, populated via marcxml and SolrMarc
32
+ def get_solr_input_doc_from_marcxml(doc_id)
33
+ begin
34
+ @solr_input_doc = @solrmarc_reindexer.getSolrInputDoc("id", doc_id, "marcxml")
35
+ rescue java.lang.NullPointerException
36
+ @logger.error("Can't find single Solr document with id #{doc_id}")
37
+ return nil
38
+ end
39
+ @solr_input_doc
40
+ end
41
+
42
+
43
+ protected
44
+
45
+ # require all the necessary jars to use SolrMarc classes
46
+ def load_solrmarc(solr_marc_dir)
47
+ Dir["#{solr_marc_dir}/**/*.jar"].each {|jar_file| require jar_file }
48
+ end
49
+
50
+ # initialize the @solrmarc_reindexer object
51
+ # @param solr_url the url of the Solr server
52
+ # @param config_props_fname the name of the xx_config.properties file relative to the solr_marc_dir used in initialize method
53
+ def setup_solr_reindexer(solr_url, config_props_fname)
54
+ solr_core_loader = org.solrmarc.solr.SolrCoreLoader.loadRemoteSolrServer(solr_url, false, true)
55
+ @solrmarc_reindexer = org.solrmarc.marc.SolrReIndexer.new(solr_core_loader)
56
+ @solrmarc_reindexer.init([config_props_fname])
57
+ end
58
+
59
+ end # module SolrmarcWrapper
data/lib/tasks/ci.rake ADDED
@@ -0,0 +1,9 @@
1
+ namespace :sm_wrap do
2
+
3
+ desc "run continuous integration suite (tests, coverage, docs)"
4
+ task :ci do
5
+ Rake::Task["sm_wrap:rspec_wrapped"].invoke
6
+ Rake::Task["sm_wrap:doc"].invoke
7
+ end
8
+
9
+ end
@@ -0,0 +1,23 @@
1
+ require 'yard'
2
+ require 'yard/rake/yardoc_task'
3
+
4
+ namespace :sm_wrap do
5
+
6
+ # Use yard to build docs
7
+ begin
8
+ project_root = File.expand_path(File.dirname(__FILE__) + "/../..")
9
+ doc_dest_dir = File.join(project_root, 'doc')
10
+
11
+ YARD::Rake::YardocTask.new(:doc) do |yt|
12
+ yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) +
13
+ [ File.join(project_root, 'README.rdoc') ]
14
+ yt.options = ['--output-dir', doc_dest_dir, '--readme', 'README.rdoc', '--title', 'crez-sw-ingest Documentation']
15
+ end
16
+ rescue LoadError
17
+ desc "Generate YARD Documentation"
18
+ task :doc do
19
+ abort "Please install the YARD gem to generate rdoc."
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,38 @@
1
+ require 'jettywrapper'
2
+
3
+ namespace :sm_wrap do
4
+ namespace :jetty do
5
+
6
+ desc "Modify test jetty solr to be multicore"
7
+ task :config_ci => ['sm_wrap:solrmarc:setup_test_jetty'] do
8
+
9
+ # copy the solr.xml file for multi-core to test jetty solr
10
+ jetty_solr_dir = "solrmarc/test/jetty/solr"
11
+ cp('spec/solr/solr.xml', jetty_solr_dir, :verbose => true)
12
+
13
+ # set up solr dev and test conf directories
14
+ dev_conf_dir = "#{jetty_solr_dir}/dev/conf"
15
+ test_conf_dir = "#{jetty_solr_dir}/test/conf"
16
+ mkdir_p(dev_conf_dir) unless Dir.exists?(dev_conf_dir)
17
+ mkdir_p(test_conf_dir) unless Dir.exists?(test_conf_dir)
18
+ single_core_conf_dir = "#{jetty_solr_dir}/conf"
19
+ Dir["#{single_core_conf_dir}/*"].each { |f|
20
+ cp_r(f, dev_conf_dir, :verbose => true)
21
+ cp_r(f, test_conf_dir, :verbose => true)
22
+ }
23
+
24
+ require 'fileutils'
25
+ # remove single core conf directory
26
+ FileUtils.rm_rf("#{jetty_solr_dir}/conf/.", :verbose => true)
27
+ Dir.foreach(jetty_solr_dir + "/conf") { |f|
28
+ fn = File.join(jetty_solr_dir, f)
29
+ File.delete(fn) if f != '.' && f != '..'
30
+ }
31
+
32
+ end
33
+
34
+ desc "Copies the SOLR config files and starts up the test-jetty instance"
35
+ task :load_ci => [:config_ci, 'jetty:start']
36
+
37
+ end
38
+ end
@@ -0,0 +1,17 @@
1
+ namespace :sm_wrap do
2
+ namespace :solrmarc do
3
+ require 'ant'
4
+
5
+ desc "run ant dist_site target in solrmarc"
6
+ task :ant_dist_site do
7
+ ant '-f solrmarc/build.xml dist_site'
8
+ end
9
+
10
+ desc "run ant target to set up testing jetty in solrmarc"
11
+ task :setup_test_jetty do
12
+ ant '-f solrmarc/build.xml test_clean_site'
13
+ ant '-f solrmarc/build.xml site_setup_test_jetty'
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ namespace :sm_wrap do
4
+
5
+ desc "Run all specs, with jetty instance running"
6
+ task :rspec_wrapped => ['sm_wrap:solrmarc:ant_dist_site', 'sm_wrap:jetty:config_ci'] do
7
+ test_jetty_dir = File.expand_path(File.dirname(__FILE__) + '../../../solrmarc/test/jetty')
8
+ require 'jettywrapper'
9
+ jetty_params = Jettywrapper.load_config.merge({
10
+ :jetty_home => test_jetty_dir,
11
+ :solr_home => test_jetty_dir + '/solr',
12
+ :java_opts => "-Dsolr.data.dir=" + test_jetty_dir + "/solr/test/data",
13
+ :jetty_port => 8983,
14
+ :startup_wait => 25
15
+ })
16
+ error = Jettywrapper.wrap(jetty_params) do
17
+ `sh ./spec/scripts/curl_empty_test_solr.sh`
18
+ `sh ./spec/scripts/curl_add_bare666_to_test.sh`
19
+ Rake::Task['sm_wrap:rspec_core'].invoke
20
+ end
21
+ raise "TEST FAILURES: #{error}" if error
22
+ end
23
+
24
+ RSpec::Core::RakeTask.new(:rspec_core) do |spec|
25
+ spec.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
26
+ end
27
+
28
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "lib/solrmarc_wrapper/version")
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "solrmarc_wrapper"
6
+ gem.version = SolrmarcWrapper::VERSION
7
+ gem.authors = ["Naomi Dushay"]
8
+ gem.email = ["ndushay@stanford.edu"]
9
+ gem.summary = "Ruby wrapper for accessing SolrMarc objects and Solr objects"
10
+ gem.description = "Ruby wrapper for accessing SolrMarc objects and Solr objects, such as using org.solrmarc.marc.SolrReIndexer to get a SolrInputDocument from a marc record stored in the Solr index"
11
+ gem.requirements = "This gem must be run under JRuby, and also requires a solrmarc dist directory and solr url (see config/settings.yml)"
12
+
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.test_files = `git ls-files -- {spec}/*`.split("\n")
15
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
+ gem.require_paths = ["lib"]
17
+
18
+ # No Runtime dependencies
19
+
20
+ # Bundler will install these gems too if you've checked out solrmarc-wrapper source from git and run 'bundle install'
21
+ # It will not add these as dependencies if you require solrmarc-wrapper for other projects
22
+ gem.add_development_dependency "rake"
23
+ # docs
24
+ gem.add_development_dependency "rdoc"
25
+ gem.add_development_dependency "yard"
26
+ # tests
27
+ gem.add_development_dependency 'rspec'
28
+ gem.add_development_dependency 'simplecov'
29
+ gem.add_development_dependency 'simplecov-rcov'
30
+ gem.add_development_dependency "jettywrapper"
31
+
32
+ end
@@ -0,0 +1,21 @@
1
+ <add>
2
+ <doc>
3
+ <field name="id">666</field>
4
+ <field name="marcxml">
5
+ <![CDATA[
6
+ <?xml version="1.0" encoding="UTF-8"?>
7
+ <collection xmlns="http://www.loc.gov/MARC21/slim">
8
+ <record>
9
+ <leader>01320ccm a2200277 4500</leader>
10
+ <controlfield tag="001">a666</controlfield>
11
+ <controlfield tag="008">750409s1961||||enk ||| | eng </controlfield>
12
+ <datafield tag="245" ind1=" " ind2="0">
13
+ <subfield code="a">Sonata no. 7, in B flat, for violoncello and piano.</subfield>
14
+ <subfield code="c">Edited with realization of the basso continuo by Fritz Spiegl and Walter Bergamnn. Violoncello part edited by Joan Dickson.</subfield>
15
+ </datafield>
16
+ </record>
17
+ </collection>
18
+ ]]>
19
+ </field>
20
+ </doc>
21
+ </add>
@@ -0,0 +1 @@
1
+ curl "http://localhost:8983/solr/test/update?commit=true" -H "Content-Type: text/xml" --data-binary @spec/fixtures/add_solrdoc_bare666.xml
@@ -0,0 +1 @@
1
+ curl "http://localhost:8983/solr/test/update?commit=true" -H "Content-Type: application/xml" --data-binary '<delete><query>*:*</query></delete>'
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+ <!--
20
+ All (relative) paths are relative to the installation path
21
+ persistent: Save changes made via the API to this file
22
+ sharedLib: path to a lib directory that will be shared across all cores
23
+ -->
24
+ <solr persistent="false" sharedLib="lib">
25
+ <cores adminPath="/admin/cores" shareSchema="true">
26
+ <core name="dev" instanceDir="dev" />
27
+ <core name="test" instanceDir="test" />
28
+ </cores>
29
+ </solr>
@@ -0,0 +1,30 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+ require "solrmarc_wrapper"
3
+ require 'logger'
4
+
5
+ describe SolrmarcWrapper do
6
+
7
+ before(:all) do
8
+ @solrmarc_wrapper = SolrmarcWrapper.new(@@settings.solrmarc_dist_dir, @@settings.solrmarc_conf_props_file, @@settings.solr_url)
9
+ end
10
+
11
+ it "should retrieve the SolrInputDoc generated from the marc record" do
12
+ sid = @solrmarc_wrapper.get_solr_input_doc_from_marcxml("666")
13
+ sid.should be_an_instance_of(Java::OrgApacheSolrCommon::SolrInputDocument)
14
+ sid["id"].getValue.should == "666"
15
+ sid["title_full_display"].getValue.should_not be_nil
16
+ end
17
+
18
+ it "should have a SolrInputDoc with the non-stored fields present" do
19
+ sid = @solrmarc_wrapper.get_solr_input_doc_from_marcxml("666")
20
+ sid["title_245a_search"].getValue.should_not be_nil
21
+ end
22
+
23
+ it "should log an error message when there is no document in the Solr index for the ckey" do
24
+ lager = double("logger")
25
+ @solrmarc_wrapper.logger = lager
26
+ lager.should_receive(:error).with("Can't find single Solr document with id aaa")
27
+ @solrmarc_wrapper.get_solr_input_doc_from_marcxml("aaa")
28
+ end
29
+
30
+ end
@@ -0,0 +1,24 @@
1
+ # for test coverage
2
+ require 'simplecov'
3
+ require 'simplecov-rcov'
4
+ class SimpleCov::Formatter::MergedFormatter
5
+ def format(result)
6
+ SimpleCov::Formatter::HTMLFormatter.new.format(result)
7
+ SimpleCov::Formatter::RcovFormatter.new.format(result)
8
+ end
9
+ end
10
+ SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
11
+ SimpleCov.start do
12
+ add_filter "/spec/"
13
+ add_filter "/config/"
14
+ end
15
+
16
+ require 'solrmarc_wrapper/settings'
17
+
18
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
19
+
20
+ RSpec.configure do |config|
21
+ # Set up the environment for testing and make all variables available to the specs
22
+ settings_env = ENV["SETTINGS"] ||= 'dev'
23
+ @@settings = Settings.new(settings_env)
24
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solrmarc_wrapper
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Naomi Dushay
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-17 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ version_requirements: &4898 !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ none: false
22
+ requirement: *4898
23
+ prerelease: false
24
+ type: :development
25
+ - !ruby/object:Gem::Dependency
26
+ name: rdoc
27
+ version_requirements: &4916 !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
32
+ none: false
33
+ requirement: *4916
34
+ prerelease: false
35
+ type: :development
36
+ - !ruby/object:Gem::Dependency
37
+ name: yard
38
+ version_requirements: &4932 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ none: false
44
+ requirement: *4932
45
+ prerelease: false
46
+ type: :development
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ version_requirements: &4948 !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ none: false
55
+ requirement: *4948
56
+ prerelease: false
57
+ type: :development
58
+ - !ruby/object:Gem::Dependency
59
+ name: simplecov
60
+ version_requirements: &4964 !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ none: false
66
+ requirement: *4964
67
+ prerelease: false
68
+ type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov-rcov
71
+ version_requirements: &4980 !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ none: false
77
+ requirement: *4980
78
+ prerelease: false
79
+ type: :development
80
+ - !ruby/object:Gem::Dependency
81
+ name: jettywrapper
82
+ version_requirements: &4996 !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ none: false
88
+ requirement: *4996
89
+ prerelease: false
90
+ type: :development
91
+ description: Ruby wrapper for accessing SolrMarc objects and Solr objects, such as using org.solrmarc.marc.SolrReIndexer to get a SolrInputDocument from a marc record stored in the Solr index
92
+ email:
93
+ - ndushay@stanford.edu
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files: []
97
+ files:
98
+ - .gitignore
99
+ - .gitmodules
100
+ - .rvmrc
101
+ - Gemfile
102
+ - LICENSE
103
+ - README.rdoc
104
+ - Rakefile
105
+ - config/settings.yml
106
+ - lib/solrmarc_wrapper.rb
107
+ - lib/solrmarc_wrapper/settings.rb
108
+ - lib/solrmarc_wrapper/version.rb
109
+ - lib/tasks/ci.rake
110
+ - lib/tasks/doc.rake
111
+ - lib/tasks/jetty.rake
112
+ - lib/tasks/solrmarc.rake
113
+ - lib/tasks/spec.rake
114
+ - solrmarc_wrapper.gemspec
115
+ - spec/fixtures/add_solrdoc_bare666.xml
116
+ - spec/scripts/curl_add_bare666_to_test.sh
117
+ - spec/scripts/curl_empty_test_solr.sh
118
+ - spec/solr/solr.xml
119
+ - spec/solrmarc_wrapper_spec.rb
120
+ - spec/spec_helper.rb
121
+ homepage:
122
+ licenses: []
123
+ post_install_message:
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ segments:
132
+ - 0
133
+ hash: 2
134
+ version: '0'
135
+ none: false
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ segments:
141
+ - 0
142
+ hash: 2
143
+ version: '0'
144
+ none: false
145
+ requirements:
146
+ - This gem must be run under JRuby, and also requires a solrmarc dist directory and solr url (see config/settings.yml)
147
+ rubyforge_project:
148
+ rubygems_version: 1.8.15
149
+ signing_key:
150
+ specification_version: 3
151
+ summary: Ruby wrapper for accessing SolrMarc objects and Solr objects
152
+ test_files: []
153
+ has_rdoc:
154
+ ...