solrizer-fedora 1.1.3 → 1.2.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 CHANGED
@@ -2,8 +2,10 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  solrizer-fedora (1.1.3)
5
- active-fedora (>= 2.3.0)
5
+ active-fedora (~> 3.1.0)
6
+ activesupport
6
7
  fastercsv
8
+ jettywrapper (~> 1.1.0)
7
9
  rsolr
8
10
  solr-ruby (>= 0.0.6)
9
11
  solrizer (>= 1.0.0)
@@ -12,39 +14,53 @@ GEM
12
14
  remote: http://rubygems.org/
13
15
  specs:
14
16
  RedCloth (4.2.8)
15
- active-fedora (2.3.5)
16
- activeresource
17
+ active-fedora (3.1.4)
18
+ activeresource (~> 3.0.0)
19
+ activesupport (~> 3.0.0)
17
20
  equivalent-xml
18
21
  facets
19
22
  mediashelf-loggable
20
23
  mime-types (>= 1.16)
21
24
  multipart-post (= 1.1.2)
22
25
  nokogiri
23
- om (>= 1.0)
26
+ om (>= 1.4.3)
27
+ rdf
28
+ rdf-rdfxml
29
+ rubydora (~> 0.2.6)
24
30
  solr-ruby (>= 0.0.6)
25
31
  solrizer (> 1.0.0)
26
32
  xml-simple (>= 1.0.12)
27
- activemodel (3.1.0)
28
- activesupport (= 3.1.0)
29
- bcrypt-ruby (~> 3.0.0)
30
- builder (~> 3.0.0)
31
- i18n (~> 0.6)
32
- activeresource (3.1.0)
33
- activemodel (= 3.1.0)
34
- activesupport (= 3.1.0)
35
- activesupport (3.1.0)
36
- multi_json (~> 1.0)
37
- bcrypt-ruby (3.0.0)
38
- builder (3.0.0)
33
+ activemodel (3.0.11)
34
+ activesupport (= 3.0.11)
35
+ builder (~> 2.1.2)
36
+ i18n (~> 0.5.0)
37
+ activeresource (3.0.11)
38
+ activemodel (= 3.0.11)
39
+ activesupport (= 3.0.11)
40
+ activesupport (3.0.11)
41
+ addressable (2.2.6)
42
+ akami (1.0.0)
43
+ gyoku (>= 0.4.0)
44
+ builder (2.1.2)
45
+ childprocess (0.2.2)
46
+ ffi (~> 1.0.6)
39
47
  columnize (0.3.4)
40
48
  daemons (1.1.4)
41
- equivalent-xml (0.2.7)
49
+ equivalent-xml (0.2.8)
42
50
  nokogiri (>= 1.4.3)
43
51
  facets (2.9.2)
44
52
  fastercsv (1.5.4)
53
+ ffi (1.0.11)
45
54
  git (1.2.5)
46
- i18n (0.6.0)
47
- jettywrapper (0.0.10)
55
+ gyoku (0.4.4)
56
+ builder (>= 2.1.2)
57
+ httpi (0.9.5)
58
+ rack
59
+ i18n (0.5.0)
60
+ jettywrapper (1.1.0)
61
+ activesupport (>= 3.0.0)
62
+ childprocess
63
+ i18n
48
64
  logger
49
65
  mediashelf-loggable
50
66
  jeweler (1.6.4)
@@ -55,17 +71,27 @@ GEM
55
71
  rbx-require-relative (> 0.0.4)
56
72
  logger (1.2.8)
57
73
  mediashelf-loggable (0.4.7)
58
- mime-types (1.16)
59
- mocha (0.9.12)
60
- multi_json (1.0.3)
74
+ metaclass (0.0.1)
75
+ mime-types (1.17.2)
76
+ mocha (0.10.0)
77
+ metaclass (~> 0.0.1)
61
78
  multipart-post (1.1.2)
62
79
  nokogiri (1.5.0)
63
- om (1.4.0)
80
+ nori (1.0.2)
81
+ om (1.4.3)
64
82
  mediashelf-loggable
65
83
  nokogiri (>= 1.4.2)
66
- rake (0.9.2)
84
+ rack (1.3.5)
85
+ rake (0.9.2.2)
67
86
  rbx-require-relative (0.0.5)
68
- rcov (0.9.10)
87
+ rcov (0.9.11)
88
+ rdf (0.3.4.1)
89
+ addressable (>= 2.2.6)
90
+ rdf-rdfxml (0.3.5)
91
+ nokogiri (>= 1.4.4)
92
+ rdf (>= 0.3.4)
93
+ rest-client (1.6.7)
94
+ mime-types (>= 1.16)
69
95
  rsolr (1.0.2)
70
96
  builder (>= 2.1.2)
71
97
  rspec (1.3.2)
@@ -74,17 +100,35 @@ GEM
74
100
  ruby-debug-base (~> 0.10.4.0)
75
101
  ruby-debug-base (0.10.4)
76
102
  linecache (>= 0.3)
103
+ rubydora (0.2.6)
104
+ activemodel
105
+ activesupport
106
+ fastercsv
107
+ mime-types
108
+ nokogiri
109
+ rest-client
110
+ savon
111
+ savon (0.9.7)
112
+ akami (~> 1.0)
113
+ builder (>= 2.1.2)
114
+ gyoku (>= 0.4.0)
115
+ httpi (~> 0.9)
116
+ nokogiri (>= 1.4.0)
117
+ nori (~> 1.0)
118
+ wasabi (~> 2.0)
77
119
  solr-ruby (0.0.8)
78
- solrizer (1.1.0)
120
+ solrizer (1.1.2)
79
121
  daemons
80
122
  mediashelf-loggable
81
123
  nokogiri
82
- om (>= 1.0.0)
124
+ om (>= 1.4.0)
83
125
  stomp
84
126
  xml-simple
85
- stomp (1.1.9)
86
- xml-simple (1.1.0)
87
- yard (0.7.2)
127
+ stomp (1.1.10)
128
+ wasabi (2.0.0)
129
+ nokogiri (>= 1.4.0)
130
+ xml-simple (1.1.1)
131
+ yard (0.7.3)
88
132
 
89
133
  PLATFORMS
90
134
  ruby
data/History.textile CHANGED
@@ -1,3 +1,6 @@
1
+ h2. 1.2.0
2
+ Now requires active-fedora 3.1.x.
3
+
1
4
  h2. 1.1.3
2
5
  Fixed a bug where we were doing two unnecessary queries against solr for each object passed in.
3
6
 
@@ -5,6 +5,7 @@ require 'solrizer/fedora/indexer'
5
5
  require 'solrizer/xml'
6
6
  require 'solrizer/html'
7
7
 
8
+ require 'active_support/core_ext/hash'
8
9
  # Let people explicitly require xml support if they want it ...
9
10
  # require 'solrizer/xml.rb'
10
11
 
@@ -14,6 +15,11 @@ require "ruby-debug"
14
15
 
15
16
  module Solrizer::Fedora
16
17
  class Solrizer
18
+ ALL_FIELDS = [
19
+ :pid, :label, :fType, :cModel, :state, :ownerId, :cDate, :mDate, :dcmDate,
20
+ :bMech, :title, :creator, :subject, :description, :contributor,
21
+ :date, :type, :format, :identifier, :source, :language, :relation, :coverage, :rights
22
+ ]
17
23
 
18
24
  attr_accessor :indexer, :index_full_text
19
25
 
@@ -93,7 +99,7 @@ class Solrizer
93
99
 
94
100
  if @@index_list == false
95
101
 
96
- objects = ::Fedora::Repository.instance.find_objects(:limit=>num_docs)
102
+ objects = find_objects(:limit=>num_docs)
97
103
 
98
104
  puts "Shelving #{objects.length} Fedora objects"
99
105
  objects.each do |object|
@@ -119,5 +125,19 @@ class Solrizer
119
125
  end #if Index_LISTS
120
126
  end #solrize_objects
121
127
 
128
+ def find_objects(*args)
129
+ raise ArgumentError, "Missing query string" unless args.length >= 1
130
+ options = args.last.is_a?(Hash) ? args.pop : {}
131
+
132
+ params = {}
133
+ params[:query] = ''
134
+ params[:maxResults] = options[:limit] if options[:limit]
135
+ params[:pid] = true
136
+ connection = ActiveFedora::RubydoraConnection.instance.connection
137
+ response = Hash.from_xml(connection.find_objects(params))
138
+ response["result"]["resultList"]["objectFields"].map{|x| x["pid"]}
139
+ end
140
+
141
+
122
142
  end #class
123
143
  end #module
@@ -1,5 +1,5 @@
1
1
  module Solrizer
2
2
  module Fedora
3
- VERSION = "1.1.3"
3
+ VERSION = "1.2.0"
4
4
  end
5
5
  end
@@ -1,3 +1,5 @@
1
+ require 'jettywrapper'
2
+ APP_ROOT = File.expand_path("../..",File.dirname(__FILE__))
1
3
  desc "Task to execute builds on a Hudson Continuous Integration Server."
2
4
  task :hudson do
3
5
  if (ENV['RAILS_ENV'] == "test")
@@ -22,10 +22,12 @@ Gem::Specification.new do |s|
22
22
  s.rubyforge_project = "solrizer-fedora"
23
23
 
24
24
  s.add_dependency('solr-ruby', '>= 0.0.6')
25
- s.add_dependency('active-fedora', '>= 2.3.0')
25
+ s.add_dependency('active-fedora', '~> 3.1.0')
26
26
  s.add_dependency('rsolr')
27
27
  s.add_dependency('solrizer', '>=1.0.0')
28
28
  s.add_dependency('fastercsv') # this is used by solrize_objects when you pass it a csv file of pids
29
+ s.add_dependency('jettywrapper', '~> 1.1.0')
30
+ s.add_dependency('activesupport')
29
31
 
30
32
  s.files = `git ls-files`.split("\n")
31
33
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -13,7 +13,7 @@ describe Solrizer::Fedora::Solrizer do
13
13
  @solrizer.solrize( sample_obj )
14
14
  end
15
15
  it "should work with Fedora::FedoraObject objects" do
16
- mock_object = Fedora::FedoraObject.new(:pid=>"my:pid", :label=>"my label")
16
+ mock_object = stub(:pid=>"my:pid", :label=>"my label")
17
17
  ActiveFedora::Base.expects(:load_instance).with( mock_object.pid ).returns(mock_object)
18
18
  @solrizer.indexer.expects(:index).with( mock_object )
19
19
  @solrizer.solrize( mock_object )
@@ -32,17 +32,17 @@ describe Solrizer::Fedora::Solrizer do
32
32
  end
33
33
 
34
34
  describe "solrize_objects" do
35
+ before do
36
+ @objects = ["pid1", "pid2", "pid3"]
37
+ @solrizer.expects(:find_objects).returns(@objects)
38
+ end
35
39
  it "should call solrize for each object returned by Fedora::Repository.find_objects" do
36
- objects = [["pid1"], ["pid2"], ["pid3"]]
37
- Fedora::Repository.any_instance.expects(:find_objects).returns(objects)
38
- objects.each {|object| @solrizer.expects(:solrize).with( object, {} ) }
40
+ @objects.each {|x| @solrizer.expects(:solrize).with( x, {}) }
39
41
  @solrizer.solrize_objects
40
42
  end
41
43
  it "should pass optional suppress_errors argument into .solrize method" do
42
- objects = [["pid1"], ["pid2"], ["pid3"]]
43
- Fedora::Repository.any_instance.expects(:find_objects).returns(objects)
44
- objects.each {|object| @solrizer.expects(:solrize).with( object, :suppress_errors => true ) }
44
+ @objects.each {|x| @solrizer.expects(:solrize).with( x, :suppress_errors => true ) }
45
45
  @solrizer.solrize_objects( :suppress_errors => true )
46
46
  end
47
47
  end
48
- end
48
+ end
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: 21
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 3
10
- version: 1.1.3
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matt Zumwalt
@@ -40,14 +40,14 @@ dependencies:
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ">="
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  hash: 3
46
46
  segments:
47
- - 2
48
47
  - 3
48
+ - 1
49
49
  - 0
50
- version: 2.3.0
50
+ version: 3.1.0
51
51
  type: :runtime
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
@@ -94,6 +94,36 @@ dependencies:
94
94
  version: "0"
95
95
  type: :runtime
96
96
  version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: jettywrapper
99
+ prerelease: false
100
+ requirement: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ~>
104
+ - !ruby/object:Gem::Version
105
+ hash: 19
106
+ segments:
107
+ - 1
108
+ - 1
109
+ - 0
110
+ version: 1.1.0
111
+ type: :runtime
112
+ version_requirements: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ name: activesupport
115
+ prerelease: false
116
+ requirement: &id007 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ hash: 3
122
+ segments:
123
+ - 0
124
+ version: "0"
125
+ type: :runtime
126
+ version_requirements: *id007
97
127
  description: An extension to projecthydra/solrizer that provides utilities for loading objects from Fedora Repositories and creating solr documents from them.
98
128
  email: matt.zumwalt@yourmediashelf.com
99
129
  executables: []