rubydora 0.4.0pre1 → 0.4.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/VERSION +1 -1
- data/lib/rubydora/fedora_url_helpers.rb +114 -0
- data/lib/rubydora/rest_api_client.rb +45 -50
- data/lib/rubydora.rb +1 -0
- data/spec/lib/rest_api_client_spec.rb +5 -0
- metadata +36 -32
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.0
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
module Rubydora
|
|
2
|
+
module FedoraUrlHelpers
|
|
3
|
+
# Fedora API documentation available at {https://wiki.duraspace.org/display/FCR30/REST+API}
|
|
4
|
+
API_DOCUMENTATION = 'https://wiki.duraspace.org/display/FCR30/REST+API'
|
|
5
|
+
|
|
6
|
+
# Generate a REST API compatible URI
|
|
7
|
+
# @param [String] base base URI
|
|
8
|
+
# @param [Hash] options to convert to URL parameters
|
|
9
|
+
# @return [String] URI
|
|
10
|
+
def url_for base, options = nil
|
|
11
|
+
return base unless options.is_a? Hash
|
|
12
|
+
"#{base}" + (("?#{options.map { |key, value| "#{CGI::escape(key.to_s)}=#{CGI::escape(value.to_s)}"}.join("&") }" if options and not options.empty?) || '')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Generate a base object REST API endpoint URI
|
|
16
|
+
# @param [String] pid
|
|
17
|
+
# @param [Hash] options to convert to URL parameters
|
|
18
|
+
# @return [String] URI
|
|
19
|
+
def object_url pid, options = nil
|
|
20
|
+
url_for("objects" + (("/#{CGI::escape(pid.to_s.gsub('info:fedora/', ''))}" if pid) || ''), options)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @param [Hash] options to convert to URL parameters
|
|
24
|
+
# @return [String] URI
|
|
25
|
+
def next_pid_url options = nil
|
|
26
|
+
url_for("objects/nextPID", options)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @param [Hash] options to convert to URL parameters
|
|
30
|
+
# @return [String] URI
|
|
31
|
+
def find_objects_url options = nil
|
|
32
|
+
url_for("objects", options)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Generate a base object dissemination REST API endpoint URI
|
|
36
|
+
# @param [String] pid
|
|
37
|
+
# @param [String] sdef
|
|
38
|
+
# @param [String] method
|
|
39
|
+
# @param [Hash] options to convert to URL parameters
|
|
40
|
+
# @return [String] URI
|
|
41
|
+
def dissemination_url pid, sdef = nil, method = nil, options = nil
|
|
42
|
+
raise "" unless pid
|
|
43
|
+
url_for(object_url(pid) + "/methods" + (("/#{CGI::escape(sdef)}" if sdef) || '') + (("/#{CGI::escape(method)}" if method) || ''), options)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Generate a base datastream REST API endpoint URI
|
|
47
|
+
# @param [String] pid
|
|
48
|
+
# @param [String] dsid
|
|
49
|
+
# @param [Hash] options to convert to URL parameters
|
|
50
|
+
# @return [String] URI
|
|
51
|
+
def datastream_url pid, dsid = nil, options = nil
|
|
52
|
+
raise "" unless pid
|
|
53
|
+
url_for(object_url(pid) + "/datastreams" + (("/#{CGI::escape(dsid)}" if dsid) || ''), options)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @param [String] pid
|
|
57
|
+
# @param [String] dsid
|
|
58
|
+
# @param [Hash] options to convert to URL parameters
|
|
59
|
+
# @return [String] URI
|
|
60
|
+
def datastream_content_url pid, dsid = nil, options = nil
|
|
61
|
+
url_for(datastream_url(pid, dsid) + "/content", options)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @param [String] pid
|
|
65
|
+
# @param [String] dsid
|
|
66
|
+
# @param [Hash] options to convert to URL parameters
|
|
67
|
+
# @return [String] URI
|
|
68
|
+
def datastream_history_url pid, dsid = nil, options = nil
|
|
69
|
+
url_for(datastream_url(pid, dsid) + "/history", options)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @param [String] pid
|
|
73
|
+
# @param [Hash] options to convert to URL parameters
|
|
74
|
+
# @return [String] URI
|
|
75
|
+
def validate_object_url pid, options = nil
|
|
76
|
+
url_for(object_url(pid) + "/validate", options)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# @param [String] pid
|
|
80
|
+
# @param [Hash] options to convert to URL parameters
|
|
81
|
+
# @return [String] URI
|
|
82
|
+
def export_object_url pid, options = nil
|
|
83
|
+
url_for(object_url(pid) + "/export", options)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @param [String] pid
|
|
87
|
+
# @param [Hash] options to convert to URL parameters
|
|
88
|
+
# @return [String] URI
|
|
89
|
+
def object_versions_url pid, options = nil
|
|
90
|
+
url_for(object_url(pid) + "/versions", options)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# @param [String] pid
|
|
94
|
+
# @param [Hash] options to convert to URL parameters
|
|
95
|
+
# @return [String] URI
|
|
96
|
+
def object_xml_url pid, options = nil
|
|
97
|
+
url_for(object_url(pid) + "/objectXML", options)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# @param [String] pid
|
|
101
|
+
# @param [Hash] options to convert to URL parameters
|
|
102
|
+
# @return [String] URI
|
|
103
|
+
def object_relationship_url pid, options = nil
|
|
104
|
+
url_for(object_url(pid) + "/relationships", options)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# @param [String] pid
|
|
108
|
+
# @param [Hash] options to convert to URL parameters
|
|
109
|
+
# @return [String] URI
|
|
110
|
+
def new_object_relationship_url pid, options = nil
|
|
111
|
+
url_for(object_relationship_url(pid) + "/new", options)
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -2,8 +2,9 @@ module Rubydora
|
|
|
2
2
|
|
|
3
3
|
# Provide low-level access to the Fedora Commons REST API
|
|
4
4
|
module RestApiClient
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
|
|
6
|
+
include Rubydora::FedoraUrlHelpers
|
|
7
|
+
|
|
7
8
|
VALID_CLIENT_OPTIONS = [:user, :password, :timeout, :open_timeout, :ssl_client_cert, :ssl_client_key]
|
|
8
9
|
# Create an authorized HTTP client for the Fedora REST API
|
|
9
10
|
# @param [Hash] config
|
|
@@ -30,9 +31,10 @@ module Rubydora
|
|
|
30
31
|
def next_pid options = {}
|
|
31
32
|
options[:format] ||= 'xml'
|
|
32
33
|
begin
|
|
33
|
-
return client[
|
|
34
|
+
return client[next_pid_url(options)].post nil
|
|
34
35
|
rescue => e
|
|
35
36
|
logger.error e.response
|
|
37
|
+
logger.flush if logger.respond_to? :flush
|
|
36
38
|
raise "Error getting nextPID. See logger for details"
|
|
37
39
|
end
|
|
38
40
|
end
|
|
@@ -45,13 +47,14 @@ module Rubydora
|
|
|
45
47
|
options[:resultFormat] ||= 'xml'
|
|
46
48
|
|
|
47
49
|
begin
|
|
48
|
-
resource = client[
|
|
50
|
+
resource = client[find_objects_url(options)]
|
|
49
51
|
if block_given?
|
|
50
52
|
resource.options[:block_response] = block_response
|
|
51
53
|
end
|
|
52
54
|
return resource.get
|
|
53
55
|
rescue => e
|
|
54
56
|
logger.error e.response
|
|
57
|
+
logger.flush if logger.respond_to? :flush
|
|
55
58
|
raise "Error finding objects. See logger for details"
|
|
56
59
|
end
|
|
57
60
|
end
|
|
@@ -69,6 +72,7 @@ module Rubydora
|
|
|
69
72
|
raise e
|
|
70
73
|
rescue => e
|
|
71
74
|
logger.error e.response
|
|
75
|
+
logger.flush if logger.respond_to? :flush
|
|
72
76
|
raise "Error getting object #{pid}. See logger for details"
|
|
73
77
|
end
|
|
74
78
|
end
|
|
@@ -84,10 +88,25 @@ module Rubydora
|
|
|
84
88
|
return client[object_url(pid, options)].post file, :content_type => 'text/xml'
|
|
85
89
|
rescue => e
|
|
86
90
|
logger.error e.response
|
|
91
|
+
logger.flush if logger.respond_to? :flush
|
|
87
92
|
raise "Error ingesting object #{pid}. See logger for details"
|
|
88
93
|
end
|
|
89
94
|
end
|
|
90
95
|
|
|
96
|
+
# {include:RestApiClient::API_DOCUMENTATION}
|
|
97
|
+
# @param [Hash] options
|
|
98
|
+
# @option options [String] :pid
|
|
99
|
+
# @return [String]
|
|
100
|
+
def export options = {}
|
|
101
|
+
pid = options.delete(:pid)
|
|
102
|
+
begin
|
|
103
|
+
return client[export_object_url(pid, options)].get
|
|
104
|
+
rescue => e
|
|
105
|
+
logger.error e.response
|
|
106
|
+
raise "Error exporting object #{pid}. See logger for details"
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
91
110
|
# {include:RestApiClient::API_DOCUMENTATION}
|
|
92
111
|
# @param [Hash] options
|
|
93
112
|
# @option options [String] :pid
|
|
@@ -98,6 +117,7 @@ module Rubydora
|
|
|
98
117
|
return client[object_url(pid, options)].put nil
|
|
99
118
|
rescue => e
|
|
100
119
|
logger.error e.response
|
|
120
|
+
logger.flush if logger.respond_to? :flush
|
|
101
121
|
raise "Error modifying object #{pid}. See logger for details"
|
|
102
122
|
end
|
|
103
123
|
end
|
|
@@ -114,6 +134,7 @@ module Rubydora
|
|
|
114
134
|
raise e
|
|
115
135
|
rescue => e
|
|
116
136
|
logger.error e.response
|
|
137
|
+
logger.flush if logger.respond_to? :flush
|
|
117
138
|
raise "Error purging object #{pid}. See logger for details"
|
|
118
139
|
end
|
|
119
140
|
end
|
|
@@ -127,9 +148,10 @@ module Rubydora
|
|
|
127
148
|
options[:format] ||= 'xml'
|
|
128
149
|
raise "" unless pid
|
|
129
150
|
begin
|
|
130
|
-
return client[
|
|
151
|
+
return client[object_versions_url(pid, options)].get
|
|
131
152
|
rescue => e
|
|
132
153
|
logger.error e.response
|
|
154
|
+
logger.flush if logger.respond_to? :flush
|
|
133
155
|
raise "Error getting versions for object #{pid}. See logger for details"
|
|
134
156
|
end
|
|
135
157
|
end
|
|
@@ -143,9 +165,10 @@ module Rubydora
|
|
|
143
165
|
raise "" unless pid
|
|
144
166
|
options[:format] ||= 'xml'
|
|
145
167
|
begin
|
|
146
|
-
return client[
|
|
168
|
+
return client[object_xml_url(pid, options)].get
|
|
147
169
|
rescue => e
|
|
148
170
|
logger.error e.response
|
|
171
|
+
logger.flush if logger.respond_to? :flush
|
|
149
172
|
raise "Error getting objectXML for object #{pid}. See logger for details"
|
|
150
173
|
end
|
|
151
174
|
end
|
|
@@ -165,6 +188,7 @@ module Rubydora
|
|
|
165
188
|
raise e
|
|
166
189
|
rescue => e
|
|
167
190
|
logger.error e.response
|
|
191
|
+
logger.flush if logger.respond_to? :flush
|
|
168
192
|
raise "Error getting datastream '#{dsid}' for object #{pid}. See logger for details"
|
|
169
193
|
end
|
|
170
194
|
end
|
|
@@ -183,6 +207,7 @@ module Rubydora
|
|
|
183
207
|
return client[datastream_url(pid, dsid, options)].put nil
|
|
184
208
|
rescue => e
|
|
185
209
|
logger.error e.response
|
|
210
|
+
logger.flush if logger.respond_to? :flush
|
|
186
211
|
raise "Error setting datastream options on #{dsid} for object #{pid}. See logger for details"
|
|
187
212
|
end
|
|
188
213
|
end
|
|
@@ -198,9 +223,10 @@ module Rubydora
|
|
|
198
223
|
raise ArgumentError, "Must supply dsid" unless dsid
|
|
199
224
|
options[:format] ||= 'xml'
|
|
200
225
|
begin
|
|
201
|
-
return client[
|
|
226
|
+
return client[datastream_history_url(pid, dsid, options)].get
|
|
202
227
|
rescue => e
|
|
203
228
|
logger.error e.response
|
|
229
|
+
logger.flush if logger.respond_to? :flush
|
|
204
230
|
raise "Error getting versions for datastream #{dsid} for object #{pid}. See logger for details"
|
|
205
231
|
end
|
|
206
232
|
end
|
|
@@ -219,7 +245,7 @@ module Rubydora
|
|
|
219
245
|
method ||= :get
|
|
220
246
|
raise self.class.name + "#datastream_dissemination requires a DSID" unless dsid
|
|
221
247
|
begin
|
|
222
|
-
resource = client[
|
|
248
|
+
resource = client[datastream_content_url(pid, dsid, options)]
|
|
223
249
|
if block_given?
|
|
224
250
|
resource.options[:block_response] = block_response
|
|
225
251
|
end
|
|
@@ -228,6 +254,7 @@ module Rubydora
|
|
|
228
254
|
raise e
|
|
229
255
|
rescue => e
|
|
230
256
|
logger.error e.response
|
|
257
|
+
logger.flush if logger.respond_to? :flush
|
|
231
258
|
raise "Error getting dissemination for datastream #{dsid} for object #{pid}. See logger for details"
|
|
232
259
|
end
|
|
233
260
|
end
|
|
@@ -246,6 +273,7 @@ module Rubydora
|
|
|
246
273
|
return client[datastream_url(pid, dsid, options)].post file, :content_type => content_type.to_s, :multipart => true
|
|
247
274
|
rescue => e
|
|
248
275
|
logger.error e.response
|
|
276
|
+
logger.flush if logger.respond_to? :flush
|
|
249
277
|
raise "Error adding datastream #{dsid} for object #{pid}. See logger for details"
|
|
250
278
|
end
|
|
251
279
|
end
|
|
@@ -271,6 +299,7 @@ module Rubydora
|
|
|
271
299
|
return client[datastream_url(pid, dsid, options)].put(file, rest_client_options)
|
|
272
300
|
rescue => e
|
|
273
301
|
logger.error e.response
|
|
302
|
+
logger.flush if logger.respond_to? :flush
|
|
274
303
|
raise "Error modifying datastream #{dsid} for #{pid}. See logger for details"
|
|
275
304
|
end
|
|
276
305
|
end
|
|
@@ -287,6 +316,7 @@ module Rubydora
|
|
|
287
316
|
client[datastream_url(pid, dsid, options)].delete
|
|
288
317
|
rescue => e
|
|
289
318
|
logger.error e.response
|
|
319
|
+
logger.flush if logger.respond_to? :flush
|
|
290
320
|
raise "Error purging datastream #{dsid} for #{pid}. See logger for details"
|
|
291
321
|
end
|
|
292
322
|
end
|
|
@@ -300,9 +330,10 @@ module Rubydora
|
|
|
300
330
|
raise "" unless pid
|
|
301
331
|
options[:format] ||= 'xml'
|
|
302
332
|
begin
|
|
303
|
-
return client[
|
|
333
|
+
return client[object_relationship_url(pid, options)].get
|
|
304
334
|
rescue => e
|
|
305
335
|
logger.error e.response
|
|
336
|
+
logger.flush if logger.respond_to? :flush
|
|
306
337
|
raise "Error getting relationships for #{pid}. See logger for details"
|
|
307
338
|
end
|
|
308
339
|
end
|
|
@@ -314,9 +345,10 @@ module Rubydora
|
|
|
314
345
|
def add_relationship options = {}
|
|
315
346
|
pid = options.delete(:pid) || options[:subject]
|
|
316
347
|
begin
|
|
317
|
-
return client[
|
|
348
|
+
return client[new_object_relationship_url(pid, options)].post nil
|
|
318
349
|
rescue => e
|
|
319
350
|
logger.error e.response
|
|
351
|
+
logger.flush if logger.respond_to? :flush
|
|
320
352
|
raise "Error adding relationship for #{pid}. See logger for details"
|
|
321
353
|
end
|
|
322
354
|
end
|
|
@@ -328,9 +360,10 @@ module Rubydora
|
|
|
328
360
|
def purge_relationship options = {}
|
|
329
361
|
pid = options.delete(:pid) || options[:subject]
|
|
330
362
|
begin
|
|
331
|
-
return client[
|
|
363
|
+
return client[object_relationship_url(pid, options)].delete
|
|
332
364
|
rescue => e
|
|
333
365
|
logger.error e.response
|
|
366
|
+
logger.flush if logger.respond_to? :flush
|
|
334
367
|
raise "Error purging relationships for #{pid}. See logger for details"
|
|
335
368
|
end
|
|
336
369
|
end
|
|
@@ -354,47 +387,9 @@ module Rubydora
|
|
|
354
387
|
return resource.get
|
|
355
388
|
rescue => e
|
|
356
389
|
logger.error e.response
|
|
390
|
+
logger.flush if logger.respond_to? :flush
|
|
357
391
|
raise "Error getting dissemination for #{pid}. See logger for details"
|
|
358
392
|
end
|
|
359
393
|
end
|
|
360
|
-
|
|
361
|
-
# Generate a REST API compatible URI
|
|
362
|
-
# @param [String] base base URI
|
|
363
|
-
# @param [Hash] options to convert to URL parameters
|
|
364
|
-
# @return [String] URI
|
|
365
|
-
def url_for base, options = nil
|
|
366
|
-
return base unless options.is_a? Hash
|
|
367
|
-
"#{base}" + (("?#{options.map { |key, value| "#{CGI::escape(key.to_s)}=#{CGI::escape(value.to_s)}"}.join("&") }" if options and not options.empty?) || '')
|
|
368
|
-
end
|
|
369
|
-
|
|
370
|
-
# Generate a base object REST API endpoint URI
|
|
371
|
-
# @param [String] pid
|
|
372
|
-
# @param [Hash] options to convert to URL parameters
|
|
373
|
-
# @return [String] URI
|
|
374
|
-
def object_url pid = nil, options = nil
|
|
375
|
-
url_for("objects" + (("/#{CGI::escape(pid.to_s.gsub('info:fedora/', ''))}" if pid) || ''), options)
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
# Generate a base object dissemination REST API endpoint URI
|
|
379
|
-
# @param [String] pid
|
|
380
|
-
# @param [String] sdef
|
|
381
|
-
# @param [String] method
|
|
382
|
-
# @param [Hash] options to convert to URL parameters
|
|
383
|
-
# @return [String] URI
|
|
384
|
-
def dissemination_url pid, sdef = nil, method = nil, options = nil
|
|
385
|
-
raise "" unless pid
|
|
386
|
-
url_for(object_url(pid) + "/methods" + (("/#{CGI::escape(sdef)}" if sdef) || '') + (("/#{CGI::escape(method)}" if method) || ''), options)
|
|
387
|
-
end
|
|
388
|
-
|
|
389
|
-
# Generate a base datastream REST API endpoint URI
|
|
390
|
-
# @param [String] pid
|
|
391
|
-
# @param [String] dsid
|
|
392
|
-
# @param [Hash] options to convert to URL parameters
|
|
393
|
-
# @return [String] URI
|
|
394
|
-
def datastream_url pid, dsid = nil, options = nil
|
|
395
|
-
raise "" unless pid
|
|
396
|
-
url_for(object_url(pid) + "/datastreams" + (("/#{CGI::escape(dsid)}" if dsid) || ''), options)
|
|
397
|
-
end
|
|
398
|
-
|
|
399
394
|
end
|
|
400
395
|
end
|
data/lib/rubydora.rb
CHANGED
|
@@ -5,6 +5,7 @@ module Rubydora
|
|
|
5
5
|
autoload :Datastream, "rubydora/datastream"
|
|
6
6
|
autoload :Repository, "rubydora/repository"
|
|
7
7
|
autoload :ResourceIndex, "rubydora/resource_index"
|
|
8
|
+
autoload :FedoraUrlHelpers, "rubydora/fedora_url_helpers"
|
|
8
9
|
autoload :RestApiClient, "rubydora/rest_api_client"
|
|
9
10
|
autoload :Soap, "rubydora/soap"
|
|
10
11
|
autoload :ModelsMixin, "rubydora/models_mixin"
|
|
@@ -72,6 +72,11 @@ describe Rubydora::RestApiClient do
|
|
|
72
72
|
@mock_repository.ingest :pid => 'mypid'
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
+
it "export" do
|
|
76
|
+
RestClient::Request.should_receive(:execute).with(hash_including(:url => "http://example.org/objects/mypid/export"))
|
|
77
|
+
@mock_repository.export :pid => 'mypid'
|
|
78
|
+
end
|
|
79
|
+
|
|
75
80
|
it "modify_object" do
|
|
76
81
|
RestClient::Request.should_receive(:execute) do |params|
|
|
77
82
|
params.should have_key(:url)
|
metadata
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubydora
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.4.0
|
|
5
|
+
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Chris Beer
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2012-01-11 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: fastercsv
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2155958160 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2155958160
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rest-client
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2155956720 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2155956720
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: nokogiri
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2155955480 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2155955480
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: mime-types
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &2155953580 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *2155953580
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: activesupport
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &2155952300 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *2155952300
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: activemodel
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &2155951480 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>='
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *2155951480
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: savon
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &2155950780 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ! '>='
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '0'
|
|
88
88
|
type: :runtime
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *2155950780
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: rake
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &2155966020 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,10 +98,10 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :development
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *2155966020
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
103
|
name: shoulda
|
|
104
|
-
requirement: &
|
|
104
|
+
requirement: &2155962840 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
107
|
- - ! '>='
|
|
@@ -109,10 +109,10 @@ dependencies:
|
|
|
109
109
|
version: '0'
|
|
110
110
|
type: :development
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *2155962840
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: bundler
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &2155960880 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,10 +120,10 @@ dependencies:
|
|
|
120
120
|
version: 1.0.14
|
|
121
121
|
type: :development
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *2155960880
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: rspec
|
|
126
|
-
requirement: &
|
|
126
|
+
requirement: &2155960000 !ruby/object:Gem::Requirement
|
|
127
127
|
none: false
|
|
128
128
|
requirements:
|
|
129
129
|
- - ! '>='
|
|
@@ -131,10 +131,10 @@ dependencies:
|
|
|
131
131
|
version: '0'
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
|
-
version_requirements: *
|
|
134
|
+
version_requirements: *2155960000
|
|
135
135
|
- !ruby/object:Gem::Dependency
|
|
136
136
|
name: yard
|
|
137
|
-
requirement: &
|
|
137
|
+
requirement: &2155959220 !ruby/object:Gem::Requirement
|
|
138
138
|
none: false
|
|
139
139
|
requirements:
|
|
140
140
|
- - ! '>='
|
|
@@ -142,10 +142,10 @@ dependencies:
|
|
|
142
142
|
version: '0'
|
|
143
143
|
type: :development
|
|
144
144
|
prerelease: false
|
|
145
|
-
version_requirements: *
|
|
145
|
+
version_requirements: *2155959220
|
|
146
146
|
- !ruby/object:Gem::Dependency
|
|
147
147
|
name: jettywrapper
|
|
148
|
-
requirement: &
|
|
148
|
+
requirement: &2155974620 !ruby/object:Gem::Requirement
|
|
149
149
|
none: false
|
|
150
150
|
requirements:
|
|
151
151
|
- - ! '>='
|
|
@@ -153,7 +153,7 @@ dependencies:
|
|
|
153
153
|
version: '0'
|
|
154
154
|
type: :development
|
|
155
155
|
prerelease: false
|
|
156
|
-
version_requirements: *
|
|
156
|
+
version_requirements: *2155974620
|
|
157
157
|
description: ! 'Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+'
|
|
158
158
|
email:
|
|
159
159
|
- chris@cbeer.info
|
|
@@ -177,6 +177,7 @@ files:
|
|
|
177
177
|
- lib/rubydora/ext/model_loader.rb
|
|
178
178
|
- lib/rubydora/ext/solr.rb
|
|
179
179
|
- lib/rubydora/extension_parameters.rb
|
|
180
|
+
- lib/rubydora/fedora_url_helpers.rb
|
|
180
181
|
- lib/rubydora/models_mixin.rb
|
|
181
182
|
- lib/rubydora/relationships_mixin.rb
|
|
182
183
|
- lib/rubydora/repository.rb
|
|
@@ -211,13 +212,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
211
212
|
version: '0'
|
|
212
213
|
segments:
|
|
213
214
|
- 0
|
|
214
|
-
hash:
|
|
215
|
+
hash: -3967539369509241218
|
|
215
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
217
|
none: false
|
|
217
218
|
requirements:
|
|
218
|
-
- - ! '
|
|
219
|
+
- - ! '>='
|
|
219
220
|
- !ruby/object:Gem::Version
|
|
220
|
-
version:
|
|
221
|
+
version: '0'
|
|
222
|
+
segments:
|
|
223
|
+
- 0
|
|
224
|
+
hash: -3967539369509241218
|
|
221
225
|
requirements: []
|
|
222
226
|
rubyforge_project:
|
|
223
227
|
rubygems_version: 1.8.10
|