active-fedora 4.0.0 → 4.1.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 +4 -4
- data/lib/active_fedora/associations.rb +1 -1
- data/lib/active_fedora/file_configurator.rb +35 -4
- data/lib/active_fedora/model.rb +40 -1
- data/lib/active_fedora/nokogiri_datastream.rb +3 -1
- data/lib/active_fedora/version.rb +1 -1
- data/spec/integration/associations_spec.rb +3 -0
- data/spec/unit/active_fedora_spec.rb +1 -10
- data/spec/unit/base_spec.rb +5 -1
- data/spec/unit/file_configurator_spec.rb +45 -3
- data/spec/unit/model_spec.rb +25 -0
- data/spec/unit/nokogiri_datastream_spec.rb +6 -0
- metadata +45 -151
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
active-fedora (4.
|
4
|
+
active-fedora (4.1.0)
|
5
5
|
activeresource (>= 3.0.0)
|
6
6
|
activesupport (>= 3.0.0)
|
7
7
|
equivalent-xml
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
activesupport (3.2.2)
|
31
31
|
i18n (~> 0.6)
|
32
32
|
multi_json (~> 1.0)
|
33
|
-
addressable (2.2.
|
33
|
+
addressable (2.2.8)
|
34
34
|
akami (1.0.0)
|
35
35
|
gyoku (>= 0.4.0)
|
36
36
|
builder (3.0.0)
|
@@ -44,7 +44,7 @@ GEM
|
|
44
44
|
ffi (1.0.11)
|
45
45
|
gyoku (0.4.4)
|
46
46
|
builder (>= 2.1.2)
|
47
|
-
httpi (0.9.
|
47
|
+
httpi (0.9.7)
|
48
48
|
rack
|
49
49
|
i18n (0.6.0)
|
50
50
|
jettywrapper (1.2.1)
|
@@ -75,7 +75,7 @@ GEM
|
|
75
75
|
rdf (>= 0.3.4)
|
76
76
|
rest-client (1.6.7)
|
77
77
|
mime-types (>= 1.16)
|
78
|
-
rsolr (1.0.
|
78
|
+
rsolr (1.0.8)
|
79
79
|
builder (>= 2.1.2)
|
80
80
|
rspec (2.9.0)
|
81
81
|
rspec-core (~> 2.9.0)
|
@@ -209,7 +209,7 @@ module ActiveFedora
|
|
209
209
|
end
|
210
210
|
|
211
211
|
redefine_method("#{reflection.name}_id=") do |new_value|
|
212
|
-
obj = new_value.
|
212
|
+
obj = new_value.blank? ? nil : reflection.klass.find(new_value)
|
213
213
|
send("#{reflection.name}=", obj)
|
214
214
|
end
|
215
215
|
redefine_method("#{reflection.name}_id") do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
1
3
|
module ActiveFedora
|
2
4
|
class FileConfigurator
|
3
5
|
|
@@ -103,8 +105,25 @@ module ActiveFedora
|
|
103
105
|
|
104
106
|
def load_fedora_config
|
105
107
|
return @fedora_config unless @fedora_config.empty?
|
106
|
-
|
107
|
-
|
108
|
+
@fedora_config_path = get_config_path(:fedora)
|
109
|
+
logger.info("ActiveFedora: loading fedora config from #{File.expand_path(@fedora_config_path)}")
|
110
|
+
|
111
|
+
begin
|
112
|
+
config_erb = ERB.new(IO.read(@fedora_config_path)).result(binding)
|
113
|
+
rescue Exception => e
|
114
|
+
raise("fedora.yml was found, but could not be parsed with ERB. \n#{$!.inspect}")
|
115
|
+
end
|
116
|
+
|
117
|
+
begin
|
118
|
+
fedora_yml = YAML::load(config_erb)
|
119
|
+
rescue StandardError => e
|
120
|
+
raise("fedora.yml was found, but could not be parsed.\n")
|
121
|
+
end
|
122
|
+
|
123
|
+
config = fedora_yml.symbolize_keys
|
124
|
+
|
125
|
+
cfg = config[ActiveFedora.environment.to_sym] || {}
|
126
|
+
@fedora_config = cfg.kind_of?(Array) ? cfg.map(&:symbolize_keys) : cfg.symbolize_keys
|
108
127
|
end
|
109
128
|
|
110
129
|
def load_solr_config
|
@@ -112,8 +131,20 @@ module ActiveFedora
|
|
112
131
|
@solr_config_path = get_config_path(:solr)
|
113
132
|
|
114
133
|
logger.info("ActiveFedora: loading solr config from #{File.expand_path(@solr_config_path)}")
|
115
|
-
|
116
|
-
|
134
|
+
begin
|
135
|
+
config_erb = ERB.new(IO.read(@solr_config_path)).result(binding)
|
136
|
+
rescue Exception => e
|
137
|
+
raise("solr.yml was found, but could not be parsed with ERB. \n#{$!.inspect}")
|
138
|
+
end
|
139
|
+
|
140
|
+
begin
|
141
|
+
solr_yml = YAML::load(config_erb)
|
142
|
+
rescue StandardError => e
|
143
|
+
raise("solr.yml was found, but could not be parsed.\n")
|
144
|
+
end
|
145
|
+
|
146
|
+
config = solr_yml.symbolize_keys
|
147
|
+
raise "The #{ActiveFedora.environment.to_sym} environment settings were not found in the solr.yml config. If you already have a solr.yml file defined, make sure it defines settings for the #{ActiveFedora.environment.to_sym} environment" unless config[ActiveFedora.environment.to_sym]
|
117
148
|
@solr_config = {:url=> get_solr_url(config[ActiveFedora.environment.to_sym].symbolize_keys)}
|
118
149
|
end
|
119
150
|
|
data/lib/active_fedora/model.rb
CHANGED
@@ -97,7 +97,7 @@ module ActiveFedora
|
|
97
97
|
# Returns an Array of objects of the Class that +find+ is being
|
98
98
|
# called on
|
99
99
|
#
|
100
|
-
# @param[String,Symbol] either a pid or :all
|
100
|
+
# @param[String,Symbol, Hash] either a pid or :all or a hash of conditions
|
101
101
|
# @param [Hash] opts the options to create a message with.
|
102
102
|
# @option opts [Integer] :rows when :all is passed, the maximum number of rows to load from solr
|
103
103
|
# @option opts [Boolean] :cast when true, examine the model and cast it to the first known cModel
|
@@ -111,11 +111,18 @@ module ActiveFedora
|
|
111
111
|
pid = hit[SOLR_DOCUMENT_ID]
|
112
112
|
find_one(pid, opts[:cast])
|
113
113
|
end
|
114
|
+
elsif args.class == Hash
|
115
|
+
hits = find_with_conditions(args, opts)
|
116
|
+
return hits.map do |hit|
|
117
|
+
pid = hit[SOLR_DOCUMENT_ID]
|
118
|
+
find_one(pid, opts[:cast])
|
119
|
+
end
|
114
120
|
elsif args.class == String
|
115
121
|
return find_one(args, opts[:cast])
|
116
122
|
end
|
117
123
|
end
|
118
124
|
|
125
|
+
|
119
126
|
# Returns true if the pid exists in the repository
|
120
127
|
# @param[String] pid
|
121
128
|
# @return[boolean]
|
@@ -250,6 +257,38 @@ module ActiveFedora
|
|
250
257
|
logger.debug "Querying solr for #{self.name} objects with query: '#{query}'"
|
251
258
|
SolrService.query(query, query_opts)
|
252
259
|
end
|
260
|
+
|
261
|
+
# @param[Hash] conditions
|
262
|
+
def find_with_conditions(conditions, opts={})
|
263
|
+
escaped_class_uri = SolrService.escape_uri_for_query(self.to_class_uri)
|
264
|
+
clauses = ["#{ActiveFedora::SolrService.solr_name(:has_model, :symbol)}:#{escaped_class_uri}"]
|
265
|
+
conditions.each_pair do |key,value|
|
266
|
+
unless value.nil?
|
267
|
+
if value.is_a? Array
|
268
|
+
value.each do |val|
|
269
|
+
clauses << "#{key}:#{quote_for_solr(val)}"
|
270
|
+
end
|
271
|
+
else
|
272
|
+
key = SOLR_DOCUMENT_ID if (key === :id || key === :pid)
|
273
|
+
escaped_value = quote_for_solr(value)
|
274
|
+
clauses << (key.to_s.eql?(SOLR_DOCUMENT_ID) ? "#{key}:#{escaped_value}" : "#{key}:#{escaped_value}")
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
query = clauses.join(" AND ")
|
280
|
+
|
281
|
+
#set default sort to created date ascending
|
282
|
+
unless opts.include?(:sort)
|
283
|
+
opts[:sort]=[ActiveFedora::SolrService.solr_name(:system_create,:date)+' asc']
|
284
|
+
end
|
285
|
+
SolrService.query(query, opts)
|
286
|
+
end
|
287
|
+
|
288
|
+
def quote_for_solr(value)
|
289
|
+
'"' + value.gsub(/(:)/, '\\:').gsub(/"/, '\\"') + '"'
|
290
|
+
end
|
291
|
+
|
253
292
|
|
254
293
|
def class_fields
|
255
294
|
#create dummy object that is empty by passing in fake pid
|
@@ -57,8 +57,10 @@ module ActiveFedora
|
|
57
57
|
self.xml_loaded=true
|
58
58
|
self.dirty = true
|
59
59
|
case new_xml
|
60
|
-
when Nokogiri::XML::Document
|
60
|
+
when Nokogiri::XML::Document
|
61
61
|
@ng_xml = new_xml
|
62
|
+
when Nokogiri::XML::Node
|
63
|
+
@ng_xml = Nokogiri::XML(new_xml.to_s) ## Cast a fragment to a document
|
62
64
|
when String
|
63
65
|
@ng_xml = Nokogiri::XML::Document.parse(new_xml)
|
64
66
|
else
|
@@ -111,6 +111,9 @@ describe ActiveFedora::Base do
|
|
111
111
|
@book = Book.new
|
112
112
|
@book.save
|
113
113
|
end
|
114
|
+
it "shouldn't do anything if you set a nil id" do
|
115
|
+
@book.library_id = nil
|
116
|
+
end
|
114
117
|
it "should be settable from the book side" do
|
115
118
|
@book.library_id = @library.pid
|
116
119
|
@book.library.should == @library
|
@@ -57,11 +57,7 @@ describe ActiveFedora do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
describe "outside of rails" do
|
60
|
-
|
61
|
-
ActiveFedora.init()
|
62
|
-
ActiveFedora.config.credentials.should == {:url=> "http://127.0.0.1:8983/fedora-test", :user=>'fedoraAdmin', :password=>'fedoraAdmin'}
|
63
|
-
end
|
64
|
-
it "should load the passed config if explicit config passed in as a string" do
|
60
|
+
it "should load the passed config if explicit config passed in as a string" do
|
65
61
|
ActiveFedora.init(:fedora_config_path=>'./spec/fixtures/rails_root/config/fedora.yml', :environment => 'test')
|
66
62
|
ActiveFedora.config.credentials.should == {:url=> "http://testhost.com:8983/fedora", :user=>'fedoraAdmin', :password=>'fedoraAdmin'}
|
67
63
|
end
|
@@ -99,11 +95,6 @@ describe ActiveFedora do
|
|
99
95
|
ActiveFedora.init()
|
100
96
|
ActiveFedora.config.credentials[:url].should == "http://testhost.com:8983/fedora"
|
101
97
|
end
|
102
|
-
it "should load the default file if no config is found at Rails.root" do
|
103
|
-
stub_rails(:root=>File.join(File.dirname(__FILE__),"../fixtures/bad/path/to/rails_root"))
|
104
|
-
ActiveFedora.init()
|
105
|
-
ActiveFedora.config.credentials[:url].should == "http://127.0.0.1:8983/fedora-test"
|
106
|
-
end
|
107
98
|
end
|
108
99
|
end
|
109
100
|
end
|
data/spec/unit/base_spec.rb
CHANGED
@@ -13,9 +13,13 @@ describe ActiveFedora::Base do
|
|
13
13
|
end
|
14
14
|
context "When the server is not sharded" do
|
15
15
|
subject {ActiveFedora::Base.connection_for_pid('foo:bar')}
|
16
|
+
before(:each) do
|
17
|
+
ActiveFedora.config.expects(:sharded?).returns(false)
|
18
|
+
ActiveFedora.config.expects(:credentials).returns(:url=>'myfedora')
|
19
|
+
end
|
16
20
|
it { should be_kind_of Rubydora::Repository}
|
17
21
|
it "should be the standard connection" do
|
18
|
-
subject.client.url.should == '
|
22
|
+
subject.client.url.should == 'myfedora'
|
19
23
|
end
|
20
24
|
end
|
21
25
|
context "When the repository is sharded" do
|
@@ -32,7 +32,8 @@ describe ActiveFedora::FileConfigurator do
|
|
32
32
|
subject.reset!
|
33
33
|
end
|
34
34
|
it "should trigger configuration to load" do
|
35
|
-
subject.
|
35
|
+
subject.expects(:load_fedora_config).at_least_once
|
36
|
+
subject.fedora_config
|
36
37
|
end
|
37
38
|
end
|
38
39
|
describe "#solr_config" do
|
@@ -40,7 +41,8 @@ describe ActiveFedora::FileConfigurator do
|
|
40
41
|
subject.reset!
|
41
42
|
end
|
42
43
|
it "should trigger configuration to load" do
|
43
|
-
subject.
|
44
|
+
subject.expects(:load_solr_config).at_least_once
|
45
|
+
subject.solr_config
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
@@ -138,14 +140,54 @@ describe ActiveFedora::FileConfigurator do
|
|
138
140
|
|
139
141
|
end
|
140
142
|
|
143
|
+
describe "load_fedora_config" do
|
144
|
+
before(:each) do
|
145
|
+
subject.reset!
|
146
|
+
end
|
147
|
+
it "should load the file specified in fedora_config_path" do
|
148
|
+
subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
|
149
|
+
subject.expects(:load_solr_config)
|
150
|
+
IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n url: http://devfedora:8983\ntest:\n url: http://myfedora:8080")
|
151
|
+
subject.load_fedora_config.should == {:url=>"http://myfedora:8080"}
|
152
|
+
subject.fedora_config.should == {:url=>"http://myfedora:8080"}
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should allow sharding" do
|
156
|
+
subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
|
157
|
+
subject.expects(:load_solr_config)
|
158
|
+
IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
|
159
|
+
subject.load_fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
|
160
|
+
subject.fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should parse the file using ERb" do
|
164
|
+
subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
|
165
|
+
subject.expects(:load_solr_config)
|
166
|
+
IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n url: http://devfedora:<%= 8983 %>\ntest:\n url: http://myfedora:<%= 8081 %>")
|
167
|
+
subject.load_fedora_config.should == {:url=>"http://myfedora:8081"}
|
168
|
+
subject.fedora_config.should == {:url=>"http://myfedora:8081"}
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
141
172
|
describe "load_solr_config" do
|
173
|
+
before(:each) do
|
174
|
+
subject.reset!
|
175
|
+
end
|
142
176
|
it "should load the file specified in solr_config_path" do
|
143
177
|
subject.expects(:get_config_path).with(:solr).returns("/path/to/solr.yml")
|
144
178
|
subject.expects(:load_fedora_config)
|
145
|
-
|
179
|
+
IO.expects(:read).with("/path/to/solr.yml").returns("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
|
146
180
|
subject.load_solr_config.should == {:url=>"http://mysolr:8080"}
|
147
181
|
subject.solr_config.should == {:url=>"http://mysolr:8080"}
|
148
182
|
end
|
183
|
+
|
184
|
+
it "should parse the file using ERb" do
|
185
|
+
subject.expects(:get_config_path).with(:solr).returns("/path/to/solr.yml")
|
186
|
+
subject.expects(:load_fedora_config)
|
187
|
+
IO.expects(:read).with("/path/to/solr.yml").returns("development:\n default:\n url: http://devsolr:<%= 8983 %>\ntest:\n default:\n url: http://mysolr:<%= 8081 %>")
|
188
|
+
subject.load_solr_config.should == {:url=>"http://mysolr:8081"}
|
189
|
+
subject.solr_config.should == {:url=>"http://mysolr:8081"}
|
190
|
+
end
|
149
191
|
end
|
150
192
|
|
151
193
|
describe "load_configs" do
|
data/spec/unit/model_spec.rb
CHANGED
@@ -93,6 +93,16 @@ describe ActiveFedora::Model do
|
|
93
93
|
SpecModel::Basic.find("_PID_", :cast=>true)
|
94
94
|
end
|
95
95
|
end
|
96
|
+
|
97
|
+
describe "with conditions hash" do
|
98
|
+
it "should filter by the provided fields" do
|
99
|
+
SpecModel::Basic.expects(:find_one).with("changeme:30", nil).returns("Fake Object1")
|
100
|
+
SpecModel::Basic.expects(:find_one).with("changeme:22", nil).returns("Fake Object2")
|
101
|
+
|
102
|
+
ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"bar" AND baz:"quix" AND baz:"quack"', {:sort => ['system_create_dt asc'], :rows=>1002}).returns([{"id" => "changeme:30"}, {"id" => "changeme:22"}])
|
103
|
+
SpecModel::Basic.find({:foo=>'bar', :baz=>['quix','quack']}, {:rows=>1002}).should == ["Fake Object1", "Fake Object2"]
|
104
|
+
end
|
105
|
+
end
|
96
106
|
end
|
97
107
|
|
98
108
|
describe '#count' do
|
@@ -123,6 +133,21 @@ describe ActiveFedora::Model do
|
|
123
133
|
SpecModel::Basic.find_by_solr("changeme:30").should equal(mock_response)
|
124
134
|
end
|
125
135
|
end
|
136
|
+
|
137
|
+
describe '#find_with_conditions' do
|
138
|
+
it "should make a query to solr and return the results" do
|
139
|
+
mock_result = stub('Result')
|
140
|
+
ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"bar" AND baz:"quix" AND baz:"quack"', {:sort => ['system_create_dt asc']}).returns(mock_result)
|
141
|
+
SpecModel::Basic.find_with_conditions(:foo=>'bar', :baz=>['quix','quack']).should == mock_result
|
142
|
+
|
143
|
+
end
|
144
|
+
it "should escape quotes" do
|
145
|
+
mock_result = stub('Result')
|
146
|
+
ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"9\\" Nails" AND baz:"7\\" version" AND baz:"quack"', {:sort => ['system_create_dt asc']}).returns(mock_result)
|
147
|
+
SpecModel::Basic.find_with_conditions(:foo=>'9" Nails', :baz=>['7" version','quack']).should == mock_result
|
148
|
+
|
149
|
+
end
|
150
|
+
end
|
126
151
|
|
127
152
|
describe "load_instance" do
|
128
153
|
it "should use SpecModel::Basic.allocate.init_with to instantiate an object" do
|
@@ -206,6 +206,12 @@ describe ActiveFedora::NokogiriDatastream do
|
|
206
206
|
@test_ds2.ng_xml.class.should == Nokogiri::XML::Document
|
207
207
|
@test_ds2.ng_xml.to_xml.should be_equivalent_to(@sample_raw_xml)
|
208
208
|
end
|
209
|
+
|
210
|
+
it "Should always set a document when an Element is passed" do
|
211
|
+
@test_ds2.ng_xml = Nokogiri::XML(@sample_raw_xml).xpath('//xmlelement').first
|
212
|
+
@test_ds2.ng_xml.should be_kind_of Nokogiri::XML::Document
|
213
|
+
@test_ds2.ng_xml.to_xml.should be_equivalent_to("<xmlelement/>")
|
214
|
+
end
|
209
215
|
it "should mark the datastream as dirty" do
|
210
216
|
@test_ds2.dirty.should be_false
|
211
217
|
@test_ds2.ng_xml = @sample_raw_xml
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-05-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rsolr
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirement: &70192625579460 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ! '>='
|
@@ -23,15 +23,10 @@ dependencies:
|
|
23
23
|
version: '0'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
27
|
-
none: false
|
28
|
-
requirements:
|
29
|
-
- - ! '>='
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
version: '0'
|
26
|
+
version_requirements: *70192625579460
|
32
27
|
- !ruby/object:Gem::Dependency
|
33
28
|
name: xml-simple
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirement: &70192625578620 !ruby/object:Gem::Requirement
|
35
30
|
none: false
|
36
31
|
requirements:
|
37
32
|
- - ! '>='
|
@@ -39,15 +34,10 @@ dependencies:
|
|
39
34
|
version: 1.0.12
|
40
35
|
type: :runtime
|
41
36
|
prerelease: false
|
42
|
-
version_requirements:
|
43
|
-
none: false
|
44
|
-
requirements:
|
45
|
-
- - ! '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 1.0.12
|
37
|
+
version_requirements: *70192625578620
|
48
38
|
- !ruby/object:Gem::Dependency
|
49
39
|
name: mime-types
|
50
|
-
requirement: !ruby/object:Gem::Requirement
|
40
|
+
requirement: &70192625577920 !ruby/object:Gem::Requirement
|
51
41
|
none: false
|
52
42
|
requirements:
|
53
43
|
- - ! '>='
|
@@ -55,31 +45,21 @@ dependencies:
|
|
55
45
|
version: '1.16'
|
56
46
|
type: :runtime
|
57
47
|
prerelease: false
|
58
|
-
version_requirements:
|
59
|
-
none: false
|
60
|
-
requirements:
|
61
|
-
- - ! '>='
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '1.16'
|
48
|
+
version_requirements: *70192625577920
|
64
49
|
- !ruby/object:Gem::Dependency
|
65
50
|
name: multipart-post
|
66
|
-
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirement: &70192625577060 !ruby/object:Gem::Requirement
|
67
52
|
none: false
|
68
53
|
requirements:
|
69
|
-
- -
|
54
|
+
- - =
|
70
55
|
- !ruby/object:Gem::Version
|
71
56
|
version: 1.1.2
|
72
57
|
type: :runtime
|
73
58
|
prerelease: false
|
74
|
-
version_requirements:
|
75
|
-
none: false
|
76
|
-
requirements:
|
77
|
-
- - '='
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 1.1.2
|
59
|
+
version_requirements: *70192625577060
|
80
60
|
- !ruby/object:Gem::Dependency
|
81
61
|
name: nokogiri
|
82
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirement: &70192625534600 !ruby/object:Gem::Requirement
|
83
63
|
none: false
|
84
64
|
requirements:
|
85
65
|
- - ! '>='
|
@@ -87,15 +67,10 @@ dependencies:
|
|
87
67
|
version: '0'
|
88
68
|
type: :runtime
|
89
69
|
prerelease: false
|
90
|
-
version_requirements:
|
91
|
-
none: false
|
92
|
-
requirements:
|
93
|
-
- - ! '>='
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
70
|
+
version_requirements: *70192625534600
|
96
71
|
- !ruby/object:Gem::Dependency
|
97
72
|
name: om
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirement: &70192625533500 !ruby/object:Gem::Requirement
|
99
74
|
none: false
|
100
75
|
requirements:
|
101
76
|
- - ~>
|
@@ -103,15 +78,10 @@ dependencies:
|
|
103
78
|
version: 1.6.0
|
104
79
|
type: :runtime
|
105
80
|
prerelease: false
|
106
|
-
version_requirements:
|
107
|
-
none: false
|
108
|
-
requirements:
|
109
|
-
- - ~>
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: 1.6.0
|
81
|
+
version_requirements: *70192625533500
|
112
82
|
- !ruby/object:Gem::Dependency
|
113
83
|
name: solrizer
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirement: &70192625531500 !ruby/object:Gem::Requirement
|
115
85
|
none: false
|
116
86
|
requirements:
|
117
87
|
- - ~>
|
@@ -119,15 +89,10 @@ dependencies:
|
|
119
89
|
version: 1.2.0
|
120
90
|
type: :runtime
|
121
91
|
prerelease: false
|
122
|
-
version_requirements:
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ~>
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: 1.2.0
|
92
|
+
version_requirements: *70192625531500
|
128
93
|
- !ruby/object:Gem::Dependency
|
129
94
|
name: activeresource
|
130
|
-
requirement: !ruby/object:Gem::Requirement
|
95
|
+
requirement: &70192625530520 !ruby/object:Gem::Requirement
|
131
96
|
none: false
|
132
97
|
requirements:
|
133
98
|
- - ! '>='
|
@@ -135,15 +100,10 @@ dependencies:
|
|
135
100
|
version: 3.0.0
|
136
101
|
type: :runtime
|
137
102
|
prerelease: false
|
138
|
-
version_requirements:
|
139
|
-
none: false
|
140
|
-
requirements:
|
141
|
-
- - ! '>='
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: 3.0.0
|
103
|
+
version_requirements: *70192625530520
|
144
104
|
- !ruby/object:Gem::Dependency
|
145
105
|
name: activesupport
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirement: &70192625529820 !ruby/object:Gem::Requirement
|
147
107
|
none: false
|
148
108
|
requirements:
|
149
109
|
- - ! '>='
|
@@ -151,15 +111,10 @@ dependencies:
|
|
151
111
|
version: 3.0.0
|
152
112
|
type: :runtime
|
153
113
|
prerelease: false
|
154
|
-
version_requirements:
|
155
|
-
none: false
|
156
|
-
requirements:
|
157
|
-
- - ! '>='
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 3.0.0
|
114
|
+
version_requirements: *70192625529820
|
160
115
|
- !ruby/object:Gem::Dependency
|
161
116
|
name: mediashelf-loggable
|
162
|
-
requirement: !ruby/object:Gem::Requirement
|
117
|
+
requirement: &70192625529300 !ruby/object:Gem::Requirement
|
163
118
|
none: false
|
164
119
|
requirements:
|
165
120
|
- - ! '>='
|
@@ -167,15 +122,10 @@ dependencies:
|
|
167
122
|
version: '0'
|
168
123
|
type: :runtime
|
169
124
|
prerelease: false
|
170
|
-
version_requirements:
|
171
|
-
none: false
|
172
|
-
requirements:
|
173
|
-
- - ! '>='
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
version: '0'
|
125
|
+
version_requirements: *70192625529300
|
176
126
|
- !ruby/object:Gem::Dependency
|
177
127
|
name: equivalent-xml
|
178
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirement: &70192625528640 !ruby/object:Gem::Requirement
|
179
129
|
none: false
|
180
130
|
requirements:
|
181
131
|
- - ! '>='
|
@@ -183,15 +133,10 @@ dependencies:
|
|
183
133
|
version: '0'
|
184
134
|
type: :runtime
|
185
135
|
prerelease: false
|
186
|
-
version_requirements:
|
187
|
-
none: false
|
188
|
-
requirements:
|
189
|
-
- - ! '>='
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '0'
|
136
|
+
version_requirements: *70192625528640
|
192
137
|
- !ruby/object:Gem::Dependency
|
193
138
|
name: rubydora
|
194
|
-
requirement: !ruby/object:Gem::Requirement
|
139
|
+
requirement: &70192625528120 !ruby/object:Gem::Requirement
|
195
140
|
none: false
|
196
141
|
requirements:
|
197
142
|
- - ~>
|
@@ -199,15 +144,10 @@ dependencies:
|
|
199
144
|
version: 0.5.8
|
200
145
|
type: :runtime
|
201
146
|
prerelease: false
|
202
|
-
version_requirements:
|
203
|
-
none: false
|
204
|
-
requirements:
|
205
|
-
- - ~>
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
version: 0.5.8
|
147
|
+
version_requirements: *70192625528120
|
208
148
|
- !ruby/object:Gem::Dependency
|
209
149
|
name: rdf
|
210
|
-
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirement: &70192625527680 !ruby/object:Gem::Requirement
|
211
151
|
none: false
|
212
152
|
requirements:
|
213
153
|
- - ! '>='
|
@@ -215,31 +155,21 @@ dependencies:
|
|
215
155
|
version: '0'
|
216
156
|
type: :runtime
|
217
157
|
prerelease: false
|
218
|
-
version_requirements:
|
219
|
-
none: false
|
220
|
-
requirements:
|
221
|
-
- - ! '>='
|
222
|
-
- !ruby/object:Gem::Version
|
223
|
-
version: '0'
|
158
|
+
version_requirements: *70192625527680
|
224
159
|
- !ruby/object:Gem::Dependency
|
225
160
|
name: rdf-rdfxml
|
226
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirement: &70192625526960 !ruby/object:Gem::Requirement
|
227
162
|
none: false
|
228
163
|
requirements:
|
229
|
-
- -
|
164
|
+
- - =
|
230
165
|
- !ruby/object:Gem::Version
|
231
166
|
version: 0.3.5
|
232
167
|
type: :runtime
|
233
168
|
prerelease: false
|
234
|
-
version_requirements:
|
235
|
-
none: false
|
236
|
-
requirements:
|
237
|
-
- - '='
|
238
|
-
- !ruby/object:Gem::Version
|
239
|
-
version: 0.3.5
|
169
|
+
version_requirements: *70192625526960
|
240
170
|
- !ruby/object:Gem::Dependency
|
241
171
|
name: yard
|
242
|
-
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirement: &70192625526340 !ruby/object:Gem::Requirement
|
243
173
|
none: false
|
244
174
|
requirements:
|
245
175
|
- - ! '>='
|
@@ -247,15 +177,10 @@ dependencies:
|
|
247
177
|
version: '0'
|
248
178
|
type: :development
|
249
179
|
prerelease: false
|
250
|
-
version_requirements:
|
251
|
-
none: false
|
252
|
-
requirements:
|
253
|
-
- - ! '>='
|
254
|
-
- !ruby/object:Gem::Version
|
255
|
-
version: '0'
|
180
|
+
version_requirements: *70192625526340
|
256
181
|
- !ruby/object:Gem::Dependency
|
257
182
|
name: RedCloth
|
258
|
-
requirement: !ruby/object:Gem::Requirement
|
183
|
+
requirement: &70192625525460 !ruby/object:Gem::Requirement
|
259
184
|
none: false
|
260
185
|
requirements:
|
261
186
|
- - ! '>='
|
@@ -263,15 +188,10 @@ dependencies:
|
|
263
188
|
version: '0'
|
264
189
|
type: :development
|
265
190
|
prerelease: false
|
266
|
-
version_requirements:
|
267
|
-
none: false
|
268
|
-
requirements:
|
269
|
-
- - ! '>='
|
270
|
-
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
191
|
+
version_requirements: *70192625525460
|
272
192
|
- !ruby/object:Gem::Dependency
|
273
193
|
name: rake
|
274
|
-
requirement: !ruby/object:Gem::Requirement
|
194
|
+
requirement: &70192625524480 !ruby/object:Gem::Requirement
|
275
195
|
none: false
|
276
196
|
requirements:
|
277
197
|
- - ! '>='
|
@@ -279,15 +199,10 @@ dependencies:
|
|
279
199
|
version: '0'
|
280
200
|
type: :development
|
281
201
|
prerelease: false
|
282
|
-
version_requirements:
|
283
|
-
none: false
|
284
|
-
requirements:
|
285
|
-
- - ! '>='
|
286
|
-
- !ruby/object:Gem::Version
|
287
|
-
version: '0'
|
202
|
+
version_requirements: *70192625524480
|
288
203
|
- !ruby/object:Gem::Dependency
|
289
204
|
name: jettywrapper
|
290
|
-
requirement: !ruby/object:Gem::Requirement
|
205
|
+
requirement: &70192625522980 !ruby/object:Gem::Requirement
|
291
206
|
none: false
|
292
207
|
requirements:
|
293
208
|
- - ! '>='
|
@@ -295,15 +210,10 @@ dependencies:
|
|
295
210
|
version: 1.2.0
|
296
211
|
type: :development
|
297
212
|
prerelease: false
|
298
|
-
version_requirements:
|
299
|
-
none: false
|
300
|
-
requirements:
|
301
|
-
- - ! '>='
|
302
|
-
- !ruby/object:Gem::Version
|
303
|
-
version: 1.2.0
|
213
|
+
version_requirements: *70192625522980
|
304
214
|
- !ruby/object:Gem::Dependency
|
305
215
|
name: rspec
|
306
|
-
requirement: !ruby/object:Gem::Requirement
|
216
|
+
requirement: &70192625521940 !ruby/object:Gem::Requirement
|
307
217
|
none: false
|
308
218
|
requirements:
|
309
219
|
- - ! '>='
|
@@ -311,15 +221,10 @@ dependencies:
|
|
311
221
|
version: 2.9.0
|
312
222
|
type: :development
|
313
223
|
prerelease: false
|
314
|
-
version_requirements:
|
315
|
-
none: false
|
316
|
-
requirements:
|
317
|
-
- - ! '>='
|
318
|
-
- !ruby/object:Gem::Version
|
319
|
-
version: 2.9.0
|
224
|
+
version_requirements: *70192625521940
|
320
225
|
- !ruby/object:Gem::Dependency
|
321
226
|
name: mocha
|
322
|
-
requirement: !ruby/object:Gem::Requirement
|
227
|
+
requirement: &70192625521000 !ruby/object:Gem::Requirement
|
323
228
|
none: false
|
324
229
|
requirements:
|
325
230
|
- - ! '>='
|
@@ -327,12 +232,7 @@ dependencies:
|
|
327
232
|
version: 0.9.8
|
328
233
|
type: :development
|
329
234
|
prerelease: false
|
330
|
-
version_requirements:
|
331
|
-
none: false
|
332
|
-
requirements:
|
333
|
-
- - ! '>='
|
334
|
-
- !ruby/object:Gem::Version
|
335
|
-
version: 0.9.8
|
235
|
+
version_requirements: *70192625521000
|
336
236
|
description: ActiveFedora provides for creating and managing objects in the Fedora
|
337
237
|
Repository Architecture.
|
338
238
|
email:
|
@@ -566,21 +466,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
566
466
|
- - ! '>='
|
567
467
|
- !ruby/object:Gem::Version
|
568
468
|
version: '0'
|
569
|
-
segments:
|
570
|
-
- 0
|
571
|
-
hash: 2634316874790357809
|
572
469
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
573
470
|
none: false
|
574
471
|
requirements:
|
575
472
|
- - ! '>='
|
576
473
|
- !ruby/object:Gem::Version
|
577
474
|
version: '0'
|
578
|
-
segments:
|
579
|
-
- 0
|
580
|
-
hash: 2634316874790357809
|
581
475
|
requirements: []
|
582
476
|
rubyforge_project: rubyfedora
|
583
|
-
rubygems_version: 1.8.
|
477
|
+
rubygems_version: 1.8.10
|
584
478
|
signing_key:
|
585
479
|
specification_version: 3
|
586
480
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|