curl-spawn 0.1.0 → 0.1.1
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 +4 -4
- data/lib/curl/spawn.rb +45 -15
- data/lib/curl/spawn/args_builder.rb +26 -0
- data/lib/curl/spawn/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7121cb56a7c138875506f87858ad808ab22005f
|
4
|
+
data.tar.gz: 980bc5a685ad3ec9a07631c1154b22b79a2e6349
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7e764cc43584cb15998584773c004ef2177289887e7b6d0ae871845eaeffb45f72d2f2a908636d99123f849d8e2aa867a732b7f28ff2e58a4f941bc193e6122
|
7
|
+
data.tar.gz: 9a93410f827113d423fcfd52b27d75365450cd26d68d772202b78a3b8b2a627dbef9eb429954a00373e761688d9fcb3d694c24e2023e534816d8cd68557fc3ec
|
data/lib/curl/spawn.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "curl/spawn/version"
|
2
2
|
require "curl/spawn/args_builder"
|
3
3
|
require 'erb'
|
4
|
+
require 'uri'
|
4
5
|
|
5
6
|
module Curl
|
6
7
|
module Spawn
|
@@ -9,31 +10,60 @@ module Curl
|
|
9
10
|
builder.instance_eval(&block) if block
|
10
11
|
builder.build!
|
11
12
|
end
|
12
|
-
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
def self.merge_args(supplied_argv, built_args)
|
15
|
+
normalized_argv = []
|
16
16
|
|
17
|
-
|
17
|
+
supplied_opt = supplied_argv.last.kind_of?(Hash) ? supplied_argv.pop : {}
|
18
|
+
supplied_env = supplied_argv.first.kind_of?(Hash) ? supplied_argv.shift : {}
|
18
19
|
|
19
|
-
|
20
|
+
# Merge the argv contents
|
21
|
+
built_args.argv.each do |arg|
|
22
|
+
normalized_argv.push(arg.to_s)
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
+
supplied_argv.each do |arg|
|
26
|
+
normalized_argv.push(arg.to_s)
|
27
|
+
end
|
25
28
|
|
26
|
-
|
27
|
-
normalized_argv.push(
|
28
|
-
end
|
29
|
+
# Merge the spawn options hash argument
|
30
|
+
normalized_argv.push(supplied_opt.merge(built_args.opt))
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
+
# Merge the env options hash argument
|
33
|
+
normalized_argv.unshift(supplied_env.merge(built_args.env))
|
32
34
|
|
35
|
+
normalized_argv
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Synopsis: Curses.spawn([spawn_env_hash,] *positional_args [, spawn_options_hash])
|
40
|
+
# Note: If only one hash is supplied, it is assumed to be an options hash, not
|
41
|
+
# an environment hash (see Kernel.spawn).
|
42
|
+
def self.spawn(*supplied_argv, &block)
|
43
|
+
built_args = Curl::Spawn.build_args(&block)
|
44
|
+
normalized_argv = Curl::Spawn.merge_args(supplied_argv, built_args)
|
33
45
|
Kernel.spawn(*normalized_argv)
|
34
46
|
end
|
35
47
|
|
36
|
-
def self.
|
48
|
+
def self.encode_url(str)
|
37
49
|
ERB::Util.url_encode(str)
|
38
50
|
end
|
51
|
+
class << self
|
52
|
+
alias url_encode encode_url
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.encode_form(form)
|
56
|
+
URI.encode_www_form(form)
|
57
|
+
end
|
58
|
+
class << self
|
59
|
+
alias form_encode encode_form
|
60
|
+
alias encode_www_form encode_form
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.encode_form_component(str, enc=nil)
|
64
|
+
URL.encode_www_form_component(str, enc)
|
65
|
+
end
|
66
|
+
class << self
|
67
|
+
alias encode_www_form_component encode_form_component
|
68
|
+
end
|
39
69
|
end
|
@@ -17,6 +17,13 @@ module Spawn
|
|
17
17
|
@queries = {}
|
18
18
|
@headers = {}
|
19
19
|
@data = nil
|
20
|
+
|
21
|
+
@show_headers = false
|
22
|
+
@verbose = false
|
23
|
+
end
|
24
|
+
|
25
|
+
def url_encode(str)
|
26
|
+
Curl.url_encode(str)
|
20
27
|
end
|
21
28
|
|
22
29
|
def user(user)
|
@@ -87,6 +94,17 @@ module Spawn
|
|
87
94
|
alias content data
|
88
95
|
alias content= data
|
89
96
|
|
97
|
+
def dump_headers(v=true)
|
98
|
+
@show_headers = v
|
99
|
+
end
|
100
|
+
alias dump_headers= dump_headers
|
101
|
+
alias show_headers dump_headers
|
102
|
+
alias show_headers= dump_headers
|
103
|
+
|
104
|
+
def verbose
|
105
|
+
@verbose = true
|
106
|
+
end
|
107
|
+
|
90
108
|
def build!
|
91
109
|
args = ::Curl::Spawn::Args.new
|
92
110
|
|
@@ -121,6 +139,14 @@ module Spawn
|
|
121
139
|
args.opt[:in] = @data
|
122
140
|
end
|
123
141
|
|
142
|
+
if @show_headers
|
143
|
+
args.argv.push('-i')
|
144
|
+
end
|
145
|
+
|
146
|
+
if @verbose
|
147
|
+
args.argv.push('-v')
|
148
|
+
end
|
149
|
+
|
124
150
|
args.argv = args.argv.reject { |arg| arg.nil? || arg.empty? }.map { |arg| arg.to_s }
|
125
151
|
|
126
152
|
args
|
data/lib/curl/spawn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curl-spawn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jbreeden
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|