rubydora 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -43,3 +43,4 @@ Gemfile.lock
43
43
  #
44
44
  # For vim:
45
45
  *.swp
46
+ *.swo
data/History.textile CHANGED
@@ -1,3 +1,6 @@
1
+ h3. 0.5.2
2
+ * Force checksum query when you call dsChecksumValid, unless it's already in the profile.
3
+
1
4
  h3. 0.5.1
2
5
  * symbolize keys that are passed as config options
3
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.5.2
@@ -43,7 +43,7 @@ module Rubydora
43
43
  }
44
44
 
45
45
  def dsChecksumValid
46
- profile['dsChecksumValid']
46
+ profile(:validateChecksum=>true)['dsChecksumValid']
47
47
  end
48
48
  end
49
49
 
@@ -140,20 +140,27 @@ module Rubydora
140
140
  end
141
141
 
142
142
  # Retrieve the datastream profile as a hash (and cache it)
143
+ # @param opts [Hash] :validateChecksum if you want fedora to validate the checksum
143
144
  # @return [Hash] see Fedora #getDatastream documentation for keys
144
- def profile profile_xml = nil
145
- @profile ||= begin
145
+ def profile opts= {}
146
+ if @profile && !(opts[:validateChecksum] && !@profile.has_key?('dsChecksumValid'))
147
+ ## Force a recheck of the profile if they've passed :validateChecksum and we don't have dsChecksumValid
148
+ return @profile
149
+ end
150
+ @profile = begin
146
151
  options = { :pid => pid, :dsid => dsid }
152
+ options.merge!(opts)
147
153
  options[:asOfDateTime] = asOfDateTime if asOfDateTime
148
154
  options[:validateChecksum] = true if repository.config[:validateChecksum]
149
- profile_xml ||= repository.datastream(options)
150
- self.profile_xml_to_hash(profile_xml)
151
-
155
+ self.profile_xml_to_hash(repository.datastream(options))
152
156
  rescue
153
157
  {}
154
158
  end
155
159
  end
156
- alias_method :profile=, :profile
160
+
161
+ def profile= profile_xml
162
+ @profile = self.profile_xml_to_hash(profile_xml)
163
+ end
157
164
 
158
165
  def profile_xml_to_hash profile_xml
159
166
  profile_xml.gsub! '<datastreamProfile', '<datastreamProfile xmlns="http://www.fedora.info/definitions/1/0/management/"' unless profile_xml =~ /xmlns=/
@@ -177,6 +184,7 @@ module Rubydora
177
184
 
178
185
  def versions
179
186
  versions_xml = repository.datastream_versions(:pid => pid, :dsid => dsid)
187
+ return [] if versions_xml.nil?
180
188
  versions_xml.gsub! '<datastreamProfile', '<datastreamProfile xmlns="http://www.fedora.info/definitions/1/0/management/"' unless versions_xml =~ /xmlns=/
181
189
  doc = Nokogiri::XML(versions_xml)
182
190
  doc.xpath('//management:datastreamProfile', {'management' => "http://www.fedora.info/definitions/1/0/management/"} ).map do |ds|
@@ -1,3 +1,5 @@
1
+ require 'active_support/core_ext/hash/indifferent_access'
2
+
1
3
  module Rubydora
2
4
 
3
5
  # Provide low-level access to the Fedora Commons REST API
@@ -181,6 +183,8 @@ module Rubydora
181
183
  # @param [Hash] options
182
184
  # @option options [String] :pid
183
185
  # @option options [String] :dsid
186
+ # @option options [String] :asOfDateTime
187
+ # @option options [String] :validateChecksum
184
188
  # @return [String]
185
189
  def datastream options = {}
186
190
  pid = options.delete(:pid)
@@ -228,7 +232,11 @@ module Rubydora
228
232
  options[:format] ||= 'xml'
229
233
  begin
230
234
  return client[datastream_history_url(pid, dsid, options)].get
235
+ rescue RestClient::ResourceNotFound => e
236
+ #404 Resource Not Found: No datastream history could be found. There is no datastream history for the digital object "changeme:1" with datastream ID of "descMetadata
237
+ return nil
231
238
  rescue => e
239
+ raise e
232
240
  logger.error e.response
233
241
  logger.flush if logger.respond_to? :flush
234
242
  raise "Error getting versions for datastream #{dsid} for object #{pid}. See logger for details"
@@ -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, :config=>{:validateChecksum=>true})
5
+ @mock_repository = mock(Rubydora::Repository, :config=>{})
6
6
  @mock_object = mock(Rubydora::DigitalObject)
7
7
  @mock_object.stub(:repository => @mock_repository, :pid => 'pid')
8
8
  end
@@ -47,7 +47,7 @@ describe Rubydora::Datastream do
47
47
  @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
48
48
  end
49
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
50
+ @mock_repository.should_receive(:datastream).with(hash_including(:validateChecksum => true)).and_return <<-XML
51
51
  <datastreamProfile>
52
52
  </datastreamProfile>
53
53
  XML
@@ -55,7 +55,7 @@ describe Rubydora::Datastream do
55
55
  end
56
56
 
57
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
58
+ @mock_repository.should_receive(:datastream).with(hash_including(:validateChecksum => true)).and_return <<-XML
59
59
  <datastreamProfile>
60
60
  <dsChecksumValid>true</dsChecksumValid>
61
61
  </datastreamProfile>
@@ -64,7 +64,7 @@ describe Rubydora::Datastream do
64
64
  end
65
65
 
66
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
67
+ @mock_repository.should_receive(:datastream).with(hash_including(:validateChecksum => true)).and_return <<-XML
68
68
  <datastreamProfile>
69
69
  <dsChecksumValid>false</dsChecksumValid>
70
70
  </datastreamProfile>
@@ -187,33 +187,46 @@ describe Rubydora::Datastream do
187
187
  end
188
188
 
189
189
  describe "versions" do
190
- before(:each) do
191
- @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
192
- @mock_repository.should_receive(:datastream_versions).any_number_of_times.and_return <<-XML
193
- <datastreamHistory>
194
- <datastreamProfile>
195
- <dsVersionID>dsid.1</dsVersionID>
196
- <dsCreateDate>2010-01-02T00:00:00.012Z</dsCreateDate>
197
- </datastreamProfile>
198
- <datastreamProfile>
199
- <dsVersionID>dsid.0</dsVersionID>
200
- <dsCreateDate>2008-08-05T01:30:05.012Z</dsCreateDate>
201
- </datastreamProfile>
202
- </datastreamHistory>
203
- XML
204
- end
190
+ describe "when versions are in the repo" do
191
+ before(:each) do
192
+ @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
193
+ @mock_repository.should_receive(:datastream_versions).any_number_of_times.and_return <<-XML
194
+ <datastreamHistory>
195
+ <datastreamProfile>
196
+ <dsVersionID>dsid.1</dsVersionID>
197
+ <dsCreateDate>2010-01-02T00:00:00.012Z</dsCreateDate>
198
+ </datastreamProfile>
199
+ <datastreamProfile>
200
+ <dsVersionID>dsid.0</dsVersionID>
201
+ <dsCreateDate>2008-08-05T01:30:05.012Z</dsCreateDate>
202
+ </datastreamProfile>
203
+ </datastreamHistory>
204
+ XML
205
+ end
205
206
 
206
- it "should have a list of previous versions" do
207
- @datastream.versions.should have(2).items
208
- end
207
+ it "should have a list of previous versions" do
208
+ @datastream.versions.should have(2).items
209
+ end
209
210
 
210
- it "should access versions as read-only copies" do
211
- expect { @datastream.versions.first.label = "asdf" }.to raise_error
211
+ it "should access versions as read-only copies" do
212
+ expect { @datastream.versions.first.label = "asdf" }.to raise_error
213
+ end
214
+
215
+ it "should lookup content of datastream using the asOfDateTime parameter" do
216
+ @mock_repository.should_receive(:datastream_dissemination).with(hash_including(:asOfDateTime => '2008-08-05T01:30:05.012Z'))
217
+ @datastream.versions.last.content
218
+ end
212
219
  end
220
+ describe "when no versions are found" do
221
+ before(:each) do
222
+ @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
223
+ @mock_repository.should_receive(:datastream_versions).any_number_of_times.and_return nil
224
+ end
225
+
226
+ it "should have an emptylist of previous versions" do
227
+ @datastream.versions.should be_empty
228
+ end
213
229
 
214
- it "should lookup content of datastream using the asOfDateTime parameter" do
215
- @mock_repository.should_receive(:datastream_dissemination).with(hash_including(:asOfDateTime => '2008-08-05T01:30:05.012Z'))
216
- @datastream.versions.last.content
217
230
  end
218
231
 
219
232
  end
@@ -373,7 +386,62 @@ describe Rubydora::Datastream do
373
386
  end
374
387
  end
375
388
 
389
+ describe "profile=" do
390
+ before(:each) do
391
+ @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
392
+ end
393
+ it "should set the profile" do
394
+ prof = <<-XML
395
+ <datastreamProfile>
396
+ <dsChecksumValid>true</dsChecksumValid>
397
+ </datastreamProfile>
398
+ XML
399
+ @datastream.profile = prof
400
+ @datastream.profile.should == {'dsChecksumValid' =>true}
401
+ end
402
+ end
403
+
376
404
  describe "profile" do
405
+ before(:each) do
406
+ @datastream = Rubydora::Datastream.new @mock_object, 'dsid'
407
+ end
408
+ it "should accept a validateChecksum argument" do
409
+ @mock_repository.should_receive(:datastream).with(hash_including(:validateChecksum => true)).and_return <<-XML
410
+ <datastreamProfile>
411
+ <dsChecksumValid>true</dsChecksumValid>
412
+ </datastreamProfile>
413
+ XML
414
+ @datastream.profile(:validateChecksum=>true).should == {'dsChecksumValid' =>true}
415
+ end
416
+ describe "once it has a profile" do
417
+ it "should use the profile from cache" do
418
+ @mock_repository.should_receive(:datastream).once.and_return <<-XML
419
+ <datastreamProfile>
420
+ <dsChecksumValid>true</dsChecksumValid>
421
+ </datastreamProfile>
422
+ XML
423
+ @datastream.profile().should == {'dsChecksumValid' =>true}
424
+ #second time should not trigger the mock, which demonstrates that the profile is coming from cache.
425
+ @datastream.profile().should == {'dsChecksumValid' =>true}
426
+ end
427
+ it "should re-fetch and replace the profile when validateChecksum is passed in, and there is no dsChecksumValid in the existing profile" do
428
+ @mock_repository.should_receive(:datastream).once.and_return <<-XML
429
+ <datastreamProfile>
430
+ <dsLabel>The description of the content</dsLabel>
431
+ </datastreamProfile>
432
+ XML
433
+ @mock_repository.should_receive(:datastream).with(hash_including(:validateChecksum => true)).once.and_return <<-XML
434
+ <datastreamProfile>
435
+ <dsLabel>The description of the content</dsLabel>
436
+ <dsChecksumValid>true</dsChecksumValid>
437
+ </datastreamProfile>
438
+ XML
439
+ @datastream.profile().should == {"dsLabel"=>"The description of the content"}
440
+ @datastream.profile(:validateChecksum=>true).should == {"dsLabel"=>"The description of the content", 'dsChecksumValid' =>true}
441
+ ## Third time should not trigger a mock, which demonstrates that the profile is coming from cache.
442
+ @datastream.profile(:validateChecksum=>true)
443
+ end
444
+ end
377
445
 
378
446
  end
379
447
 
@@ -167,9 +167,15 @@ describe Rubydora::RestApiClient do
167
167
  @mock_repository.set_datastream_options :pid => 'mypid', :dsid => 'aaa', :aparam => true
168
168
  end
169
169
 
170
- it "datastream_versions" do
171
- RestClient::Request.should_receive(:execute).with(hash_including(:url => "http://example.org/objects/mypid/datastreams/aaa/history?format=xml"))
172
- @mock_repository.datastream_versions :pid => 'mypid', :dsid => 'aaa'
170
+ describe "datastream_versions" do
171
+ it "should be successful" do
172
+ RestClient::Request.should_receive(:execute).with(hash_including(:url => "http://example.org/objects/mypid/datastreams/aaa/history?format=xml")).and_return("expected result")
173
+ @mock_repository.datastream_versions(:pid => 'mypid', :dsid => 'aaa').should == 'expected result'
174
+ end
175
+ it "should not break when fedora doesn't have datastream history" do
176
+ RestClient::Request.should_receive(:execute).with(hash_including(:url => "http://example.org/objects/mypid/datastreams/aaa/history?format=xml")).and_raise(RestClient::ResourceNotFound)
177
+ @mock_repository.datastream_versions(:pid => 'mypid', :dsid => 'aaa').should be_nil
178
+ end
173
179
  end
174
180
 
175
181
  it "datastream_history" do
metadata CHANGED
@@ -1,216 +1,166 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rubydora
3
- version: !ruby/object:Gem::Version
4
- hash: 9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 1
10
- version: 0.5.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Chris Beer
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
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
22
- none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- prerelease: false
31
- requirement: *id001
32
- type: :runtime
12
+ date: 2012-02-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
33
15
  name: fastercsv
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
16
+ requirement: &70365343748360 !ruby/object:Gem::Requirement
36
17
  none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 0
43
- version: "0"
44
- prerelease: false
45
- requirement: *id002
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
46
22
  type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70365343748360
25
+ - !ruby/object:Gem::Dependency
47
26
  name: rest-client
48
- - !ruby/object:Gem::Dependency
49
- version_requirements: &id003 !ruby/object:Gem::Requirement
27
+ requirement: &70365343747580 !ruby/object:Gem::Requirement
50
28
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
58
- prerelease: false
59
- requirement: *id003
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
60
33
  type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70365343747580
36
+ - !ruby/object:Gem::Dependency
61
37
  name: nokogiri
62
- - !ruby/object:Gem::Dependency
63
- version_requirements: &id004 !ruby/object:Gem::Requirement
38
+ requirement: &70365343746620 !ruby/object:Gem::Requirement
64
39
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- hash: 3
69
- segments:
70
- - 0
71
- version: "0"
72
- prerelease: false
73
- requirement: *id004
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
74
44
  type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70365343746620
47
+ - !ruby/object:Gem::Dependency
75
48
  name: mime-types
76
- - !ruby/object:Gem::Dependency
77
- version_requirements: &id005 !ruby/object:Gem::Requirement
49
+ requirement: &70365343776580 !ruby/object:Gem::Requirement
78
50
  none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- hash: 3
83
- segments:
84
- - 0
85
- version: "0"
86
- prerelease: false
87
- requirement: *id005
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
88
55
  type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70365343776580
58
+ - !ruby/object:Gem::Dependency
89
59
  name: activesupport
90
- - !ruby/object:Gem::Dependency
91
- version_requirements: &id006 !ruby/object:Gem::Requirement
60
+ requirement: &70365343776040 !ruby/object:Gem::Requirement
92
61
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
100
- prerelease: false
101
- requirement: *id006
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
102
66
  type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70365343776040
69
+ - !ruby/object:Gem::Dependency
103
70
  name: activemodel
104
- - !ruby/object:Gem::Dependency
105
- version_requirements: &id007 !ruby/object:Gem::Requirement
71
+ requirement: &70365343775300 !ruby/object:Gem::Requirement
106
72
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- hash: 3
111
- segments:
112
- - 0
113
- version: "0"
114
- prerelease: false
115
- requirement: *id007
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
116
77
  type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70365343775300
80
+ - !ruby/object:Gem::Dependency
117
81
  name: savon
118
- - !ruby/object:Gem::Dependency
119
- version_requirements: &id008 !ruby/object:Gem::Requirement
82
+ requirement: &70365343774660 !ruby/object:Gem::Requirement
120
83
  none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 0
127
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
128
89
  prerelease: false
129
- requirement: *id008
130
- type: :development
90
+ version_requirements: *70365343774660
91
+ - !ruby/object:Gem::Dependency
131
92
  name: rake
132
- - !ruby/object:Gem::Dependency
133
- version_requirements: &id009 !ruby/object:Gem::Requirement
93
+ requirement: &70365343774200 !ruby/object:Gem::Requirement
134
94
  none: false
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- hash: 3
139
- segments:
140
- - 0
141
- version: "0"
142
- prerelease: false
143
- requirement: *id009
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
144
99
  type: :development
100
+ prerelease: false
101
+ version_requirements: *70365343774200
102
+ - !ruby/object:Gem::Dependency
145
103
  name: shoulda
146
- - !ruby/object:Gem::Dependency
147
- version_requirements: &id010 !ruby/object:Gem::Requirement
104
+ requirement: &70365343773680 !ruby/object:Gem::Requirement
148
105
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 11
153
- segments:
154
- - 1
155
- - 0
156
- - 14
157
- version: 1.0.14
158
- prerelease: false
159
- requirement: *id010
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
160
110
  type: :development
111
+ prerelease: false
112
+ version_requirements: *70365343773680
113
+ - !ruby/object:Gem::Dependency
161
114
  name: bundler
162
- - !ruby/object:Gem::Dependency
163
- version_requirements: &id011 !ruby/object:Gem::Requirement
115
+ requirement: &70365343773080 !ruby/object:Gem::Requirement
164
116
  none: false
165
- requirements:
166
- - - ">="
167
- - !ruby/object:Gem::Version
168
- hash: 3
169
- segments:
170
- - 0
171
- version: "0"
172
- prerelease: false
173
- requirement: *id011
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.14
174
121
  type: :development
122
+ prerelease: false
123
+ version_requirements: *70365343773080
124
+ - !ruby/object:Gem::Dependency
175
125
  name: rspec
176
- - !ruby/object:Gem::Dependency
177
- version_requirements: &id012 !ruby/object:Gem::Requirement
126
+ requirement: &70365343772660 !ruby/object:Gem::Requirement
178
127
  none: false
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- hash: 3
183
- segments:
184
- - 0
185
- version: "0"
186
- prerelease: false
187
- requirement: *id012
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
188
132
  type: :development
133
+ prerelease: false
134
+ version_requirements: *70365343772660
135
+ - !ruby/object:Gem::Dependency
189
136
  name: yard
190
- - !ruby/object:Gem::Dependency
191
- version_requirements: &id013 !ruby/object:Gem::Requirement
137
+ requirement: &70365343772120 !ruby/object:Gem::Requirement
192
138
  none: false
193
- requirements:
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- hash: 3
197
- segments:
198
- - 0
199
- version: "0"
200
- prerelease: false
201
- requirement: *id013
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
202
143
  type: :development
144
+ prerelease: false
145
+ version_requirements: *70365343772120
146
+ - !ruby/object:Gem::Dependency
203
147
  name: jettywrapper
204
- description: "Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+"
205
- email:
148
+ requirement: &70365343771420 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *70365343771420
157
+ description: ! 'Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+'
158
+ email:
206
159
  - chris@cbeer.info
207
160
  executables: []
208
-
209
161
  extensions: []
210
-
211
162
  extra_rdoc_files: []
212
-
213
- files:
163
+ files:
214
164
  - .gitignore
215
165
  - .gitmodules
216
166
  - Gemfile
@@ -251,38 +201,35 @@ files:
251
201
  - spec/spec_helper.rb
252
202
  homepage: http://github.com/cbeer/rubydora
253
203
  licenses: []
254
-
255
204
  post_install_message:
256
205
  rdoc_options: []
257
-
258
- require_paths:
206
+ require_paths:
259
207
  - lib
260
- required_ruby_version: !ruby/object:Gem::Requirement
208
+ required_ruby_version: !ruby/object:Gem::Requirement
261
209
  none: false
262
- requirements:
263
- - - ">="
264
- - !ruby/object:Gem::Version
265
- hash: 3
266
- segments:
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ segments:
267
215
  - 0
268
- version: "0"
269
- required_rubygems_version: !ruby/object:Gem::Requirement
216
+ hash: -1071574168413423455
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
270
218
  none: false
271
- requirements:
272
- - - ">="
273
- - !ruby/object:Gem::Version
274
- hash: 3
275
- segments:
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ segments:
276
224
  - 0
277
- version: "0"
225
+ hash: -1071574168413423455
278
226
  requirements: []
279
-
280
227
  rubyforge_project:
281
- rubygems_version: 1.8.15
228
+ rubygems_version: 1.8.10
282
229
  signing_key:
283
230
  specification_version: 3
284
231
  summary: Fedora Commons REST API ruby library
285
- test_files:
232
+ test_files:
286
233
  - spec/lib/datastream_spec.rb
287
234
  - spec/lib/digital_object_spec.rb
288
235
  - spec/lib/ext_model_loader_spec.rb