curb 0.9.3 → 0.9.11
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.
- checksums.yaml +5 -5
- data/README.markdown +45 -19
- data/Rakefile +26 -10
- data/ext/banned.h +32 -0
- data/ext/curb.c +36 -6
- data/ext/curb.h +12 -4
- data/ext/curb_easy.c +421 -61
- data/ext/curb_easy.h +4 -0
- data/ext/curb_errors.c +86 -0
- data/ext/curb_multi.c +131 -208
- data/ext/curb_multi.h +0 -1
- data/ext/extconf.rb +38 -6
- data/lib/curb.rb +1 -0
- data/lib/curl/easy.rb +10 -4
- data/lib/curl/multi.rb +52 -13
- data/lib/curl.rb +9 -9
- data/tests/bug_issue277.rb +32 -0
- data/tests/helper.rb +96 -12
- data/tests/tc_curl.rb +31 -1
- data/tests/tc_curl_download.rb +3 -3
- data/tests/tc_curl_easy.rb +155 -42
- data/tests/tc_curl_easy_resolve.rb +16 -0
- data/tests/tc_curl_maxfilesize.rb +12 -0
- data/tests/tc_curl_multi.rb +77 -15
- data/tests/tc_curl_postfield.rb +29 -29
- metadata +31 -25
data/tests/tc_curl_postfield.rb
CHANGED
@@ -2,63 +2,63 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
|
2
2
|
|
3
3
|
class TestCurbCurlPostfield < Test::Unit::TestCase
|
4
4
|
def test_private_new
|
5
|
-
assert_raise(NoMethodError) { Curl::PostField.new }
|
5
|
+
assert_raise(NoMethodError) { Curl::PostField.new }
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
def test_new_content_01
|
9
9
|
pf = Curl::PostField.content('foo', 'bar')
|
10
|
-
|
10
|
+
|
11
11
|
assert_equal 'foo', pf.name
|
12
12
|
assert_equal 'bar', pf.content
|
13
13
|
assert_nil pf.content_type
|
14
14
|
assert_nil pf.local_file
|
15
|
-
assert_nil pf.remote_file
|
15
|
+
assert_nil pf.remote_file
|
16
16
|
assert_nil pf.set_content_proc
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def test_new_content_02
|
20
20
|
pf = Curl::PostField.content('foo', 'bar', 'text/html')
|
21
|
-
|
21
|
+
|
22
22
|
assert_equal 'foo', pf.name
|
23
23
|
assert_equal 'bar', pf.content
|
24
24
|
assert_equal 'text/html', pf.content_type
|
25
25
|
assert_nil pf.local_file
|
26
26
|
assert_nil pf.remote_file
|
27
|
-
assert_nil pf.set_content_proc
|
28
|
-
end
|
29
|
-
|
27
|
+
assert_nil pf.set_content_proc
|
28
|
+
end
|
29
|
+
|
30
30
|
def test_new_content_03
|
31
31
|
l = lambda { |field| "never gets run" }
|
32
32
|
pf = Curl::PostField.content('foo', &l)
|
33
|
-
|
33
|
+
|
34
34
|
assert_equal 'foo', pf.name
|
35
35
|
assert_nil pf.content
|
36
36
|
assert_nil pf.content_type
|
37
37
|
assert_nil pf.local_file
|
38
38
|
assert_nil pf.remote_file
|
39
|
-
|
39
|
+
|
40
40
|
# N.B. This doesn't just get the proc, but also removes it.
|
41
41
|
assert_equal l, pf.set_content_proc
|
42
|
-
end
|
42
|
+
end
|
43
43
|
|
44
44
|
def test_new_content_04
|
45
45
|
l = lambda { |field| "never gets run" }
|
46
46
|
pf = Curl::PostField.content('foo', 'text/html', &l)
|
47
|
-
|
47
|
+
|
48
48
|
assert_equal 'foo', pf.name
|
49
49
|
assert_nil pf.content
|
50
50
|
assert_equal 'text/html', pf.content_type
|
51
51
|
assert_nil pf.local_file
|
52
52
|
assert_nil pf.remote_file
|
53
|
-
|
53
|
+
|
54
54
|
# N.B. This doesn't just get the proc, but also removes it.
|
55
55
|
assert_equal l, pf.set_content_proc
|
56
|
-
end
|
56
|
+
end
|
57
57
|
|
58
58
|
|
59
59
|
def test_new_file_01
|
60
60
|
pf = Curl::PostField.file('foo', 'localname')
|
61
|
-
|
61
|
+
|
62
62
|
assert_equal 'foo', pf.name
|
63
63
|
assert_equal 'localname', pf.local_file
|
64
64
|
assert_equal 'localname', pf.remote_file
|
@@ -67,44 +67,44 @@ class TestCurbCurlPostfield < Test::Unit::TestCase
|
|
67
67
|
assert_nil pf.content
|
68
68
|
assert_nil pf.set_content_proc
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
def test_new_file_02
|
72
72
|
pf = Curl::PostField.file('foo', 'localname', 'remotename')
|
73
|
-
|
73
|
+
|
74
74
|
assert_equal 'foo', pf.name
|
75
75
|
assert_equal 'localname', pf.local_file
|
76
76
|
assert_equal 'remotename', pf.remote_file
|
77
77
|
assert_nil pf.content_type
|
78
78
|
assert_nil pf.content
|
79
79
|
assert_nil pf.set_content_proc
|
80
|
-
end
|
81
|
-
|
80
|
+
end
|
81
|
+
|
82
82
|
def test_new_file_03
|
83
83
|
l = lambda { |field| "never gets run" }
|
84
84
|
pf = Curl::PostField.file('foo', 'remotename', &l)
|
85
|
-
|
85
|
+
|
86
86
|
assert_equal 'foo', pf.name
|
87
87
|
assert_equal 'remotename', pf.remote_file
|
88
88
|
assert_nil pf.local_file
|
89
89
|
assert_nil pf.content_type
|
90
90
|
assert_nil pf.content
|
91
|
-
|
91
|
+
|
92
92
|
# N.B. This doesn't just get the proc, but also removes it.
|
93
93
|
assert_equal l, pf.set_content_proc
|
94
|
-
end
|
94
|
+
end
|
95
95
|
|
96
96
|
def test_new_file_04
|
97
97
|
assert_raise(ArgumentError) do
|
98
98
|
# no local name, no block
|
99
99
|
Curl::PostField.file('foo')
|
100
100
|
end
|
101
|
-
|
101
|
+
|
102
102
|
assert_raise(ArgumentError) do
|
103
103
|
# no remote name with block
|
104
104
|
Curl::PostField.file('foo') { |field| "never runs" }
|
105
105
|
end
|
106
106
|
end
|
107
|
-
|
107
|
+
|
108
108
|
def test_new_file_05
|
109
109
|
# local gets ignored when supplying a block, but remote
|
110
110
|
# is still set up properly.
|
@@ -118,15 +118,15 @@ class TestCurbCurlPostfield < Test::Unit::TestCase
|
|
118
118
|
assert_nil pf.content
|
119
119
|
|
120
120
|
assert_equal l, pf.set_content_proc
|
121
|
-
end
|
122
|
-
|
121
|
+
end
|
122
|
+
|
123
123
|
def test_to_s_01
|
124
|
-
pf = Curl::PostField.content('foo', 'bar')
|
124
|
+
pf = Curl::PostField.content('foo', 'bar')
|
125
125
|
assert_equal "foo=bar", pf.to_s
|
126
126
|
end
|
127
127
|
|
128
128
|
def test_to_s_02
|
129
|
-
pf = Curl::PostField.content('foo', 'bar ton')
|
129
|
+
pf = Curl::PostField.content('foo', 'bar ton')
|
130
130
|
assert_equal "foo=bar%20ton", pf.to_s
|
131
131
|
end
|
132
132
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ross Bamford
|
8
8
|
- Todd A. Fisher
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Curb (probably CUrl-RuBy or something) provides Ruby-language bindings
|
15
15
|
for the libcurl(3), a fully-featured client-side URL transfer library. cURL and
|
@@ -26,6 +26,7 @@ files:
|
|
26
26
|
- README.markdown
|
27
27
|
- Rakefile
|
28
28
|
- doc.rb
|
29
|
+
- ext/banned.h
|
29
30
|
- ext/curb.c
|
30
31
|
- ext/curb.h
|
31
32
|
- ext/curb_easy.c
|
@@ -51,6 +52,7 @@ files:
|
|
51
52
|
- tests/bug_curb_easy_post_with_string_no_content_length_header.rb
|
52
53
|
- tests/bug_instance_post_differs_from_class_post.rb
|
53
54
|
- tests/bug_issue102.rb
|
55
|
+
- tests/bug_issue277.rb
|
54
56
|
- tests/bug_multi_segfault.rb
|
55
57
|
- tests/bug_postfields_crash.rb
|
56
58
|
- tests/bug_postfields_crash2.rb
|
@@ -63,17 +65,19 @@ files:
|
|
63
65
|
- tests/tc_curl.rb
|
64
66
|
- tests/tc_curl_download.rb
|
65
67
|
- tests/tc_curl_easy.rb
|
68
|
+
- tests/tc_curl_easy_resolve.rb
|
66
69
|
- tests/tc_curl_easy_setopt.rb
|
70
|
+
- tests/tc_curl_maxfilesize.rb
|
67
71
|
- tests/tc_curl_multi.rb
|
68
72
|
- tests/tc_curl_postfield.rb
|
69
73
|
- tests/timeout.rb
|
70
74
|
- tests/timeout_server.rb
|
71
75
|
- tests/unittests.rb
|
72
|
-
homepage:
|
76
|
+
homepage: https://github.com/taf2/curb
|
73
77
|
licenses:
|
74
78
|
- MIT
|
75
79
|
metadata: {}
|
76
|
-
post_install_message:
|
80
|
+
post_install_message:
|
77
81
|
rdoc_options:
|
78
82
|
- "--main"
|
79
83
|
- README.markdown
|
@@ -91,34 +95,36 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
95
|
- !ruby/object:Gem::Version
|
92
96
|
version: '0'
|
93
97
|
requirements: []
|
94
|
-
|
95
|
-
|
96
|
-
signing_key:
|
98
|
+
rubygems_version: 3.0.8
|
99
|
+
signing_key:
|
97
100
|
specification_version: 4
|
98
101
|
summary: Ruby libcurl bindings
|
99
102
|
test_files:
|
103
|
+
- tests/tc_curl_multi.rb
|
100
104
|
- tests/alltests.rb
|
101
|
-
- tests/
|
102
|
-
- tests/
|
103
|
-
- tests/bug_curb_easy_blocks_ruby_threads.rb
|
104
|
-
- tests/bug_curb_easy_post_with_string_no_content_length_header.rb
|
105
|
-
- tests/bug_instance_post_differs_from_class_post.rb
|
106
|
-
- tests/bug_issue102.rb
|
107
|
-
- tests/bug_multi_segfault.rb
|
105
|
+
- tests/tc_curl_easy_setopt.rb
|
106
|
+
- tests/tc_curl.rb
|
108
107
|
- tests/bug_postfields_crash.rb
|
108
|
+
- tests/bug_crash_on_progress.rb
|
109
|
+
- tests/helper.rb
|
110
|
+
- tests/bug_issue277.rb
|
109
111
|
- tests/bug_postfields_crash2.rb
|
110
112
|
- tests/bug_require_last_or_segfault.rb
|
111
|
-
- tests/
|
112
|
-
- tests/
|
113
|
-
- tests/
|
113
|
+
- tests/timeout.rb
|
114
|
+
- tests/bug_crash_on_debug.rb
|
115
|
+
- tests/unittests.rb
|
116
|
+
- tests/bug_issue102.rb
|
117
|
+
- tests/bug_curb_easy_blocks_ruby_threads.rb
|
118
|
+
- tests/bug_multi_segfault.rb
|
119
|
+
- tests/bug_instance_post_differs_from_class_post.rb
|
114
120
|
- tests/require_last_or_segfault_script.rb
|
115
|
-
- tests/
|
116
|
-
- tests/tc_curl.rb
|
121
|
+
- tests/timeout_server.rb
|
117
122
|
- tests/tc_curl_download.rb
|
118
123
|
- tests/tc_curl_easy.rb
|
119
|
-
- tests/
|
120
|
-
- tests/tc_curl_multi.rb
|
124
|
+
- tests/mem_check.rb
|
121
125
|
- tests/tc_curl_postfield.rb
|
122
|
-
- tests/
|
123
|
-
- tests/
|
124
|
-
- tests/
|
126
|
+
- tests/tc_curl_maxfilesize.rb
|
127
|
+
- tests/bugtests.rb
|
128
|
+
- tests/tc_curl_easy_resolve.rb
|
129
|
+
- tests/signals.rb
|
130
|
+
- tests/bug_curb_easy_post_with_string_no_content_length_header.rb
|