solrizer-fedora 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +5 -0
- data/Gemfile.lock +12 -1
- data/History.textile +5 -0
- data/README.textile +17 -0
- data/lib/solrizer/fedora/indexer.rb +4 -35
- data/lib/solrizer/fedora/solrizer.rb +1 -1
- data/lib/solrizer/fedora/version.rb +1 -1
- data/lib/tasks/solrizer-fedora-dev.rake +12 -20
- data/lib/tasks/solrizer-fedora.rake +2 -3
- data/solrizer-fedora.gemspec +2 -2
- data/spec/spec_helper.rb +9 -0
- metadata +7 -8
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -61,6 +61,7 @@ GEM
|
|
61
61
|
mime-types (1.18)
|
62
62
|
mocha (0.10.0)
|
63
63
|
metaclass (~> 0.0.1)
|
64
|
+
multi_json (1.3.5)
|
64
65
|
multipart-post (1.1.2)
|
65
66
|
nokogiri (1.5.2)
|
66
67
|
nori (1.1.0)
|
@@ -68,6 +69,7 @@ GEM
|
|
68
69
|
mediashelf-loggable
|
69
70
|
nokogiri (>= 1.4.2)
|
70
71
|
rack (1.4.1)
|
72
|
+
rake (0.9.2.2)
|
71
73
|
rcov (1.0.0)
|
72
74
|
rdf (0.3.5.2)
|
73
75
|
addressable (>= 2.2.6)
|
@@ -104,6 +106,12 @@ GEM
|
|
104
106
|
nokogiri (>= 1.4.0)
|
105
107
|
nori (~> 1.1)
|
106
108
|
wasabi (~> 2.1)
|
109
|
+
simplecov (0.6.4)
|
110
|
+
multi_json (~> 1.0)
|
111
|
+
simplecov-html (~> 0.5.3)
|
112
|
+
simplecov-html (0.5.3)
|
113
|
+
simplecov-rcov (0.2.3)
|
114
|
+
simplecov (>= 0.4.1)
|
107
115
|
solrizer (1.2.0)
|
108
116
|
daemons
|
109
117
|
mediashelf-loggable (~> 0.4.7)
|
@@ -124,8 +132,11 @@ DEPENDENCIES
|
|
124
132
|
RedCloth
|
125
133
|
jettywrapper (>= 1.1)
|
126
134
|
mocha
|
135
|
+
rake
|
127
136
|
rcov
|
128
137
|
rdoc
|
129
|
-
rspec (~> 2.6
|
138
|
+
rspec (~> 2.6)
|
139
|
+
simplecov
|
140
|
+
simplecov-rcov
|
130
141
|
solrizer-fedora!
|
131
142
|
yard
|
data/History.textile
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
h2. 2.2.0
|
2
|
+
HYDRA-808 don't quit the whole job if one object fails to solrize
|
3
|
+
create_document in lib/solrizer/fedora/indexer.rb is public. Used by solrizer-rabbit
|
4
|
+
code cleanup in lib/solrizer/fedora/indexer.rb
|
5
|
+
|
1
6
|
h2. 2.1.0
|
2
7
|
Requiring active-fedora >= 4.0 (so it will happily use 4.1.0)
|
3
8
|
Relaxed jetty-wrapper requirement to >= 1.1
|
data/README.textile
CHANGED
@@ -182,6 +182,23 @@ Now your solr doc with the "changeme:123" ID will include the following:
|
|
182
182
|
</pre>
|
183
183
|
|
184
184
|
|
185
|
+
h3. Rake tasks
|
186
|
+
|
187
|
+
h4. solrizer:fedora:solrize
|
188
|
+
|
189
|
+
Required Argument:
|
190
|
+
* PID=ns:123 The pid of the object to index
|
191
|
+
|
192
|
+
Optional Arguments:
|
193
|
+
* FULL_TEXT=true does a full text index
|
194
|
+
|
195
|
+
h4. solrizer:fedora:solrize_objects
|
196
|
+
|
197
|
+
Optional Arguments:
|
198
|
+
* FULL_TEXT=true does a full text index
|
199
|
+
* INDEX_LIST=_filename.csv_ indexes only the pids in the csv file
|
200
|
+
|
201
|
+
|
185
202
|
h2. Modifying and Testing the Solrizer-Fedora gem
|
186
203
|
|
187
204
|
In order to run the RSpec tests, it is necessary to have a hydra-jetty instance running. This can be accomplished two ways:
|
@@ -4,16 +4,6 @@ require 'solrizer/fedora/repository'
|
|
4
4
|
|
5
5
|
module Solrizer::Fedora
|
6
6
|
class Indexer
|
7
|
-
#
|
8
|
-
# Class variables
|
9
|
-
#
|
10
|
-
@@unique_id = 0
|
11
|
-
|
12
|
-
def self.unique_id
|
13
|
-
@@unique_id
|
14
|
-
end
|
15
|
-
|
16
|
-
|
17
7
|
# The instance of solr that updates will be written to
|
18
8
|
attr_accessor :solr
|
19
9
|
|
@@ -162,7 +152,7 @@ class Indexer
|
|
162
152
|
# Load the object as an instance of each of its other models and get the corresponding solr fields
|
163
153
|
# Include :model_only=>true in the options in order to avoid adding the metadata from ActiveFedora::Base every time.
|
164
154
|
model_klazz_array.each do |klazz|
|
165
|
-
instance = klazz.
|
155
|
+
instance = klazz.find(obj.pid)
|
166
156
|
solr_doc = instance.to_solr(solr_doc, :model_only=>true)
|
167
157
|
logger.debug " added solr fields from #{klazz.to_s}"
|
168
158
|
end
|
@@ -170,9 +160,6 @@ class Indexer
|
|
170
160
|
::Solrizer::Extractor.insert_solr_field_value(solr_doc, :id_t, "#{obj.pid}" )
|
171
161
|
::Solrizer::Extractor.insert_solr_field_value(solr_doc, :id, "#{obj.pid}" ) unless solr_doc[:id]
|
172
162
|
|
173
|
-
# increment the unique id to ensure that all documents in the search index are unique
|
174
|
-
@@unique_id += 1
|
175
|
-
|
176
163
|
return solr_doc
|
177
164
|
end
|
178
165
|
|
@@ -180,30 +167,12 @@ class Indexer
|
|
180
167
|
# This method adds a document to the Solr search index
|
181
168
|
#
|
182
169
|
def index( obj )
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
solr_doc = create_document( obj )
|
187
|
-
|
188
|
-
begin
|
189
|
-
solr.add( solr_doc )
|
190
|
-
solr.commit
|
191
|
-
# rescue
|
192
|
-
# debugger
|
193
|
-
end
|
194
|
-
|
195
|
-
# puts solr.url
|
196
|
-
#puts solr_doc
|
197
|
-
# puts "done"
|
198
|
-
|
199
|
-
# rescue Exception => e
|
200
|
-
# p "unable to index #{obj.pid}. Failed with #{e.inspect}"
|
201
|
-
end
|
202
|
-
|
170
|
+
solr.add( create_document( obj ) )
|
171
|
+
solr.commit
|
203
172
|
end
|
204
173
|
|
205
174
|
|
206
|
-
private :connect
|
175
|
+
private :connect
|
207
176
|
|
208
177
|
end
|
209
178
|
end
|
@@ -21,7 +21,7 @@ namespace :solrizer do
|
|
21
21
|
:startup_wait => 25
|
22
22
|
}
|
23
23
|
error = Jettywrapper.wrap(jetty_params) do
|
24
|
-
Rake::Task["solrizer:fedora:
|
24
|
+
Rake::Task["solrizer:fedora:coverage"].invoke
|
25
25
|
Rake::Task["solrizer:fedora:doc"].invoke
|
26
26
|
end
|
27
27
|
raise "test failures: #{error}" if error
|
@@ -36,26 +36,18 @@ namespace :solrizer do
|
|
36
36
|
spec.pattern = 'spec/**/*_spec.rb'
|
37
37
|
end
|
38
38
|
|
39
|
-
desc "
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
spec.rcov_opts = %w{--exclude spec,gems}
|
45
|
-
end
|
39
|
+
desc "Execute specs with coverage"
|
40
|
+
task :coverage do
|
41
|
+
# Put spec opts in a file named .rspec in root
|
42
|
+
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
|
43
|
+
ENV['COVERAGE'] = 'true' unless ruby_engine == 'jruby'
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
rescue LoadError
|
55
|
-
task :rcov do
|
56
|
-
abort "RCov is not available. "
|
57
|
-
end
|
58
|
-
end
|
45
|
+
|
46
|
+
Rake::Task['solrizer:fedora:spec'].invoke
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
desc "Run specs with coverage"
|
59
51
|
|
60
52
|
# Use yard to build docs
|
61
53
|
begin
|
@@ -22,12 +22,11 @@ namespace :solrizer do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
puts "Re-indexing Fedora Repository."
|
25
|
-
puts "Fedora URL: #{ActiveFedora.config.credentials[:url]}"
|
26
25
|
puts "Fedora Solr URL: #{ActiveFedora.solr_config[:url]}"
|
27
26
|
puts "Doing full text index." if index_full_text
|
28
27
|
solrizer = Solrizer::Fedora::Solrizer.new :index_full_text=> index_full_text
|
29
|
-
solrizer.solrize_objects
|
28
|
+
solrizer.solrize_objects :suppress_errors=>true
|
30
29
|
puts "Solrizer task complete."
|
31
30
|
end
|
32
31
|
end
|
33
|
-
end
|
32
|
+
end
|
data/solrizer-fedora.gemspec
CHANGED
@@ -23,8 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_dependency('active-fedora', '~> 4.0')
|
24
24
|
s.add_development_dependency('jettywrapper', '>=1.1')
|
25
25
|
s.add_development_dependency('rdoc')
|
26
|
-
s.add_development_dependency('
|
27
|
-
s.add_development_dependency('rspec', '~>2.6
|
26
|
+
s.add_development_dependency('rake')
|
27
|
+
s.add_development_dependency('rspec', '~>2.6') #'>=2.8.0'
|
28
28
|
s.add_development_dependency('mocha')
|
29
29
|
s.add_development_dependency('yard')
|
30
30
|
s.add_development_dependency('RedCloth')
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
|
4
|
+
if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.9/
|
5
|
+
require 'simplecov'
|
6
|
+
require 'simplecov-rcov'
|
7
|
+
|
8
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
9
|
+
SimpleCov.start
|
10
|
+
end
|
11
|
+
|
3
12
|
require 'solrizer/fedora'
|
4
13
|
require 'solrizer'
|
5
14
|
require 'rspec'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solrizer-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 2.
|
10
|
+
version: 2.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Zumwalt
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-05-
|
18
|
+
date: 2012-05-24 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: active-fedora
|
@@ -62,7 +62,7 @@ dependencies:
|
|
62
62
|
type: :development
|
63
63
|
version_requirements: *id003
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
|
-
name:
|
65
|
+
name: rake
|
66
66
|
prerelease: false
|
67
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
68
|
none: false
|
@@ -83,12 +83,11 @@ dependencies:
|
|
83
83
|
requirements:
|
84
84
|
- - ~>
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
hash:
|
86
|
+
hash: 15
|
87
87
|
segments:
|
88
88
|
- 2
|
89
89
|
- 6
|
90
|
-
|
91
|
-
version: 2.6.0
|
90
|
+
version: "2.6"
|
92
91
|
type: :development
|
93
92
|
version_requirements: *id005
|
94
93
|
- !ruby/object:Gem::Dependency
|