curl-spawn 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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