patron 0.4.3 → 0.4.4
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/ext/patron/session_ext.c +11 -8
- data/lib/patron.rb +3 -3
- data/spec/session_spec.rb +16 -0
- metadata +2 -2
data/ext/patron/session_ext.c
CHANGED
@@ -230,6 +230,8 @@ static void set_options_from_request(VALUE self, VALUE request) {
|
|
230
230
|
|
231
231
|
state->upload_file = open_file(filename, "r");
|
232
232
|
curl_easy_setopt(curl, CURLOPT_READDATA, state->upload_file);
|
233
|
+
} else {
|
234
|
+
rb_raise(rb_eArgError, "Must provide either data or a filename when doing a PUT or POST");
|
233
235
|
}
|
234
236
|
} else if (action == rb_intern("head")) {
|
235
237
|
curl_easy_setopt(curl, CURLOPT_NOBODY, 1);
|
@@ -391,14 +393,15 @@ VALUE session_handle_request(VALUE self, VALUE request) {
|
|
391
393
|
}
|
392
394
|
|
393
395
|
VALUE enable_cookie_session(VALUE self, VALUE file) {
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
396
|
+
struct curl_state *state;
|
397
|
+
Data_Get_Struct(self, struct curl_state, state);
|
398
|
+
CURL* curl = state->handle;
|
399
|
+
char* file_path = RSTRING_PTR(file);
|
400
|
+
if (file_path != NULL && strlen(file_path) != 0) {
|
401
|
+
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, file_path);
|
402
|
+
}
|
403
|
+
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, file_path);
|
404
|
+
return Qnil;
|
402
405
|
}
|
403
406
|
|
404
407
|
//------------------------------------------------------------------------------
|
data/lib/patron.rb
CHANGED
@@ -26,15 +26,15 @@ require 'yaml'
|
|
26
26
|
require 'pathname'
|
27
27
|
|
28
28
|
cwd = Pathname(__FILE__).dirname
|
29
|
-
$:.unshift(cwd) unless $:.include?(cwd) || $:.include?(cwd.expand_path)
|
29
|
+
$:.unshift(cwd.to_s) unless $:.include?(cwd.to_s) || $:.include?(cwd.expand_path.to_s)
|
30
30
|
|
31
31
|
require 'patron/session'
|
32
32
|
|
33
33
|
module Patron #:nodoc:
|
34
34
|
# Returns the version number of the Patron library as a string
|
35
35
|
def self.version
|
36
|
-
cwd = Pathname(__FILE__).dirname
|
37
|
-
yaml = YAML.load_file(cwd
|
36
|
+
cwd = Pathname(__FILE__).dirname.expand_path.to_s
|
37
|
+
yaml = YAML.load_file(cwd + '/../VERSION.yml')
|
38
38
|
major = (yaml['major'] || yaml[:major]).to_i
|
39
39
|
minor = (yaml['minor'] || yaml[:minor]).to_i
|
40
40
|
patch = (yaml['patch'] || yaml[:patch]).to_i
|
data/spec/session_spec.rb
CHANGED
@@ -137,12 +137,20 @@ describe Patron::Session do
|
|
137
137
|
body.header['content-length'].should == [data.size.to_s]
|
138
138
|
end
|
139
139
|
|
140
|
+
it "should raise when no data is provided to :put" do
|
141
|
+
lambda { @session.put("/test", nil) }.should raise_error(ArgumentError)
|
142
|
+
end
|
143
|
+
|
140
144
|
it "should upload a file with :put" do
|
141
145
|
response = @session.put_file("/test", "VERSION.yml")
|
142
146
|
body = YAML::load(response.body)
|
143
147
|
body.request_method.should == "PUT"
|
144
148
|
end
|
145
149
|
|
150
|
+
it "should raise when no file is provided to :put" do
|
151
|
+
lambda { @session.put_file("/test", nil) }.should raise_error(ArgumentError)
|
152
|
+
end
|
153
|
+
|
146
154
|
it "should use chunked encoding when uploading a file with :put" do
|
147
155
|
response = @session.put_file("/test", "VERSION.yml")
|
148
156
|
body = YAML::load(response.body)
|
@@ -157,12 +165,20 @@ describe Patron::Session do
|
|
157
165
|
body.header['content-length'].should == [data.size.to_s]
|
158
166
|
end
|
159
167
|
|
168
|
+
it "should raise when no data is provided to :post" do
|
169
|
+
lambda { @session.post("/test", nil) }.should raise_error(ArgumentError)
|
170
|
+
end
|
171
|
+
|
160
172
|
it "should upload a file with :post" do
|
161
173
|
response = @session.post_file("/test", "VERSION.yml")
|
162
174
|
body = YAML::load(response.body)
|
163
175
|
body.request_method.should == "POST"
|
164
176
|
end
|
165
177
|
|
178
|
+
it "should raise when no file is provided to :post" do
|
179
|
+
lambda { @session.post_file("/test", nil) }.should raise_error(ArgumentError)
|
180
|
+
end
|
181
|
+
|
166
182
|
it "should use chunked encoding when uploading a file with :post" do
|
167
183
|
response = @session.post_file("/test", "VERSION.yml")
|
168
184
|
body = YAML::load(response.body)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: patron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phillip Toland
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-04 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|