rubydora 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
+ gem 'activemodel', "~> 3.1.1"
data/History.textile ADDED
@@ -0,0 +1,2 @@
1
+ h3. 0.5.0
2
+ * added checksum validation
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.5.0
data/lib/rubydora.rb CHANGED
@@ -51,7 +51,7 @@ module Rubydora
51
51
  # TODO: read ENV variables?
52
52
  # @return Hash
53
53
  def self.default_config
54
- {}
54
+ {:validateChecksum=>false}
55
55
  end
56
56
 
57
57
  end
@@ -16,7 +16,7 @@ module Rubydora
16
16
 
17
17
  # mapping datastream attributes (and api parameters) to datastream profile names
18
18
  DS_ATTRIBUTES = {:controlGroup => :dsControlGroup, :dsLocation => :dsLocation, :altIDs => nil, :dsLabel => :dsLabel, :versionable => :dsVersionable, :dsState => :dsState, :formatURI => :dsFormatURI, :checksumType => :dsChecksumType, :checksum => :dsChecksum, :mimeType => :dsMIME, :logMessage => nil, :ignoreContent => nil, :lastModifiedDate => nil, :content => nil, :asOfDateTime => nil}
19
- DS_DEFAULT_ATTRIBUTES = { :controlGroup => 'M', :dsState => 'A', :checksumType => 'DISABLED', :versionable => true }
19
+ DS_DEFAULT_ATTRIBUTES = { :controlGroup => 'M', :dsState => 'A', :versionable => true }
20
20
 
21
21
  define_attribute_methods DS_ATTRIBUTES.keys
22
22
 
@@ -41,6 +41,10 @@ module Rubydora
41
41
  @#{attribute} || profile['#{attribute.to_s}'] || DS_DEFAULT_ATTRIBUTES[:#{attribute}]
42
42
  end
43
43
  }
44
+
45
+ def dsChecksumValid
46
+ profile['dsChecksumValid']
47
+ end
44
48
  end
45
49
 
46
50
 
@@ -76,12 +80,12 @@ module Rubydora
76
80
  # @param [Hash] default attribute values (used esp. for creating new datastreams)
77
81
  def initialize digital_object, dsid, options = {}
78
82
  _run_initialize_callbacks do
79
- @digital_object = digital_object
80
- @dsid = dsid
81
- @options = options
82
- options.each do |key, value|
83
- self.send(:"#{key}=", value)
84
- end
83
+ @digital_object = digital_object
84
+ @dsid = dsid
85
+ @options = options
86
+ options.each do |key, value|
87
+ self.send(:"#{key}=", value)
88
+ end
85
89
  end
86
90
  end
87
91
 
@@ -141,6 +145,7 @@ module Rubydora
141
145
  @profile ||= begin
142
146
  options = { :pid => pid, :dsid => dsid }
143
147
  options[:asOfDateTime] = asOfDateTime if asOfDateTime
148
+ options[:validateChecksum] = true if repository.config[:validateChecksum]
144
149
  profile_xml ||= repository.datastream(options)
145
150
  self.profile_xml_to_hash(profile_xml)
146
151
 
@@ -164,6 +169,8 @@ module Rubydora
164
169
 
165
170
  h['dsSize'] &&= h['dsSize'].to_i rescue h['dsSize']
166
171
  h['dsCreateDate'] &&= Time.parse(h['dsCreateDate']) rescue h['dsCreateDate']
172
+ h['dsChecksumValid'] &&= h['dsChecksumValid'] == 'true'
173
+
167
174
 
168
175
  h
169
176
  end
@@ -11,6 +11,7 @@ module Rubydora
11
11
  # @option options [String] :url
12
12
  # @option options [String] :user
13
13
  # @option options [String] :password
14
+ # @option options [Boolean] :validateChecksum
14
15
  def initialize options = {}
15
16
  @config = options
16
17
  load_api_abstraction
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Rubydora::Datastream do
4
4
  before do
5
- @mock_repository = mock(Rubydora::Repository)
5
+ @mock_repository = mock(Rubydora::Repository, :config=>{:validateChecksum=>true})
6
6
  @mock_object = mock(Rubydora::DigitalObject)
7
7
  @mock_object.stub(:repository => @mock_repository, :pid => 'pid')
8
8
  end
@@ -25,7 +25,6 @@ describe Rubydora::Datastream do
25
25
  it "should have default values" do
26
26
  @datastream.controlGroup == "M"
27
27
  @datastream.dsState.should == "A"
28
- @datastream.checksumType.should == "DISABLED"
29
28
  @datastream.versionable.should == true
30
29
  @datastream.changed.should be_empty
31
30
  end
@@ -43,6 +42,37 @@ describe Rubydora::Datastream do
43
42
  end
44
43
  end
45
44
 
45
+ describe 'dsChecksumValid' do
46
+ before(:each) do
47
+ @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
48
+ end
49
+ it "should be nil when it hasn't been set" do
50
+ @mock_repository.should_receive(:datastream).any_number_of_times.and_return <<-XML
51
+ <datastreamProfile>
52
+ </datastreamProfile>
53
+ XML
54
+ @datastream.dsChecksumValid.should be_nil
55
+ end
56
+
57
+ it "should be true when it's returned as true" do
58
+ @mock_repository.should_receive(:datastream).any_number_of_times.and_return <<-XML
59
+ <datastreamProfile>
60
+ <dsChecksumValid>true</dsChecksumValid>
61
+ </datastreamProfile>
62
+ XML
63
+ @datastream.dsChecksumValid.should be_true
64
+ end
65
+
66
+ it "should be false when it's returned as false" do
67
+ @mock_repository.should_receive(:datastream).any_number_of_times.and_return <<-XML
68
+ <datastreamProfile>
69
+ <dsChecksumValid>false</dsChecksumValid>
70
+ </datastreamProfile>
71
+ XML
72
+ @datastream.dsChecksumValid.should be_false
73
+ end
74
+ end
75
+
46
76
  describe "retrieve" do
47
77
  before(:each) do
48
78
  @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
@@ -50,6 +80,7 @@ describe Rubydora::Datastream do
50
80
  <datastreamProfile>
51
81
  <dsLocation>some:uri</dsLocation>
52
82
  <dsLabel>label</dsLabel>
83
+ <dsChecksumValid>true</dsChecksumValid>
53
84
  </datastreamProfile>
54
85
  XML
55
86
  end
@@ -62,6 +93,7 @@ describe Rubydora::Datastream do
62
93
  it "should provide attribute defaults from dsProfile" do
63
94
  @datastream.dsLocation.should == 'some:uri'
64
95
  @datastream.dsLabel.should == 'label'
96
+ @datastream.dsChecksumValid.should be true
65
97
  end
66
98
 
67
99
  it "should mediate access to datastream contents" do
@@ -196,145 +228,154 @@ describe Rubydora::Datastream do
196
228
  )
197
229
  end
198
230
 
199
- shared_examples "a datastream attribute" do
200
- subject { Rubydora::Datastream.new @mock_object, 'dsid' }
231
+ shared_examples "a datastream attribute" do
232
+ subject { Rubydora::Datastream.new @mock_object, 'dsid' }
201
233
 
202
- describe "getter" do
203
- it "should return the value" do
204
- subject.instance_variable_set("@#{method}", 'asdf')
205
- subject.send(method).should == 'asdf'
206
- end
234
+ describe "getter" do
235
+ it "should return the value" do
236
+ subject.instance_variable_set("@#{method}", 'asdf')
237
+ subject.send(method).should == 'asdf'
238
+ end
239
+
240
+ it "should look in the object profile" do
241
+ subject.should_receive(:profile) { { Rubydora::Datastream::DS_ATTRIBUTES[method.to_sym].to_s => 'qwerty' } }
242
+ subject.send(method).should == 'qwerty'
243
+ end
207
244
 
208
- it "should look in the object profile" do
209
- subject.should_receive(:profile) { { Rubydora::Datastream::DS_ATTRIBUTES[method.to_sym].to_s => 'qwerty' } }
210
- subject.send(method).should == 'qwerty'
245
+ it "should fall-back to the set of default attributes" do
246
+ Rubydora::Datastream::DS_DEFAULT_ATTRIBUTES.should_receive(:[]).with(method.to_sym) { 'zxcv'}
247
+ subject.send(method).should == 'zxcv'
248
+ end
211
249
  end
212
250
 
213
- it "should fall-back to the set of default attributes" do
214
- Rubydora::Datastream::DS_DEFAULT_ATTRIBUTES.should_receive(:[]).with(method.to_sym) { 'zxcv'}
215
- subject.send(method).should == 'zxcv'
251
+ describe "setter" do
252
+ before do
253
+ subject.stub(:datastreams => [])
254
+ end
255
+ it "should mark the object as changed after setting" do
256
+ subject.send("#{method}=", 'new_value')
257
+ subject.should be_changed
258
+ end
259
+
260
+ it "should not mark the object as changed if the value does not change" do
261
+ subject.should_receive(method) { 'zxcv' }
262
+ subject.send("#{method}=", 'zxcv')
263
+ end
264
+
265
+ it "should appear in the save request" do
266
+ @mock_repository.should_receive(:modify_datastream).with(hash_including(method.to_sym => 'new_value'))
267
+ subject.send("#{method}=", 'new_value')
268
+ subject.save
269
+ end
216
270
  end
217
271
  end
218
272
 
219
- describe "setter" do
220
- before do
221
- subject.stub(:datastreams => [])
222
- end
223
- it "should mark the object as changed after setting" do
224
- subject.send("#{method}=", 'new_value')
225
- subject.should be_changed
226
- end
273
+ shared_examples "a read-only datastream attribute" do
274
+ subject { Rubydora::Datastream.new @mock_object, 'dsid' }
227
275
 
228
- it "should appear in the save request" do
229
- @mock_repository.should_receive(:modify_datastream).with(hash_including(method.to_sym => 'new_value'))
230
- subject.send("#{method}=", 'new_value')
231
- subject.save
232
- end
233
- end
234
- end
276
+ describe "getter" do
277
+ it "should return the value" do
278
+ subject.instance_variable_set("@#{method}", 'asdf')
279
+ subject.send(method).should == 'asdf'
280
+ end
235
281
 
236
- shared_examples "a read-only datastream attribute" do
237
- subject { Rubydora::Datastream.new @mock_object, 'dsid' }
282
+ it "should look in the object profile" do
283
+ subject.should_receive(:profile) { { method => 'qwerty' } }
284
+ subject.send(method).should == 'qwerty'
285
+ end
238
286
 
239
- describe "getter" do
240
- it "should return the value" do
241
- subject.instance_variable_set("@#{method}", 'asdf')
242
- subject.send(method).should == 'asdf'
287
+ it "should fall-back to the set of default attributes" do
288
+ Rubydora::Datastream::DS_DEFAULT_ATTRIBUTES.should_receive(:[]).with(method.to_sym) { 'zxcv'}
289
+ subject.send(method).should == 'zxcv'
290
+ end
243
291
  end
244
292
 
245
- it "should look in the object profile" do
246
- subject.should_receive(:profile) { { method => 'qwerty' } }
247
- subject.send(method).should == 'qwerty'
248
- end
293
+ end
249
294
 
250
- it "should fall-back to the set of default attributes" do
251
- Rubydora::Datastream::DS_DEFAULT_ATTRIBUTES.should_receive(:[]).with(method.to_sym) { 'zxcv'}
252
- subject.send(method).should == 'zxcv'
253
- end
295
+ describe "#controlGroup" do
296
+ it_behaves_like "a datastream attribute"
297
+ let(:method) { 'controlGroup' }
254
298
  end
255
299
 
256
- end
300
+ describe "#dsLocation" do
301
+ it_behaves_like "a datastream attribute"
302
+ let(:method) { 'dsLocation' }
303
+ end
257
304
 
258
- describe "#controlGroup" do
259
- it_behaves_like "a datastream attribute"
260
- let(:method) { 'controlGroup' }
261
- end
305
+ describe "#altIDs" do
306
+ it_behaves_like "a datastream attribute"
307
+ let(:method) { 'altIDs' }
308
+ end
262
309
 
263
- describe "#dsLocation" do
264
- it_behaves_like "a datastream attribute"
265
- let(:method) { 'dsLocation' }
266
- end
310
+ describe "#dsLabel" do
311
+ it_behaves_like "a datastream attribute"
312
+ let(:method) { 'dsLabel' }
313
+ end
267
314
 
268
- describe "#altIDs" do
269
- it_behaves_like "a datastream attribute"
270
- let(:method) { 'altIDs' }
271
- end
315
+ describe "#versionable" do
316
+ it_behaves_like "a datastream attribute"
317
+ let(:method) { 'versionable' }
318
+ end
272
319
 
273
- describe "#dsLabel" do
274
- it_behaves_like "a datastream attribute"
275
- let(:method) { 'dsLabel' }
276
- end
320
+ describe "#dsState" do
321
+ it_behaves_like "a datastream attribute"
322
+ let(:method) { 'dsState' }
323
+ end
277
324
 
278
- describe "#versionable" do
279
- it_behaves_like "a datastream attribute"
280
- let(:method) { 'versionable' }
281
- end
325
+ describe "#formatURI" do
326
+ it_behaves_like "a datastream attribute"
327
+ let(:method) { 'formatURI' }
328
+ end
282
329
 
283
- describe "#dsState" do
284
- it_behaves_like "a datastream attribute"
285
- let(:method) { 'dsState' }
286
- end
330
+ describe "#checksumType" do
331
+ it_behaves_like "a datastream attribute"
332
+ let(:method) { 'checksumType' }
333
+ end
287
334
 
288
- describe "#formatURI" do
289
- it_behaves_like "a datastream attribute"
290
- let(:method) { 'formatURI' }
291
- end
335
+ describe "#checksum" do
336
+ it_behaves_like "a datastream attribute"
337
+ let(:method) { 'checksum' }
338
+ end
292
339
 
293
- describe "#checksumType" do
294
- it_behaves_like "a datastream attribute"
295
- let(:method) { 'checksumType' }
296
- end
340
+ describe "#mimeType" do
341
+ it_behaves_like "a datastream attribute"
342
+ let(:method) { 'mimeType' }
343
+ end
297
344
 
298
- describe "#checksum" do
299
- it_behaves_like "a datastream attribute"
300
- let(:method) { 'checksum' }
301
- end
345
+ describe "#logMessage" do
346
+ it_behaves_like "a datastream attribute"
347
+ let(:method) { 'logMessage' }
348
+ end
302
349
 
303
- describe "#mimeType" do
304
- it_behaves_like "a datastream attribute"
305
- let(:method) { 'mimeType' }
306
- end
350
+ describe "#ignoreContent" do
351
+ it_behaves_like "a datastream attribute"
352
+ let(:method) { 'ignoreContent' }
353
+ end
307
354
 
308
- describe "#logMessage" do
309
- it_behaves_like "a datastream attribute"
310
- let(:method) { 'logMessage' }
311
- end
355
+ describe "#lastModifiedDate" do
356
+ it_behaves_like "a datastream attribute"
357
+ let(:method) { 'lastModifiedDate' }
358
+ end
312
359
 
313
- describe "#ignoreContent" do
314
- it_behaves_like "a datastream attribute"
315
- let(:method) { 'ignoreContent' }
316
- end
360
+ describe "#dsCreateDate" do
361
+ it_behaves_like "a read-only datastream attribute"
362
+ let(:method) { 'dsCreateDate' }
363
+ end
317
364
 
318
- describe "#lastModifiedDate" do
319
- it_behaves_like "a datastream attribute"
320
- let(:method) { 'lastModifiedDate' }
321
- end
365
+ describe "#dsSize" do
366
+ it_behaves_like "a read-only datastream attribute"
367
+ let(:method) { 'dsSize' }
368
+ end
322
369
 
323
- describe "#dsCreateDate" do
324
- it_behaves_like "a read-only datastream attribute"
325
- let(:method) { 'dsCreateDate' }
370
+ describe "#dsVersionID" do
371
+ it_behaves_like "a read-only datastream attribute"
372
+ let(:method) { 'dsVersionID' }
373
+ end
326
374
  end
327
375
 
328
- describe "#dsSize" do
329
- it_behaves_like "a read-only datastream attribute"
330
- let(:method) { 'dsSize' }
331
- end
376
+ describe "profile" do
332
377
 
333
- describe "#dsVersionID" do
334
- it_behaves_like "a read-only datastream attribute"
335
- let(:method) { 'dsVersionID' }
336
378
  end
337
- end
338
379
 
339
380
  describe "to_api_params" do
340
381
 
@@ -361,13 +402,11 @@ end
361
402
  @datastream.stub(:profile) { {} }
362
403
  end
363
404
  it "should compile parameters to hash" do
364
- @datastream.send(:to_api_params).should == {:checksumType=>"DISABLED", :versionable=>true,
365
- :controlGroup=>"M", :dsState=>"A"}
405
+ @datastream.send(:to_api_params).should == {:versionable=>true, :controlGroup=>"M", :dsState=>"A"}
366
406
  end
367
407
  it "should not send parameters that are set to nil" do
368
408
  @datastream.dsLabel = nil
369
- @datastream.send(:to_api_params).should == {:checksumType=>"DISABLED", :versionable=>true,
370
- :controlGroup=>"M", :dsState=>"A"}
409
+ @datastream.send(:to_api_params).should == {:versionable=>true, :controlGroup=>"M", :dsState=>"A"}
371
410
  end
372
411
  end
373
412
  end
@@ -2,8 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Rubydora::DigitalObject do
4
4
  before do
5
- @mock_repository = mock(Rubydora::Repository)
6
-
5
+ @mock_repository = mock(Rubydora::Repository, :config=>{})
7
6
  end
8
7
  describe "new" do
9
8
  it "should load a DigitalObject instance" do
@@ -384,6 +383,11 @@ describe Rubydora::DigitalObject do
384
383
  subject.should be_changed
385
384
  end
386
385
 
386
+ it "should not mark the object as changed if the value does not change" do
387
+ subject.should_receive(method) { 'zxcv' }
388
+ subject.send("#{method}=", 'zxcv')
389
+ end
390
+
387
391
  it "should appear in the save request" do
388
392
  @mock_repository.should_receive(:ingest).with(hash_including(method.to_sym => 'new_value'))
389
393
  subject.send("#{method}=", 'new_value')
@@ -273,6 +273,20 @@ describe "Integration testing against a live Fedora repository", :integration =>
273
273
 
274
274
  end
275
275
 
276
+ it "should not destroy content when datastream properties are changed" do
277
+ obj = @repository.find('test:1')
278
+ obj.datastreams["my_ds"].content = "XXX"
279
+ obj.datastreams["my_ds"].mimeType = "text/plain"
280
+ obj.save
281
+
282
+ obj = @repository.find('test:1')
283
+ obj.datastreams["my_ds"].mimeType = 'application/json'
284
+ obj.save
285
+
286
+ obj = @repository.find('test:1')
287
+ obj.datastreams["my_ds"].content.should == "XXX"
288
+ end
289
+
276
290
 
277
291
  after(:all) do
278
292
  @repository.find('test:1').delete rescue nil
metadata CHANGED
@@ -1,169 +1,220 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rubydora
3
- version: !ruby/object:Gem::Version
4
- version: 0.4.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Chris Beer
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-01-20 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: fastercsv
16
- requirement: &70299924187440 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-01-24 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
22
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ hash: 3
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ prerelease: false
31
+ requirement: *id001
22
32
  type: :runtime
33
+ name: fastercsv
34
+ - !ruby/object:Gem::Dependency
35
+ version_requirements: &id002 !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ hash: 3
41
+ segments:
42
+ - 0
43
+ version: "0"
23
44
  prerelease: false
24
- version_requirements: *70299924187440
25
- - !ruby/object:Gem::Dependency
45
+ requirement: *id002
46
+ type: :runtime
26
47
  name: rest-client
27
- requirement: &70299924186860 !ruby/object:Gem::Requirement
48
+ - !ruby/object:Gem::Dependency
49
+ version_requirements: &id003 !ruby/object:Gem::Requirement
28
50
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
34
58
  prerelease: false
35
- version_requirements: *70299924186860
36
- - !ruby/object:Gem::Dependency
59
+ requirement: *id003
60
+ type: :runtime
37
61
  name: nokogiri
38
- requirement: &70299924202440 !ruby/object:Gem::Requirement
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: &id004 !ruby/object:Gem::Requirement
39
64
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :runtime
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ hash: 3
69
+ segments:
70
+ - 0
71
+ version: "0"
45
72
  prerelease: false
46
- version_requirements: *70299924202440
47
- - !ruby/object:Gem::Dependency
73
+ requirement: *id004
74
+ type: :runtime
48
75
  name: mime-types
49
- requirement: &70299924201840 !ruby/object:Gem::Requirement
76
+ - !ruby/object:Gem::Dependency
77
+ version_requirements: &id005 !ruby/object:Gem::Requirement
50
78
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
85
+ version: "0"
56
86
  prerelease: false
57
- version_requirements: *70299924201840
58
- - !ruby/object:Gem::Dependency
87
+ requirement: *id005
88
+ type: :runtime
59
89
  name: activesupport
60
- requirement: &70299924201260 !ruby/object:Gem::Requirement
90
+ - !ruby/object:Gem::Dependency
91
+ version_requirements: &id006 !ruby/object:Gem::Requirement
61
92
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
66
- type: :runtime
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
67
100
  prerelease: false
68
- version_requirements: *70299924201260
69
- - !ruby/object:Gem::Dependency
101
+ requirement: *id006
102
+ type: :runtime
70
103
  name: activemodel
71
- requirement: &70299924200660 !ruby/object:Gem::Requirement
104
+ - !ruby/object:Gem::Dependency
105
+ version_requirements: &id007 !ruby/object:Gem::Requirement
72
106
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :runtime
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ hash: 3
111
+ segments:
112
+ - 0
113
+ version: "0"
78
114
  prerelease: false
79
- version_requirements: *70299924200660
80
- - !ruby/object:Gem::Dependency
115
+ requirement: *id007
116
+ type: :runtime
81
117
  name: savon
82
- requirement: &70299924200120 !ruby/object:Gem::Requirement
118
+ - !ruby/object:Gem::Dependency
119
+ version_requirements: &id008 !ruby/object:Gem::Requirement
83
120
  none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
88
- type: :runtime
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
127
+ version: "0"
89
128
  prerelease: false
90
- version_requirements: *70299924200120
91
- - !ruby/object:Gem::Dependency
129
+ requirement: *id008
130
+ type: :development
92
131
  name: rake
93
- requirement: &70299924199420 !ruby/object:Gem::Requirement
132
+ - !ruby/object:Gem::Dependency
133
+ version_requirements: &id009 !ruby/object:Gem::Requirement
94
134
  none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
- type: :development
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: 3
139
+ segments:
140
+ - 0
141
+ version: "0"
100
142
  prerelease: false
101
- version_requirements: *70299924199420
102
- - !ruby/object:Gem::Dependency
143
+ requirement: *id009
144
+ type: :development
103
145
  name: shoulda
104
- requirement: &70299924198880 !ruby/object:Gem::Requirement
146
+ - !ruby/object:Gem::Dependency
147
+ version_requirements: &id010 !ruby/object:Gem::Requirement
105
148
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ hash: 11
153
+ segments:
154
+ - 1
155
+ - 0
156
+ - 14
157
+ version: 1.0.14
111
158
  prerelease: false
112
- version_requirements: *70299924198880
113
- - !ruby/object:Gem::Dependency
159
+ requirement: *id010
160
+ type: :development
114
161
  name: bundler
115
- requirement: &70299924198120 !ruby/object:Gem::Requirement
162
+ - !ruby/object:Gem::Dependency
163
+ version_requirements: &id011 !ruby/object:Gem::Requirement
116
164
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: 1.0.14
121
- type: :development
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ hash: 3
169
+ segments:
170
+ - 0
171
+ version: "0"
122
172
  prerelease: false
123
- version_requirements: *70299924198120
124
- - !ruby/object:Gem::Dependency
173
+ requirement: *id011
174
+ type: :development
125
175
  name: rspec
126
- requirement: &70299924197420 !ruby/object:Gem::Requirement
176
+ - !ruby/object:Gem::Dependency
177
+ version_requirements: &id012 !ruby/object:Gem::Requirement
127
178
  none: false
128
- requirements:
129
- - - ! '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
133
186
  prerelease: false
134
- version_requirements: *70299924197420
135
- - !ruby/object:Gem::Dependency
187
+ requirement: *id012
188
+ type: :development
136
189
  name: yard
137
- requirement: &70299924196680 !ruby/object:Gem::Requirement
190
+ - !ruby/object:Gem::Dependency
191
+ version_requirements: &id013 !ruby/object:Gem::Requirement
138
192
  none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- type: :development
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ hash: 3
197
+ segments:
198
+ - 0
199
+ version: "0"
144
200
  prerelease: false
145
- version_requirements: *70299924196680
146
- - !ruby/object:Gem::Dependency
147
- name: jettywrapper
148
- requirement: &70299924196100 !ruby/object:Gem::Requirement
149
- none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
201
+ requirement: *id013
154
202
  type: :development
155
- prerelease: false
156
- version_requirements: *70299924196100
157
- description: ! 'Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+'
158
- email:
203
+ name: jettywrapper
204
+ description: "Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+"
205
+ email:
159
206
  - chris@cbeer.info
160
207
  executables: []
208
+
161
209
  extensions: []
210
+
162
211
  extra_rdoc_files: []
163
- files:
212
+
213
+ files:
164
214
  - .gitignore
165
215
  - .gitmodules
166
216
  - Gemfile
217
+ - History.textile
167
218
  - LICENSE.txt
168
219
  - README.rdoc
169
220
  - Rakefile
@@ -200,35 +251,38 @@ files:
200
251
  - spec/spec_helper.rb
201
252
  homepage: http://github.com/cbeer/rubydora
202
253
  licenses: []
254
+
203
255
  post_install_message:
204
256
  rdoc_options: []
205
- require_paths:
257
+
258
+ require_paths:
206
259
  - lib
207
- required_ruby_version: !ruby/object:Gem::Requirement
260
+ required_ruby_version: !ruby/object:Gem::Requirement
208
261
  none: false
209
- requirements:
210
- - - ! '>='
211
- - !ruby/object:Gem::Version
212
- version: '0'
213
- segments:
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ hash: 3
266
+ segments:
214
267
  - 0
215
- hash: 1777998535859713863
216
- required_rubygems_version: !ruby/object:Gem::Requirement
268
+ version: "0"
269
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
270
  none: false
218
- requirements:
219
- - - ! '>='
220
- - !ruby/object:Gem::Version
221
- version: '0'
222
- segments:
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ hash: 3
275
+ segments:
223
276
  - 0
224
- hash: 1777998535859713863
277
+ version: "0"
225
278
  requirements: []
279
+
226
280
  rubyforge_project:
227
- rubygems_version: 1.8.10
281
+ rubygems_version: 1.8.15
228
282
  signing_key:
229
283
  specification_version: 3
230
284
  summary: Fedora Commons REST API ruby library
231
- test_files:
285
+ test_files:
232
286
  - spec/lib/datastream_spec.rb
233
287
  - spec/lib/digital_object_spec.rb
234
288
  - spec/lib/ext_model_loader_spec.rb
@@ -240,3 +294,4 @@ test_files:
240
294
  - spec/lib/rest_api_client_spec.rb
241
295
  - spec/lib/soap_spec.rb
242
296
  - spec/spec_helper.rb
297
+ has_rdoc: