rubydora 0.5.1 → 0.5.2

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/.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