nethttputils 0.4.1.1 → 0.4.1.2
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/nethttputils.rb +23 -13
- data/nethttputils.gemspec +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: 3a982e237dae69aa1f18645e6e63d231bb22d5e3
         | 
| 4 | 
            +
              data.tar.gz: 71f6c6e79050d656e9bb8c290caa11e013acf386
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e14f163d07b052595d502d07a3d104bcee3c6fbefc6169495f778e589dc80562817912f7fec3183741fa56379a7c6d6bd9fbd0ab3b8b05cb1bae9b2b671eacc5
         | 
| 7 | 
            +
              data.tar.gz: 6d8df37fb3fedc5ca757fe8345338421a55ff15283ad5f2456a4a1559de9bc6fe98551aabc56549fc27006a014e1d1702295f1bc19f8984d5eed1b7d82324579
         | 
    
        data/lib/nethttputils.rb
    CHANGED
    
    | @@ -33,7 +33,8 @@ module NetHTTPUtils | |
| 33 33 | 
             
                      gsub(/<[^>]*>/, "").split(?\n).map(&:strip).reject(&:empty?).join(?\n)
         | 
| 34 34 | 
             
                end
         | 
| 35 35 |  | 
| 36 | 
            -
                def start_http url, max_start_http_retry_delay = 3600, timeout =  | 
| 36 | 
            +
                def start_http url, max_start_http_retry_delay = 3600, timeout = nil, no_redirect = false, proxy = nil
         | 
| 37 | 
            +
                  timeout ||= 30
         | 
| 37 38 | 
             
                  uri = url
         | 
| 38 39 | 
             
                  uri = URI.parse begin
         | 
| 39 40 | 
             
                    URI url
         | 
| @@ -100,7 +101,8 @@ module NetHTTPUtils | |
| 100 101 | 
             
                end
         | 
| 101 102 |  | 
| 102 103 | 
             
                private
         | 
| 103 | 
            -
                def read http, mtd = :GET, type = :form, form: {}, header: {}, auth: nil, timeout:  | 
| 104 | 
            +
                def read http, mtd = :GET, type = :form, form: {}, header: {}, auth: nil, timeout: nil, no_redirect: false, max_read_retry_delay: 3600, patch_request: nil, &block
         | 
| 105 | 
            +
                  timeout ||= 30
         | 
| 104 106 | 
             
                      logger = NetHTTPUtils.logger
         | 
| 105 107 |  | 
| 106 108 | 
             
                      uri = http.instance_variable_get :@uri
         | 
| @@ -126,15 +128,20 @@ module NetHTTPUtils | |
| 126 128 | 
             
                          request.basic_auth *auth if auth
         | 
| 127 129 | 
             
                          if (mtd == :POST || mtd == :PATCH) && !form.empty?
         | 
| 128 130 | 
             
                            case type
         | 
| 129 | 
            -
                              when :json | 
| 130 | 
            -
             | 
| 131 | 
            -
             | 
| 131 | 
            +
                              when :json
         | 
| 132 | 
            +
                                                request.body = JSON.dump form
         | 
| 133 | 
            +
                                                request.content_type = "application/json"
         | 
| 134 | 
            +
                              when :multipart
         | 
| 135 | 
            +
                                request.set_form form, "multipart/form-data"
         | 
| 136 | 
            +
                              when :form
         | 
| 137 | 
            +
                                           if form.any?{ |k, v| v.respond_to? :to_path }
         | 
| 132 138 | 
             
                                             request.set_form form, "multipart/form-data"
         | 
| 133 139 | 
             
                                           else
         | 
| 134 140 | 
             
                                             request.set_form_data form
         | 
| 135 141 | 
             
                                             request.content_type = "application/x-www-form-urlencoded;charset=UTF-8"
         | 
| 136 142 | 
             
                                           end
         | 
| 137 | 
            -
                              else | 
| 143 | 
            +
                              else
         | 
| 144 | 
            +
                                raise "unknown content-type '#{type}'"
         | 
| 138 145 | 
             
                            end
         | 
| 139 146 | 
             
                          end
         | 
| 140 147 | 
             
                          header.each{ |k, v| request[k.to_s] = v.is_a?(Array) ? v.first : v }
         | 
| @@ -177,7 +184,7 @@ module NetHTTPUtils | |
| 177 184 | 
             
                        rescue EOFError => e
         | 
| 178 185 | 
             
                          raise unless e.backtrace.empty?
         | 
| 179 186 | 
             
                          # https://bugs.ruby-lang.org/issues/13018
         | 
| 180 | 
            -
                          # https://blog.kalina.tech/2019/04/exception-without-backtrace-in-ruby.html | 
| 187 | 
            +
                          # https://blog.kalina.tech/2019/04/exception-without-backtrace-in-ruby.html
         | 
| 181 188 | 
             
                          raise EOFError_from_rbuf_fill.new "probably the old Ruby empty backtrace EOFError exception from net/protocol.rb"
         | 
| 182 189 | 
             
                        end
         | 
| 183 190 | 
             
                        # response.instance_variable_set "@nethttputils_close", http.method(:finish)
         | 
| @@ -227,7 +234,10 @@ module NetHTTPUtils | |
| 227 234 | 
             
                        end
         | 
| 228 235 |  | 
| 229 236 | 
             
                        case response.code
         | 
| 237 | 
            +
                        when /\A20/
         | 
| 238 | 
            +
                          response
         | 
| 230 239 | 
             
                        when /\A30\d\z/
         | 
| 240 | 
            +
                          next response if no_redirect
         | 
| 231 241 | 
             
                          logger.info "redirect: #{response["location"]}"
         | 
| 232 242 | 
             
                          require "addressable"
         | 
| 233 243 | 
             
                          new_uri = URI.join request.uri.to_s, Addressable::URI.escape(response["location"])
         | 
| @@ -238,7 +248,7 @@ module NetHTTPUtils | |
| 238 248 | 
             
                             http.use_ssl? != (new_uri.scheme == "https")
         | 
| 239 249 | 
             
                            logger.debug "changing host from '#{http.address}' to '#{new_host}'"
         | 
| 240 250 | 
             
                            # http.finish   # why commented out?
         | 
| 241 | 
            -
                            http = NetHTTPUtils.start_http new_uri, http.instance_variable_get(:@max_start_http_retry_delay), timeout
         | 
| 251 | 
            +
                            http = NetHTTPUtils.start_http new_uri, http.instance_variable_get(:@max_start_http_retry_delay), timeout, no_redirect
         | 
| 242 252 | 
             
                          end
         | 
| 243 253 | 
             
                          if request.method == "POST"
         | 
| 244 254 | 
             
                            logger.info "POST redirects to GET (RFC)"
         | 
| @@ -274,8 +284,6 @@ module NetHTTPUtils | |
| 274 284 | 
             
                            end
         | 
| 275 285 | 
             
                          }"
         | 
| 276 286 | 
             
                          response
         | 
| 277 | 
            -
                        when /\A20/
         | 
| 278 | 
            -
                          response
         | 
| 279 287 | 
             
                        else
         | 
| 280 288 | 
             
                          logger.warn "code #{response.code} at #{request.method} #{request.uri} from #{
         | 
| 281 289 | 
             
                            [__FILE__, caller.map{ |i| i[/(?<=:)\d+/] }].join ?:
         | 
| @@ -297,11 +305,12 @@ module NetHTTPUtils | |
| 297 305 | 
             
                require "set"
         | 
| 298 306 | 
             
                @@_405 ||= Set.new
         | 
| 299 307 | 
             
                def request_data http, mtd = :GET, type = :form, form: {}, header: {}, auth: nil, proxy: nil,
         | 
| 300 | 
            -
                    timeout:  | 
| 308 | 
            +
                    timeout: nil, no_redirect: no_redirect,
         | 
| 301 309 | 
             
                    max_start_http_retry_delay: 3600,
         | 
| 302 310 | 
             
                    max_read_retry_delay: 3600,
         | 
| 303 311 | 
             
                    patch_request: nil, &block
         | 
| 304 | 
            -
                   | 
| 312 | 
            +
                  timeout ||= 30
         | 
| 313 | 
            +
                  http = start_http http, max_start_http_retry_delay, timeout, no_redirect, *proxy unless http.is_a? Net::HTTP
         | 
| 305 314 | 
             
                  path = http.instance_variable_get(:@uri).path
         | 
| 306 315 |  | 
| 307 316 | 
             
                  check_code = lambda do |body|
         | 
| @@ -332,7 +341,8 @@ module NetHTTPUtils | |
| 332 341 | 
             
                      check_code.call body
         | 
| 333 342 | 
             
                    end
         | 
| 334 343 | 
             
                  end
         | 
| 335 | 
            -
                  body = read http, mtd, type, form: form, header: header, auth: auth, | 
| 344 | 
            +
                  body = read http, mtd, type, form: form, header: header, auth: auth,
         | 
| 345 | 
            +
                    timeout: timeout, no_redirect: no_redirect,
         | 
| 336 346 | 
             
                    max_read_retry_delay: max_read_retry_delay,
         | 
| 337 347 | 
             
                    patch_request: patch_request, &block
         | 
| 338 348 | 
             
                  check_code.call body
         | 
    
        data/nethttputils.gemspec
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Gem::Specification.new do |spec|
         | 
| 2 2 | 
             
              spec.name         = "nethttputils"
         | 
| 3 | 
            -
              spec.version      = "0.4.1. | 
| 3 | 
            +
              spec.version      = "0.4.1.2"
         | 
| 4 4 | 
             
              spec.summary      = "this tool is like a pet that I adopted young and now I depend on, sorry"
         | 
| 5 5 | 
             
              spec.description = <<-EOF
         | 
| 6 6 | 
             
                Back in 2015 I was a guy automating things at my job and two scripts had a common need --
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: nethttputils
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4.1. | 
| 4 | 
            +
              version: 0.4.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Victor Maslov aka Nakilon
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-06-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: addressable
         |