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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7676051058f1b4763f5a22e603b71561f1ccb6b3
4
- data.tar.gz: 8f1a5765a4d41861aaa1660801e1e0c55c19f1af
3
+ metadata.gz: b7121cb56a7c138875506f87858ad808ab22005f
4
+ data.tar.gz: 980bc5a685ad3ec9a07631c1154b22b79a2e6349
5
5
  SHA512:
6
- metadata.gz: a50aed177c4f47f3a0fb3e93ed3c170f5a9d29c9f5f89747a995cb742bfe4aae4dc904a49af982651a367b65d9e93ddd0a4dd76e27c72c43d49b0f9ad4c60eeb
7
- data.tar.gz: 0fa807255c489c528d8d479fdbf4288aa7648d36ef6ba31bc82fb63577c5dffa6d1f2c431b7304a7ed2be65ec05371a748f4a82b77bd81628f96cc8e2befce68
6
+ metadata.gz: c7e764cc43584cb15998584773c004ef2177289887e7b6d0ae871845eaeffb45f72d2f2a908636d99123f849d8e2aa867a732b7f28ff2e58a4f941bc193e6122
7
+ data.tar.gz: 9a93410f827113d423fcfd52b27d75365450cd26d68d772202b78a3b8b2a627dbef9eb429954a00373e761688d9fcb3d694c24e2023e534816d8cd68557fc3ec
@@ -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
- def self.spawn(*supplied_argv, &block)
15
- built_args = Curl::Spawn.build_args(&block)
14
+ def self.merge_args(supplied_argv, built_args)
15
+ normalized_argv = []
16
16
 
17
- normalized_argv = []
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
- supplied_opt = supplied_argv.last.kind_of?(Hash) ? supplied_argv.pop : {}
20
+ # Merge the argv contents
21
+ built_args.argv.each do |arg|
22
+ normalized_argv.push(arg.to_s)
23
+ end
20
24
 
21
- # Merge the argv contents
22
- built_args.argv.each do |arg|
23
- normalized_argv.push(arg.to_s)
24
- end
25
+ supplied_argv.each do |arg|
26
+ normalized_argv.push(arg.to_s)
27
+ end
25
28
 
26
- supplied_argv.each do |arg|
27
- normalized_argv.push(arg.to_s)
28
- end
29
+ # Merge the spawn options hash argument
30
+ normalized_argv.push(supplied_opt.merge(built_args.opt))
29
31
 
30
- # Merge the spawn options hash argument
31
- normalized_argv.push(supplied_opt.merge(built_args.opt))
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.url_encode(str)
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
@@ -1,5 +1,5 @@
1
1
  module Curl
2
2
  module Spawn
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
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.0
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-24 00:00:00.000000000 Z
11
+ date: 2016-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler