rubydora 0.5.7 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/rubydora/datastream.rb +4 -4
- data/lib/rubydora/digital_object.rb +4 -3
- data/spec/lib/datastream_spec.rb +1 -1
- data/spec/lib/digital_object_spec.rb +4 -0
- data/spec/lib/integration_test_spec.rb +21 -0
- metadata +96 -31
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.8
|
data/lib/rubydora/datastream.rb
CHANGED
@@ -180,9 +180,9 @@ module Rubydora
|
|
180
180
|
sum[node.name] ||= []
|
181
181
|
sum[node.name] << node.text
|
182
182
|
sum
|
183
|
-
end
|
184
|
-
h.select { |key,
|
185
|
-
h[key] =
|
183
|
+
end.reject { |key, values| values.empty? }
|
184
|
+
h.select { |key, values| values.length == 1 }.each do |key, values|
|
185
|
+
h[key] = values.reject { |x| x.empty? }.first
|
186
186
|
end
|
187
187
|
|
188
188
|
h['dsSize'] &&= h['dsSize'].to_i rescue h['dsSize']
|
@@ -245,7 +245,7 @@ module Rubydora
|
|
245
245
|
valid_changed_attributes = changes.keys.map { |x| x.to_sym }.select { |x| DS_ATTRIBUTES.key? x }
|
246
246
|
## if we don't provide a mimeType, application/octet-stream will be used instead
|
247
247
|
(valid_changed_attributes | [:mimeType]).each do |attribute|
|
248
|
-
h[attribute] = send(attribute)
|
248
|
+
h[attribute.to_sym] = send(attribute) unless send(attribute).nil?
|
249
249
|
end
|
250
250
|
|
251
251
|
h
|
@@ -125,10 +125,11 @@ module Rubydora
|
|
125
125
|
end
|
126
126
|
|
127
127
|
sum
|
128
|
-
end
|
129
|
-
|
128
|
+
end.reject { |key, values| values.empty? }
|
129
|
+
|
130
|
+
h.select { |key, values| values.length == 1 }.each do |key, values|
|
130
131
|
next if key == "objModels"
|
131
|
-
h[key] =
|
132
|
+
h[key] = values.reject { |x| x.empty? }.first
|
132
133
|
end
|
133
134
|
@new = false
|
134
135
|
|
data/spec/lib/datastream_spec.rb
CHANGED
@@ -56,7 +56,7 @@ describe Rubydora::Datastream do
|
|
56
56
|
before(:each) do
|
57
57
|
@datastream = Rubydora::Datastream.new @mock_object, 'dsid'
|
58
58
|
end
|
59
|
-
it "should be
|
59
|
+
it "should be true by default" do
|
60
60
|
@mock_repository.should_receive(:datastream).and_return <<-XML
|
61
61
|
<datastreamProfile>
|
62
62
|
</datastreamProfile>
|
@@ -33,7 +33,11 @@ describe Rubydora::DigitalObject do
|
|
33
33
|
h = @object.profile
|
34
34
|
|
35
35
|
expect { h['asdf'] = 'asdf' }.to raise_error
|
36
|
+
end
|
36
37
|
|
38
|
+
it "should return nil for empty profile fields" do
|
39
|
+
@mock_repository.should_receive(:object).with(:pid => 'pid').and_return("<objectProfile><a></a></objectProfile>")
|
40
|
+
@object.profile['a'].should be_nil
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
@@ -200,6 +200,27 @@ describe "Integration testing against a live Fedora repository", :integration =>
|
|
200
200
|
versions = obj.datastreams["my_ds"].versions
|
201
201
|
versions.map { |x| x.content }.should include("XXX", "YYY")
|
202
202
|
end
|
203
|
+
|
204
|
+
it "should allow the user to go from a versioned datastream to an unversioned datastream" do
|
205
|
+
obj = @repository.find('test:1')
|
206
|
+
versions_count = obj.datastreams["my_ds"].versions.length
|
207
|
+
|
208
|
+
obj.datastreams["my_ds"].versionable.should be_true
|
209
|
+
|
210
|
+
obj.datastreams["my_ds"].versionable = false
|
211
|
+
obj.datastreams["my_ds"].content = "ZZZ"
|
212
|
+
obj.datastreams["my_ds"].save
|
213
|
+
|
214
|
+
obj.datastreams["my_ds"].content = "111"
|
215
|
+
obj.datastreams["my_ds"].save
|
216
|
+
|
217
|
+
obj.datastreams["my_ds"].content = "222"
|
218
|
+
obj.datastreams["my_ds"].save
|
219
|
+
|
220
|
+
obj = @repository.find('test:1')
|
221
|
+
obj.datastreams["my_ds"].versionable.should be_false
|
222
|
+
obj.datastreams["my_ds"].versions.length.should == (versions_count + 1)
|
223
|
+
end
|
203
224
|
end
|
204
225
|
|
205
226
|
context "mime types" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubydora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fastercsv
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rest-client
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: nokogiri
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: mime-types
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: activesupport
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: activemodel
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: savon
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: rake
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: shoulda
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: bundler
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: 1.0.14
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.0.14
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: rspec
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ! '>='
|
@@ -131,10 +181,15 @@ dependencies:
|
|
131
181
|
version: '0'
|
132
182
|
type: :development
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: yard
|
137
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
138
193
|
none: false
|
139
194
|
requirements:
|
140
195
|
- - ! '>='
|
@@ -142,10 +197,15 @@ dependencies:
|
|
142
197
|
version: '0'
|
143
198
|
type: :development
|
144
199
|
prerelease: false
|
145
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
146
206
|
- !ruby/object:Gem::Dependency
|
147
207
|
name: jettywrapper
|
148
|
-
requirement:
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
149
209
|
none: false
|
150
210
|
requirements:
|
151
211
|
- - ! '>='
|
@@ -153,7 +213,12 @@ dependencies:
|
|
153
213
|
version: '0'
|
154
214
|
type: :development
|
155
215
|
prerelease: false
|
156
|
-
version_requirements:
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
157
222
|
description: ! 'Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+'
|
158
223
|
email:
|
159
224
|
- chris@cbeer.info
|
@@ -213,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
278
|
version: '0'
|
214
279
|
segments:
|
215
280
|
- 0
|
216
|
-
hash: -
|
281
|
+
hash: -1624989278098246824
|
217
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
283
|
none: false
|
219
284
|
requirements:
|
@@ -222,10 +287,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
287
|
version: '0'
|
223
288
|
segments:
|
224
289
|
- 0
|
225
|
-
hash: -
|
290
|
+
hash: -1624989278098246824
|
226
291
|
requirements: []
|
227
292
|
rubyforge_project:
|
228
|
-
rubygems_version: 1.8.
|
293
|
+
rubygems_version: 1.8.21
|
229
294
|
signing_key:
|
230
295
|
specification_version: 3
|
231
296
|
summary: Fedora Commons REST API ruby library
|