solrizer-fedora 2.0.0.rc2 → 2.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.
- data/Gemfile.lock +11 -12
- data/lib/solrizer/fedora/solrizer.rb +18 -41
- data/lib/solrizer/fedora/version.rb +1 -1
- data/solrizer-fedora.gemspec +1 -5
- data/spec/units/fedora_solrizer_spec.rb +20 -24
- metadata +14 -34
data/Gemfile.lock
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
solrizer-fedora (2.0.0
|
5
|
-
active-fedora (~> 4.0.0
|
6
|
-
fastercsv
|
4
|
+
solrizer-fedora (2.0.0)
|
5
|
+
active-fedora (~> 4.0.0)
|
7
6
|
|
8
7
|
GEM
|
9
8
|
remote: http://rubygems.org/
|
10
9
|
specs:
|
11
10
|
RedCloth (4.2.9)
|
12
|
-
active-fedora (4.0.0
|
11
|
+
active-fedora (4.0.0)
|
13
12
|
activeresource (>= 3.0.0)
|
14
13
|
activesupport (>= 3.0.0)
|
15
14
|
equivalent-xml
|
@@ -17,11 +16,11 @@ GEM
|
|
17
16
|
mime-types (>= 1.16)
|
18
17
|
multipart-post (= 1.1.2)
|
19
18
|
nokogiri
|
20
|
-
om (
|
19
|
+
om (~> 1.6.0)
|
21
20
|
rdf
|
22
21
|
rdf-rdfxml (= 0.3.5)
|
23
22
|
rsolr
|
24
|
-
rubydora (~> 0.5.
|
23
|
+
rubydora (~> 0.5.8)
|
25
24
|
solrizer (~> 1.2.0)
|
26
25
|
xml-simple (>= 1.0.12)
|
27
26
|
activemodel (3.0.11)
|
@@ -64,18 +63,18 @@ GEM
|
|
64
63
|
logger (1.2.8)
|
65
64
|
mediashelf-loggable (0.4.9)
|
66
65
|
metaclass (0.0.1)
|
67
|
-
mime-types (1.
|
66
|
+
mime-types (1.18)
|
68
67
|
mocha (0.10.0)
|
69
68
|
metaclass (~> 0.0.1)
|
70
69
|
multipart-post (1.1.2)
|
71
70
|
nokogiri (1.5.2)
|
72
71
|
nori (1.1.0)
|
73
|
-
om (1.
|
72
|
+
om (1.6.0)
|
74
73
|
mediashelf-loggable
|
75
74
|
nokogiri (>= 1.4.2)
|
76
75
|
rack (1.4.1)
|
77
76
|
rake (0.9.2.2)
|
78
|
-
rdf (0.3.5.
|
77
|
+
rdf (0.3.5.2)
|
79
78
|
addressable (>= 2.2.6)
|
80
79
|
rdf-rdfxml (0.3.5)
|
81
80
|
nokogiri (>= 1.4.4)
|
@@ -84,7 +83,7 @@ GEM
|
|
84
83
|
json (~> 1.4)
|
85
84
|
rest-client (1.6.7)
|
86
85
|
mime-types (>= 1.16)
|
87
|
-
rsolr (1.0.
|
86
|
+
rsolr (1.0.8)
|
88
87
|
builder (>= 2.1.2)
|
89
88
|
rspec (2.6.0)
|
90
89
|
rspec-core (~> 2.6.0)
|
@@ -94,7 +93,7 @@ GEM
|
|
94
93
|
rspec-expectations (2.6.0)
|
95
94
|
diff-lcs (~> 1.1.2)
|
96
95
|
rspec-mocks (2.6.0)
|
97
|
-
rubydora (0.5.
|
96
|
+
rubydora (0.5.8)
|
98
97
|
activemodel
|
99
98
|
activesupport
|
100
99
|
fastercsv
|
@@ -117,7 +116,7 @@ GEM
|
|
117
116
|
om (>= 1.5.0)
|
118
117
|
stomp
|
119
118
|
xml-simple
|
120
|
-
stomp (1.2.
|
119
|
+
stomp (1.2.2)
|
121
120
|
wasabi (2.1.0)
|
122
121
|
nokogiri (>= 1.4.0)
|
123
122
|
xml-simple (1.1.1)
|
@@ -7,9 +7,6 @@ require 'solrizer/html'
|
|
7
7
|
|
8
8
|
require 'active_support/core_ext/hash'
|
9
9
|
|
10
|
-
require 'fastercsv' # this is used by solrize_objects when you pass it a csv file of pids
|
11
|
-
|
12
|
-
|
13
10
|
module Solrizer::Fedora
|
14
11
|
class Solrizer
|
15
12
|
ALL_FIELDS = [
|
@@ -95,47 +92,27 @@ module Solrizer::Fedora
|
|
95
92
|
puts "WARNING: You have turned off indexing of Full Text content. Be sure to re-run indexer with @@index_full_text set to true in main.rb" if index_full_text == false
|
96
93
|
|
97
94
|
if @@index_list == false
|
98
|
-
|
99
|
-
objects = find_objects(:limit=>num_docs)
|
100
|
-
|
101
|
-
puts "Shelving #{objects.length} Fedora objects"
|
102
|
-
objects.each do |object|
|
103
|
-
solrize( object, opts )
|
104
|
-
end
|
105
|
-
|
95
|
+
solrize_from_fedora_search(opts)
|
106
96
|
else
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
puts "Indexing from list at #{@@index_list}"
|
111
|
-
puts "Shelving #{arr_of_pids.length} Fedora objects"
|
112
|
-
|
113
|
-
arr_of_pids.each do |row|
|
114
|
-
pid = row[0]
|
115
|
-
solrize( pid )
|
116
|
-
end #FASTERCSV
|
117
|
-
else
|
118
|
-
puts "#{@@index_list} does not exists!"
|
119
|
-
end #if File.exists
|
120
|
-
|
121
|
-
end #if Index_LISTS
|
122
|
-
end #solrize_objects
|
123
|
-
|
124
|
-
def find_objects(*args)
|
125
|
-
raise ArgumentError, "Missing query string" unless args.length >= 1
|
126
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
97
|
+
solrize_from_csv
|
98
|
+
end
|
99
|
+
end
|
127
100
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
pids = []
|
134
|
-
connections.each do |conn|
|
135
|
-
response = Hash.from_xml(conn.find_objects(params))
|
136
|
-
pids << response["result"]["resultList"]["objectFields"].map{|x| x["pid"]}
|
101
|
+
def solrize_from_fedora_search(opts)
|
102
|
+
connections.each do |conn|
|
103
|
+
conn.search(nil) do |object|
|
104
|
+
solrize( object.pid, opts )
|
137
105
|
end
|
138
|
-
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def solrize_from_csv
|
110
|
+
raise ArgumentException, "#{@@index_list} does not exists!" unless File.exists?(@@index_list)
|
111
|
+
puts "Indexing from list at #{@@index_list}"
|
112
|
+
CSV.foreach(@@index_list) do |row|
|
113
|
+
pid = row[0]
|
114
|
+
solrize( pid )
|
115
|
+
end
|
139
116
|
end
|
140
117
|
|
141
118
|
private
|
data/solrizer-fedora.gemspec
CHANGED
@@ -20,11 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.rubyforge_project = "solrizer-fedora"
|
22
22
|
|
23
|
-
s.add_dependency('active-fedora', '~> 4.0.0
|
24
|
-
# s.add_dependency('rsolr', '>=1.0.6')
|
25
|
-
# s.add_dependency('solrizer', '>=1.0.0')
|
26
|
-
s.add_dependency('fastercsv') # this is used by solrize_objects when you pass it a csv file of pids
|
27
|
-
# s.add_dependency('activesupport', '>=3.0.11')
|
23
|
+
s.add_dependency('active-fedora', '~> 4.0.0')
|
28
24
|
s.add_development_dependency('jettywrapper', '>=1.1.0')
|
29
25
|
s.add_development_dependency('rdoc')
|
30
26
|
|
@@ -31,40 +31,36 @@ describe Solrizer::Fedora::Solrizer do
|
|
31
31
|
|
32
32
|
end
|
33
33
|
|
34
|
-
describe "
|
35
|
-
describe "when fedora is not sharded" do
|
36
|
-
it "should find_objects" do
|
37
|
-
@solrizer.find_objects(:limit=>2).should == ["fedora-system:ContentModel-3.0", "fedora-system:FedoraObject-3.0"]
|
38
|
-
end
|
39
|
-
end
|
34
|
+
describe "solrize_objects" do
|
40
35
|
describe "when fedora is sharded" do
|
41
36
|
before do
|
42
37
|
@mock1 = mock("connection1")
|
43
38
|
@mock2 = mock("connection2")
|
44
39
|
@solrizer.expects(:connections).returns([@mock1, @mock2])
|
40
|
+
@mock1.expects(:search).yields(stub('obj', :pid=>'one'))
|
41
|
+
@mock2.expects(:search).yields(stub('obj', :pid=>'two'))
|
45
42
|
end
|
46
43
|
it "should hit all the shards" do
|
47
|
-
@
|
48
|
-
@
|
49
|
-
|
50
|
-
@solrizer.find_objects(:limit=>2).should == ['one', 'two', 'three', 'four']
|
44
|
+
@solrizer.expects(:solrize).with('one', {})
|
45
|
+
@solrizer.expects(:solrize).with('two', {})
|
46
|
+
@solrizer.solrize_objects()
|
51
47
|
end
|
52
48
|
end
|
53
49
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
50
|
+
describe "with one connection" do
|
51
|
+
before do
|
52
|
+
@mock1 = mock("connection1")
|
53
|
+
@solrizer.expects(:connections).returns([@mock1])
|
54
|
+
@mock1.expects(:search).yields(stub('obj', :pid=>'one'))
|
55
|
+
end
|
56
|
+
it "should solrize_objects" do
|
57
|
+
@solrizer.expects(:solrize).with('one', {})
|
58
|
+
@solrizer.solrize_objects()
|
59
|
+
end
|
60
|
+
it "should pass optional suppress_errors argument into .solrize method" do
|
61
|
+
@solrizer.expects(:solrize).with( 'one', :suppress_errors => true )
|
62
|
+
@solrizer.solrize_objects( :suppress_errors => true )
|
63
|
+
end
|
68
64
|
end
|
69
65
|
end
|
70
66
|
end
|
metadata
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solrizer-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
|
11
|
-
- 2
|
12
|
-
version: 2.0.0.rc2
|
10
|
+
version: 2.0.0
|
13
11
|
platform: ruby
|
14
12
|
authors:
|
15
13
|
- Matt Zumwalt
|
@@ -17,7 +15,7 @@ autorequire:
|
|
17
15
|
bindir: bin
|
18
16
|
cert_chain: []
|
19
17
|
|
20
|
-
date: 2012-
|
18
|
+
date: 2012-04-23 00:00:00 Z
|
21
19
|
dependencies:
|
22
20
|
- !ruby/object:Gem::Dependency
|
23
21
|
name: active-fedora
|
@@ -27,34 +25,18 @@ dependencies:
|
|
27
25
|
requirements:
|
28
26
|
- - ~>
|
29
27
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
28
|
+
hash: 63
|
31
29
|
segments:
|
32
30
|
- 4
|
33
31
|
- 0
|
34
32
|
- 0
|
35
|
-
|
36
|
-
- 15
|
37
|
-
version: 4.0.0.rc15
|
33
|
+
version: 4.0.0
|
38
34
|
type: :runtime
|
39
35
|
version_requirements: *id001
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
name: fastercsv
|
42
|
-
prerelease: false
|
43
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
|
-
requirements:
|
46
|
-
- - ">="
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
hash: 3
|
49
|
-
segments:
|
50
|
-
- 0
|
51
|
-
version: "0"
|
52
|
-
type: :runtime
|
53
|
-
version_requirements: *id002
|
54
36
|
- !ruby/object:Gem::Dependency
|
55
37
|
name: jettywrapper
|
56
38
|
prerelease: false
|
57
|
-
requirement: &
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
58
40
|
none: false
|
59
41
|
requirements:
|
60
42
|
- - ">="
|
@@ -66,11 +48,11 @@ dependencies:
|
|
66
48
|
- 0
|
67
49
|
version: 1.1.0
|
68
50
|
type: :development
|
69
|
-
version_requirements: *
|
51
|
+
version_requirements: *id002
|
70
52
|
- !ruby/object:Gem::Dependency
|
71
53
|
name: rdoc
|
72
54
|
prerelease: false
|
73
|
-
requirement: &
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
74
56
|
none: false
|
75
57
|
requirements:
|
76
58
|
- - ">="
|
@@ -80,7 +62,7 @@ dependencies:
|
|
80
62
|
- 0
|
81
63
|
version: "0"
|
82
64
|
type: :development
|
83
|
-
version_requirements: *
|
65
|
+
version_requirements: *id003
|
84
66
|
description: An extension to projecthydra/solrizer that provides utilities for loading objects from Fedora Repositories and creating solr documents from them.
|
85
67
|
email: matt.zumwalt@yourmediashelf.com
|
86
68
|
executables: []
|
@@ -143,14 +125,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
126
|
none: false
|
145
127
|
requirements:
|
146
|
-
- - "
|
128
|
+
- - ">="
|
147
129
|
- !ruby/object:Gem::Version
|
148
|
-
hash:
|
130
|
+
hash: 3
|
149
131
|
segments:
|
150
|
-
-
|
151
|
-
|
152
|
-
- 1
|
153
|
-
version: 1.3.1
|
132
|
+
- 0
|
133
|
+
version: "0"
|
154
134
|
requirements: []
|
155
135
|
|
156
136
|
rubyforge_project: solrizer-fedora
|