harvestdor-indexer 0.0.11 → 0.0.13
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 +6 -14
- data/.travis.yml +12 -0
- data/Gemfile +0 -1
- data/README.rdoc +37 -24
- data/Rakefile +0 -7
- data/harvestdor-indexer.gemspec +3 -6
- data/lib/harvestdor-indexer.rb +24 -28
- data/lib/harvestdor-indexer/version.rb +1 -1
- data/spec/config/ap.yml +3 -2
- data/spec/spec_helper.rb +2 -13
- data/spec/unit/harvestdor-indexer_spec.rb +19 -1
- metadata +38 -51
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZmQyZjkwYThhN2MzNGZjZGJmNTU0NjNjN2FiMWI0YTBmZjJlN2M0Y2UwNDU5
|
10
|
-
YmQzZGI0MjZkOWM0ZGU4MmY5OGFjZTA5YTE2M2Y0ZjUzOGM5ZmNiMTI2YWFl
|
11
|
-
MzUwODUyOTdiMTE5ZmZiYWE5Nzg0MzRkOTRiMGM2ZDYxY2NmZjk=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MmE0YTVhMjdjNjQ3YzViNTk4NTI2ZWYzYjU1ZTFjMWYzNTU0NWM3YWRlMmMz
|
14
|
-
N2YwMzI4ZDM2NmY1ZGVkYjRmYzczNWE2NDQwYzFkYmJiYmM3Mzk3Nzk1ZjZk
|
15
|
-
MTA0ZDA4YTBlZDIzNjQzNjg4ODZkYTcwZjhiMTBiNTg2NzI1ZWM=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a14d39d89afa8e167b50facf06cf7cf0a6c5fa76
|
4
|
+
data.tar.gz: 63478e959742b0640189aaf90b2f185315b4b9c3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eb6f6830232b5d7609a29779c8ca58139cbad499d5c51daa9bfeb0252fe52fc633296a360ccd5e2e9c7b2b68313402c7fb9b6e4532a414a2d130c3f0fe867a69
|
7
|
+
data.tar.gz: f97897beffaebca548732810ed0d3281b169feead5203aaa9ec1a63167cdbf4813a5619052b9ab1cdf8f2fc54bb5068d827487ec9e668b27a1f8b85acd375552
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
= Harvestdor::Indexer
|
2
|
+
{<img src="https://travis-ci.org/sul-dlss/harvestdor-indexer.svg" alt="Build Status" />}[https://travis-ci.org/sul-dlss/harvestdor-indexer]
|
3
|
+
{<img src="https://coveralls.io/repos/sul-dlss/harvestdor-indexer/badge.png" alt="Coverage Status" />}[https://coveralls.io/r/sul-dlss/harvestdor-indexer]{<img src="https://gemnasium.com/sul-dlss/harvestdor-indexer.svg" alt="Dependency Status" />}[https://gemnasium.com/sul-dlss/harvestdor-indexer]{<img src="https://badge.fury.io/rb/harvestdor-indexer.svg" alt="Gem Version" />}[http://badge.fury.io/rb/harvestdor-indexer]
|
4
|
+
|
5
|
+
|
6
|
+
|
2
7
|
|
3
8
|
A Gem to harvest meta/data from DOR and the skeleton code to index it and write to Solr.
|
4
9
|
|
@@ -24,13 +29,22 @@ You must override the index method and provide configuration options. It is rec
|
|
24
29
|
|
25
30
|
Create a yml config file for your collection going to a Solr index.
|
26
31
|
|
27
|
-
|
32
|
+
Note: Because of an update to underlying HTTP libraries, versions of this gem > 0.0.12 require an updated syntax. Errors like "unknown method timeout" might be because you're using an older version of a config file. The new configuration looks like this:
|
33
|
+
|
34
|
+
http_options:
|
35
|
+
ssl:
|
36
|
+
verify: false
|
37
|
+
# timeouts are in seconds; timeout -> open/read, open_timeout -> connection open
|
38
|
+
request:
|
39
|
+
timeout: 180
|
40
|
+
open_timeout: 180
|
28
41
|
|
42
|
+
See spec/config/ap.yml for an example.
|
29
43
|
You will want to copy that file and change the following settings:
|
30
44
|
1. log_name
|
31
45
|
2. default_set (in OAI harvesting params section)
|
32
|
-
|
33
|
-
|
46
|
+
3. other OAI harvesting params
|
47
|
+
4. blacklist or whitelist if you are using them
|
34
48
|
|
35
49
|
You can also pass in non-default configurations as a hash
|
36
50
|
|
@@ -68,27 +82,23 @@ end
|
|
68
82
|
|
69
83
|
I suggest you write a script to run the code. Your script might look like this:
|
70
84
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
indexer = Harvestdor::Indexer.new(config_yml_path, opts)
|
91
|
-
indexer.harvest_and_index
|
85
|
+
#!/usr/bin/env ruby
|
86
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
|
87
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
88
|
+
require 'rubygems'
|
89
|
+
begin
|
90
|
+
require 'your_indexer'
|
91
|
+
rescue LoadError
|
92
|
+
require 'bundler/setup'
|
93
|
+
require 'your_indexer'
|
94
|
+
end
|
95
|
+
config_yml_path = ARGV.pop
|
96
|
+
if config_yml_path.nil?
|
97
|
+
puts "** You must provide the full path to a config yml file **"
|
98
|
+
exit
|
99
|
+
end
|
100
|
+
indexer = Harvestdor::Indexer.new(config_yml_path, opts)
|
101
|
+
indexer.harvest_and_index
|
92
102
|
|
93
103
|
Then you run the script like so:
|
94
104
|
|
@@ -108,6 +118,9 @@ I suggest you run your code on harvestdor-dev, as it is already set up to be abl
|
|
108
118
|
|
109
119
|
== Releases
|
110
120
|
|
121
|
+
* <b>0.0.13</b> Upgrade to latest faraday HTTP client syntax; Use retries gem (https://github.com/ooyala/retries) to make retrying of index process more robust
|
122
|
+
* <b>0.0.12</b> fix total_object nil error
|
123
|
+
* <b>0.0.11</b> fix error_count and success_count, allow setting of max-tries (retry solr add if error)
|
111
124
|
* <b>0.0.7</b> adding additional logging of error, success counts, and time to index and harvest
|
112
125
|
* <b>0.0.6</b> tweak error handling for public xml pieces
|
113
126
|
* <b>0.0.5</b> make rake release a no-op
|
data/Rakefile
CHANGED
@@ -7,9 +7,6 @@ require 'rspec/core/rake_task'
|
|
7
7
|
require 'yard'
|
8
8
|
require 'yard/rake/yardoc_task'
|
9
9
|
|
10
|
-
require 'dlss/rake/dlss_release'
|
11
|
-
Dlss::Release.new
|
12
|
-
|
13
10
|
begin
|
14
11
|
Bundler.setup(:default, :development)
|
15
12
|
rescue Bundler::BundlerError => e
|
@@ -18,10 +15,6 @@ rescue Bundler::BundlerError => e
|
|
18
15
|
exit e.status_code
|
19
16
|
end
|
20
17
|
|
21
|
-
desc "DO NOT USE! use dlss_release"
|
22
|
-
task :release do
|
23
|
-
end
|
24
|
-
|
25
18
|
task :default => :ci
|
26
19
|
|
27
20
|
desc "run continuous integration suite (tests, coverage, docs)"
|
data/harvestdor-indexer.gemspec
CHANGED
@@ -18,9 +18,8 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
20
|
gem.add_dependency 'rsolr'
|
21
|
-
|
22
|
-
|
23
|
-
gem.add_dependency 'harvestdor'
|
21
|
+
gem.add_dependency 'retries'
|
22
|
+
gem.add_dependency 'harvestdor', '>=0.0.14'
|
24
23
|
gem.add_dependency 'stanford-mods'
|
25
24
|
|
26
25
|
# Runtime dependencies
|
@@ -29,15 +28,13 @@ Gem::Specification.new do |gem|
|
|
29
28
|
# Development dependencies
|
30
29
|
# Bundler will install these gems too if you've checked out solrmarc-wrapper source from git and run 'bundle install'
|
31
30
|
# It will not add these as dependencies if you require solrmarc-wrapper for other projects
|
32
|
-
gem.add_development_dependency "lyberteam-gems-devel", ">= 1.0"
|
33
31
|
gem.add_development_dependency "rake"
|
34
32
|
# docs
|
35
33
|
gem.add_development_dependency "rdoc"
|
36
34
|
gem.add_development_dependency "yard"
|
37
35
|
# tests
|
38
36
|
gem.add_development_dependency 'rspec'
|
39
|
-
gem.add_development_dependency '
|
40
|
-
gem.add_development_dependency 'simplecov-rcov'
|
37
|
+
gem.add_development_dependency 'coveralls'
|
41
38
|
# gem.add_development_dependency 'ruby-debug19'
|
42
39
|
|
43
40
|
end
|
data/lib/harvestdor-indexer.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# external gems
|
2
2
|
require 'confstruct'
|
3
3
|
require 'rsolr'
|
4
|
+
require 'retries'
|
4
5
|
|
5
6
|
# sul-dlss gems
|
6
7
|
require 'harvestdor'
|
@@ -21,7 +22,7 @@ module Harvestdor
|
|
21
22
|
def initialize yml_path, options = {}
|
22
23
|
@success_count=0 # the number of objects successfully indexed
|
23
24
|
@error_count=0 # the number of objects that failed
|
24
|
-
@max_retries=
|
25
|
+
@max_retries=10 # the number of times to retry an object
|
25
26
|
@total_time_to_solr=0
|
26
27
|
@total_time_to_parse=0
|
27
28
|
@yml_path = yml_path
|
@@ -54,13 +55,13 @@ module Harvestdor
|
|
54
55
|
total_time=elapsed_time(start_time)
|
55
56
|
total_objects=@success_count+@error_count
|
56
57
|
logger.info("Finished harvest_and_index at #{Time.now}: final Solr commit returned")
|
57
|
-
logger.info("Total elapsed time for harvest and index: #{(total_time/60.0)} minutes")
|
58
|
-
logger.info("Avg solr commit time per object (successful): #{@total_time_to_solr/@success_count} seconds") unless (@total_time_to_solr == 0 || @success_count == 0)
|
59
|
-
logger.info("Avg solr commit time per object (all): #{@total_time_to_solr/total_objects} seconds") unless (@total_time_to_solr == 0 || @error_count == 0 || total_objects == 0)
|
60
|
-
logger.info("Avg parse time per object (successful): #{@total_time_to_parse/@success_count} seconds") unless (@total_time_to_parse == 0 || @success_count == 0)
|
61
|
-
logger.info("Avg parse time per object (all): #{@total_time_to_parse/total_objects} seconds") unless (@total_time_to_parse == 0 || @error_count == 0 || total_objects == 0)
|
62
|
-
logger.info("Avg complete index time per object (successful): #{total_time/@success_count} seconds") unless (@success_count == 0)
|
63
|
-
logger.info("Avg complete index time per object (all): #{total_time/total_objects} seconds") unless (@error_count == 0 ||
|
58
|
+
logger.info("Total elapsed time for harvest and index: #{(total_time/60.0).round(2)} minutes")
|
59
|
+
logger.info("Avg solr commit time per object (successful): #{(@total_time_to_solr/@success_count).round(2)} seconds") unless (@total_time_to_solr == 0 || @success_count == 0)
|
60
|
+
logger.info("Avg solr commit time per object (all): #{(@total_time_to_solr/total_objects).round(2)} seconds") unless (@total_time_to_solr == 0 || @error_count == 0 || total_objects == 0)
|
61
|
+
logger.info("Avg parse time per object (successful): #{(@total_time_to_parse/@success_count).round(2)} seconds") unless (@total_time_to_parse == 0 || @success_count == 0)
|
62
|
+
logger.info("Avg parse time per object (all): #{(@total_time_to_parse/total_objects).round(2)} seconds") unless (@total_time_to_parse == 0 || @error_count == 0 || total_objects == 0)
|
63
|
+
logger.info("Avg complete index time per object (successful): #{(total_time/@success_count).round(2)} seconds") unless (@success_count == 0)
|
64
|
+
logger.info("Avg complete index time per object (all): #{(total_time/total_objects).round(2)} seconds") unless (@error_count == 0 || total_objects == 0)
|
64
65
|
logger.info("Successful count: #{@success_count}")
|
65
66
|
logger.info("Error count: #{@error_count}")
|
66
67
|
logger.info("Total records processed: #{total_objects}")
|
@@ -78,27 +79,22 @@ module Harvestdor
|
|
78
79
|
return @druids
|
79
80
|
end
|
80
81
|
|
81
|
-
#
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
#
|
91
|
-
return
|
92
|
-
rescue => e
|
93
|
-
if tries<max_tries
|
94
|
-
logger.warn "#{id}: #{e.message}, retrying"
|
95
|
-
else
|
96
|
-
@error_count+=1
|
97
|
-
logger.error "Failed saving #{id}: #{e.message}"
|
98
|
-
logger.error e.backtrace
|
99
|
-
return
|
100
|
-
end
|
82
|
+
# Add the document to solr, retry if an error occurs.
|
83
|
+
# See https://github.com/ooyala/retries for docs on with_retries.
|
84
|
+
# @param [Hash] doc a Hash representation of the solr document
|
85
|
+
# @param [String] id the id of the document being sent, for logging
|
86
|
+
def solr_add(doc, id)
|
87
|
+
max_tries=@max_retries ? @max_retries : 10 #if @max_retries isn't set, use 10
|
88
|
+
|
89
|
+
handler = Proc.new do |exception, attempt_number, total_delay|
|
90
|
+
logger.debug "#{exception.class} on attempt #{attempt_number} for #{id}"
|
91
|
+
# logger.debug exception.backtrace
|
101
92
|
end
|
93
|
+
|
94
|
+
with_retries(:max_tries => max_tries, :handler => handler, :base_sleep_seconds => 1, :max_sleep_seconds => 5) do |attempt|
|
95
|
+
logger.debug "Attempt #{attempt} for #{id}"
|
96
|
+
solr_client.add(doc)
|
97
|
+
logger.info "Successfully indexed #{id} on attempt #{attempt}"
|
102
98
|
end
|
103
99
|
end
|
104
100
|
|
data/spec/config/ap.yml
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,5 @@
|
|
1
|
-
|
2
|
-
|
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
|
-
end
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
14
3
|
|
15
4
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
16
5
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
@@ -13,6 +13,24 @@ describe Harvestdor::Indexer do
|
|
13
13
|
@whitelist_path = File.join(File.dirname(__FILE__), "../config/ap_whitelist.txt")
|
14
14
|
end
|
15
15
|
|
16
|
+
# The method that sends the solr document to solr
|
17
|
+
describe "#solr_add" do
|
18
|
+
before(:each) do
|
19
|
+
doc_hash = {
|
20
|
+
:modsxml => 'whatever',
|
21
|
+
:title_display => 'title',
|
22
|
+
:pub_year_tisim => 'some year',
|
23
|
+
:author_person_display => 'author',
|
24
|
+
:format => 'Image',
|
25
|
+
:language => 'English'
|
26
|
+
}
|
27
|
+
end
|
28
|
+
it "sends an add request to the solr_client" do
|
29
|
+
expect(@indexer.solr_client).to receive(:add)
|
30
|
+
@indexer.solr_add(@doc_hash, "abc123")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
16
34
|
describe "access methods" do
|
17
35
|
it "initializes success count" do
|
18
36
|
@indexer.success_count.should == 0
|
@@ -21,7 +39,7 @@ describe Harvestdor::Indexer do
|
|
21
39
|
@indexer.error_count.should == 0
|
22
40
|
end
|
23
41
|
it "initializes max_retries" do
|
24
|
-
@indexer.max_retries.
|
42
|
+
expect(@indexer.max_retries).to eql(10)
|
25
43
|
end
|
26
44
|
it "allows overriding of max_retries" do
|
27
45
|
@indexer.max_retries=6
|
metadata
CHANGED
@@ -1,167 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: harvestdor-indexer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naomi Dushay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rsolr
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: retries
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: harvestdor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.0.14
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.0.14
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: stanford-mods
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: confstruct
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
76
|
-
type: :
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rdoc
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
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
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: yard
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rspec
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ! '>='
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: simplecov
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ! '>='
|
129
|
+
- - ">="
|
144
130
|
- !ruby/object:Gem::Version
|
145
131
|
version: '0'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- -
|
136
|
+
- - ">="
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: '0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
140
|
+
name: coveralls
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
|
-
- -
|
143
|
+
- - ">="
|
158
144
|
- !ruby/object:Gem::Version
|
159
145
|
version: '0'
|
160
146
|
type: :development
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
|
-
- -
|
150
|
+
- - ">="
|
165
151
|
- !ruby/object:Gem::Version
|
166
152
|
version: '0'
|
167
153
|
description: Harvest DOR object metadata via a relationship (e.g. hydra:isGovernedBy
|
@@ -173,8 +159,9 @@ executables: []
|
|
173
159
|
extensions: []
|
174
160
|
extra_rdoc_files: []
|
175
161
|
files:
|
176
|
-
- .gitignore
|
177
|
-
- .
|
162
|
+
- ".gitignore"
|
163
|
+
- ".travis.yml"
|
164
|
+
- ".yardopts"
|
178
165
|
- Gemfile
|
179
166
|
- LICENSE.txt
|
180
167
|
- README.rdoc
|
@@ -196,17 +183,17 @@ require_paths:
|
|
196
183
|
- lib
|
197
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
198
185
|
requirements:
|
199
|
-
- -
|
186
|
+
- - ">="
|
200
187
|
- !ruby/object:Gem::Version
|
201
188
|
version: '0'
|
202
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
190
|
requirements:
|
204
|
-
- -
|
191
|
+
- - ">="
|
205
192
|
- !ruby/object:Gem::Version
|
206
193
|
version: '0'
|
207
194
|
requirements: []
|
208
195
|
rubyforge_project:
|
209
|
-
rubygems_version: 2.
|
196
|
+
rubygems_version: 2.2.2
|
210
197
|
signing_key:
|
211
198
|
specification_version: 4
|
212
199
|
summary: Harvest DOR object metadata and index it to Solr
|