harvestdor-indexer 0.0.11 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjA3NGNjNzhkOGQ1NTcxMTEyOWIyNGJkY2NlYTFmNzhhN2U0NGUyZQ==
5
- data.tar.gz: !binary |-
6
- YzU0NzdkMGIyN2I4YjgyOGJmMGMyMDcyZWQyNjNkZjc3M2ZmNmFiYw==
7
- !binary "U0hBNTEy":
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
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ script: rake rspec
3
+ rvm:
4
+ - 2.1.1
5
+ - 2.0.0
6
+ - 1.9.3
7
+ - jruby-19mode # JRuby in 1.9 mode
8
+ notifications:
9
+ email:
10
+ - ndushay@stanford.edu
11
+ - laneymcg@stanford.edu
12
+ - bess@stanford.edu
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- source "http://sul-gems.stanford.edu"
3
2
 
4
3
  # See harvestdor-indexer.gemspec for this gem's dependencies
5
4
  gemspec
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
- See spec/config/ap.yml for an example.
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
- 2a. other OAI harvesting params
33
- 3. blacklist or whitelist if you are using them
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
- #!/usr/bin/env ruby
72
-
73
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
74
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
75
-
76
- require 'rubygems'
77
- begin
78
- require 'your_indexer'
79
- rescue LoadError
80
- require 'bundler/setup'
81
- require 'your_indexer'
82
- end
83
-
84
- config_yml_path = ARGV.pop
85
- if config_yml_path.nil?
86
- puts "** You must provide the full path to a config yml file **"
87
- exit
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)"
@@ -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
- # sul-gems
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 'simplecov'
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
@@ -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=5 # the number of times to retry an object
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 || total_object == 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
- #add the document to solr, retry if an error occurs
82
- def solr_add(doc, id, do_retry=true)
83
- #if do_retry is false, skip retrying
84
- tries=do_retry ? 0 : 999
85
- max_tries=@max_retries ? @max_retries : 5 #if @max_retries isn't set, use 5
86
- while tries < max_tries
87
- begin
88
- tries+=1
89
- solr_client.add(doc)
90
- #return if successful
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
 
@@ -1,6 +1,6 @@
1
1
  module Harvestdor
2
2
  class Indexer
3
3
  # this is the Ruby Gem version
4
- VERSION = "0.0.11"
4
+ VERSION = "0.0.13"
5
5
  end
6
6
  end
data/spec/config/ap.yml CHANGED
@@ -57,5 +57,6 @@ http_options:
57
57
  ssl:
58
58
  verify: false
59
59
  # timeouts are in seconds; timeout -> open/read, open_timeout -> connection open
60
- timeout: 180
61
- open_timeout: 180
60
+ request:
61
+ timeout: 180
62
+ open_timeout: 180
data/spec/spec_helper.rb CHANGED
@@ -1,16 +1,5 @@
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
- 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.should == 5
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.11
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: 2013-10-18 00:00:00.000000000 Z
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: harvestdor
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: stanford-mods
42
+ name: harvestdor
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
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: '0'
54
+ version: 0.0.14
55
55
  - !ruby/object:Gem::Dependency
56
- name: confstruct
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: lyberteam-gems-devel
70
+ name: confstruct
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
76
- type: :development
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: '1.0'
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: simplecov-rcov
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
- - .yardopts
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.0.7
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