rubydora 0.4.1 → 0.5.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 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: