restfully 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -23,6 +23,8 @@ module Restfully
|
|
23
23
|
request[:head] = sanitize_head(@session.default_headers).merge(
|
24
24
|
build_head(request)
|
25
25
|
)
|
26
|
+
origin_content_type = request[:head].delete('Origin-Content-Type')
|
27
|
+
request[:head]['Content-Type'] ||= origin_content_type if origin_content_type
|
26
28
|
|
27
29
|
request[:uri] = @session.uri_to(path)
|
28
30
|
if request[:query]
|
data/lib/restfully/resource.rb
CHANGED
@@ -2,8 +2,8 @@ module Restfully
|
|
2
2
|
# This class represents a Resource, which can be accessed and manipulated
|
3
3
|
# via HTTP methods.
|
4
4
|
#
|
5
|
-
# Some resources can be collection of other resources.
|
6
|
-
# In that case the <tt>Restfully::Collection</tt> module is included in the <tt>Restfully::Resource</tt> class.
|
5
|
+
# Some resources can be collection of other resources.
|
6
|
+
# In that case the <tt>Restfully::Collection</tt> module is included in the <tt>Restfully::Resource</tt> class.
|
7
7
|
# See the corresponding documentation for the list of additional methods that you can use on a collection resource.
|
8
8
|
class Resource
|
9
9
|
attr_reader :response, :request, :session
|
@@ -77,7 +77,7 @@ module Restfully
|
|
77
77
|
raise Error, "Cannot reload the resource"
|
78
78
|
end
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
build
|
82
82
|
end
|
83
83
|
|
@@ -90,7 +90,7 @@ module Restfully
|
|
90
90
|
def properties
|
91
91
|
case props = media_type.property
|
92
92
|
when Hash
|
93
|
-
props.reject{|k,v|
|
93
|
+
props.reject{|k,v|
|
94
94
|
# do not return keys used for internal use
|
95
95
|
k.to_s =~ HIDDEN_PROPERTIES_REGEXP
|
96
96
|
}
|
@@ -153,7 +153,7 @@ module Restfully
|
|
153
153
|
"{...}"
|
154
154
|
end
|
155
155
|
end
|
156
|
-
|
156
|
+
|
157
157
|
def pretty_print(pp)
|
158
158
|
pp.text signature(false)
|
159
159
|
pp.nest 2 do
|
@@ -164,7 +164,7 @@ module Restfully
|
|
164
164
|
pp.breakable
|
165
165
|
pp.text "#{relationships.join(", ")}"
|
166
166
|
end
|
167
|
-
end
|
167
|
+
end
|
168
168
|
pp.breakable
|
169
169
|
if collection?
|
170
170
|
# display items
|
@@ -205,7 +205,7 @@ module Restfully
|
|
205
205
|
'Accept' => link.type
|
206
206
|
}).load(*args)
|
207
207
|
end
|
208
|
-
|
208
|
+
|
209
209
|
end
|
210
210
|
# end
|
211
211
|
self
|
@@ -220,20 +220,22 @@ module Restfully
|
|
220
220
|
protected
|
221
221
|
def extract_payload_from_args(args)
|
222
222
|
options = args.extract_options!
|
223
|
-
head = options.delete(:headers) || options.delete(:head)
|
223
|
+
head = options.delete(:headers) || options.delete(:head) || {}
|
224
|
+
head['Origin-Content-Type'] = response.head['Content-Type']
|
225
|
+
|
224
226
|
query = options.delete(:query)
|
225
227
|
|
226
228
|
payload = args.shift || options
|
227
|
-
|
229
|
+
|
228
230
|
options = {
|
229
231
|
:head => head, :query => query,
|
230
|
-
:serialization => media_type.property.reject{|k,v|
|
232
|
+
:serialization => media_type.property.reject{|k,v|
|
231
233
|
k !~ HIDDEN_PROPERTIES_REGEXP
|
232
234
|
}
|
233
235
|
}
|
234
|
-
|
236
|
+
|
235
237
|
[payload, options]
|
236
238
|
end
|
237
|
-
|
239
|
+
|
238
240
|
end
|
239
241
|
end
|
data/lib/restfully/version.rb
CHANGED
@@ -73,7 +73,10 @@ describe Restfully::Resource do
|
|
73
73
|
@session.should_receive(:post).with(
|
74
74
|
@resource.uri,
|
75
75
|
'some payload',
|
76
|
-
:head => {
|
76
|
+
:head => {
|
77
|
+
'Content-Type' => 'text/plain',
|
78
|
+
'Origin-Content-Type' => "application/vnd.grid5000+json; charset=utf-8"
|
79
|
+
},
|
77
80
|
:query => {:k1 => 'v1'},
|
78
81
|
:serialization => {}
|
79
82
|
)
|
@@ -88,7 +91,10 @@ describe Restfully::Resource do
|
|
88
91
|
@session.should_receive(:post).with(
|
89
92
|
@resource.uri,
|
90
93
|
{:key => 'value'},
|
91
|
-
:head => {
|
94
|
+
:head => {
|
95
|
+
'Content-Type' => 'text/plain',
|
96
|
+
'Origin-Content-Type' => "application/vnd.grid5000+json; charset=utf-8"
|
97
|
+
},
|
92
98
|
:query => {:k1 => 'v1'},
|
93
99
|
:serialization => {}
|
94
100
|
)
|
@@ -115,7 +121,10 @@ describe Restfully::Resource do
|
|
115
121
|
@session.should_receive(:put).with(
|
116
122
|
@resource.uri,
|
117
123
|
{:key => 'value'},
|
118
|
-
:head => {
|
124
|
+
:head => {
|
125
|
+
'Content-Type' => 'text/plain',
|
126
|
+
'Origin-Content-Type' => "application/vnd.bonfire+xml; charset=utf-8"
|
127
|
+
},
|
119
128
|
:query => {:k1 => 'v1'},
|
120
129
|
:serialization => {"__type__"=>"network"}
|
121
130
|
)
|
metadata
CHANGED