solrizer-fedora 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []