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
         
     |