httplog 1.2.1 → 1.2.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/Gemfile.lock +1 -1
- data/httplog.gemspec +1 -2
- data/lib/httplog/adapters/ethon.rb +2 -3
- data/lib/httplog/adapters/excon.rb +3 -3
- data/lib/httplog/adapters/http.rb +4 -5
- data/lib/httplog/http_log.rb +3 -3
- data/lib/httplog/version.rb +1 -1
- data/spec/support/shared_examples.rb +2 -2
- metadata +8 -8
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9395e3bb51404b12d1d3504e928ae722793de10c
         | 
| 4 | 
            +
              data.tar.gz: a365c1134ff32ec56eb14f0fd26ac9b971269e1e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e2a020f5b5e3d7796cf37194e7e77942ffe4f39e6d2ec2319d5c25e1d18ee62780240397df4e71407a5bfd45d04835fce02cfefb3731a19bcad10bcf5965196e
         | 
| 7 | 
            +
              data.tar.gz: 9c5dda03458471e2fa64b1853c2b0ddd08820802268dc4c4681de322b008912f2e79a100525135f2b2282939ef157bc4618ac21b178589d8987316747640e460
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/httplog.gemspec
    CHANGED
    
    | @@ -37,7 +37,6 @@ Gem::Specification.new do |gem| | |
| 37 37 | 
             
              gem.add_development_dependency 'simplecov', ['~> 0.15']
         | 
| 38 38 | 
             
              gem.add_development_dependency 'thin', ['~> 1.7']
         | 
| 39 39 |  | 
| 40 | 
            -
              # gem.add_dependency 'colorize', ['~> 0.8']
         | 
| 41 | 
            -
              gem.add_dependency 'rainbow', ['>= 2.0.0']
         | 
| 42 40 | 
             
              gem.add_dependency 'rack', ['>= 1.0']
         | 
| 41 | 
            +
              gem.add_dependency 'rainbow', ['>= 2.0.0']
         | 
| 43 42 | 
             
            end
         | 
| @@ -8,7 +8,7 @@ if defined?(Ethon) | |
| 8 8 | 
             
                  module Http
         | 
| 9 9 | 
             
                    alias orig_http_request http_request
         | 
| 10 10 | 
             
                    def http_request(url, action_name, options = {})
         | 
| 11 | 
            -
                      @http_log | 
| 11 | 
            +
                      @http_log = options.merge(method: action_name) # remember this for compact logging
         | 
| 12 12 | 
             
                      orig_http_request(url, action_name, options)
         | 
| 13 13 | 
             
                    end
         | 
| 14 14 | 
             
                  end
         | 
| @@ -22,7 +22,6 @@ if defined?(Ethon) | |
| 22 22 |  | 
| 23 23 | 
             
                      # Not sure where the actual status code is stored - so let's
         | 
| 24 24 | 
             
                      # extract it from the response header.
         | 
| 25 | 
            -
                      status   = response_headers.scan(%r{HTTP/... (\d{3})}).flatten.first
         | 
| 26 25 | 
             
                      encoding = response_headers.scan(/Content-Encoding: (\S+)/).flatten.first
         | 
| 27 26 | 
             
                      content_type = response_headers.scan(/Content-Type: (\S+(; charset=\S+)?)/).flatten.first
         | 
| 28 27 |  | 
| @@ -37,7 +36,7 @@ if defined?(Ethon) | |
| 37 36 | 
             
                        request_headers: @http_log[:headers],
         | 
| 38 37 | 
             
                        response_code: @return_code,
         | 
| 39 38 | 
             
                        response_body: response_body,
         | 
| 40 | 
            -
                        response_headers: headers.map{ |header| header.split(/:\s/) }.to_h,
         | 
| 39 | 
            +
                        response_headers: headers.map { |header| header.split(/:\s/) }.to_h,
         | 
| 41 40 | 
             
                        benchmark: bm,
         | 
| 42 41 | 
             
                        encoding: encoding,
         | 
| 43 42 | 
             
                        content_type: content_type
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            if defined?(Excon)
         | 
| 4 4 | 
             
              module Excon
         | 
| 5 5 | 
             
                module HttpLogHelper
         | 
| 6 | 
            -
                  def  | 
| 6 | 
            +
                  def httplog_url(datum)
         | 
| 7 7 | 
             
                    @httplog_url ||= "#{datum[:scheme]}://#{datum[:host]}:#{datum[:port]}#{datum[:path]}#{datum[:query]}"
         | 
| 8 8 | 
             
                  end
         | 
| 9 9 | 
             
                end
         | 
| @@ -14,7 +14,7 @@ if defined?(Excon) | |
| 14 14 | 
             
                  def connect
         | 
| 15 15 | 
             
                    host = @data[:proxy] ? @data[:proxy][:host] : @data[:host]
         | 
| 16 16 | 
             
                    port = @data[:proxy] ? @data[:proxy][:port] : @data[:port]
         | 
| 17 | 
            -
                    HttpLog.log_connection(host, port) if ::HttpLog.url_approved?( | 
| 17 | 
            +
                    HttpLog.log_connection(host, port) if ::HttpLog.url_approved?(httplog_url(@data))
         | 
| 18 18 | 
             
                    orig_connect
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 | 
             
                end
         | 
| @@ -30,7 +30,7 @@ if defined?(Excon) | |
| 30 30 | 
             
                      result = orig_request(params, &block)
         | 
| 31 31 | 
             
                    end
         | 
| 32 32 |  | 
| 33 | 
            -
                    url =  | 
| 33 | 
            +
                    url = httplog_url(@data)
         | 
| 34 34 | 
             
                    return result unless HttpLog.url_approved?(url)
         | 
| 35 35 |  | 
| 36 36 | 
             
                    headers = result[:headers] || {}
         | 
| @@ -8,18 +8,17 @@ if defined?(::HTTP::Client) && defined?(::HTTP::Connection) | |
| 8 8 | 
             
                  alias_method(orig_request_method, request_method) unless method_defined?(orig_request_method)
         | 
| 9 9 |  | 
| 10 10 | 
             
                  define_method request_method do |req, options|
         | 
| 11 | 
            -
                     | 
| 11 | 
            +
                    bm = Benchmark.realtime do
         | 
| 12 | 
            +
                      @response = send(orig_request_method, req, options)
         | 
| 13 | 
            +
                    end
         | 
| 12 14 |  | 
| 15 | 
            +
                    if HttpLog.url_approved?(req.uri)
         | 
| 13 16 | 
             
                      body = if defined?(::HTTP::Request::Body)
         | 
| 14 17 | 
             
                               req.body.respond_to?(:source) ? req.body.source : req.body.instance_variable_get(:@body)
         | 
| 15 18 | 
             
                             else
         | 
| 16 19 | 
             
                               req.body
         | 
| 17 20 | 
             
                             end
         | 
| 18 21 |  | 
| 19 | 
            -
                      bm = Benchmark.realtime do
         | 
| 20 | 
            -
                        @response = send(orig_request_method, req, options)
         | 
| 21 | 
            -
                      end
         | 
| 22 | 
            -
             | 
| 23 22 | 
             
                      HttpLog.call(
         | 
| 24 23 | 
             
                        method: req.verb,
         | 
| 25 24 | 
             
                        url: req.uri,
         | 
    
        data/lib/httplog/http_log.rb
    CHANGED
    
    | @@ -119,7 +119,7 @@ module HttpLog | |
| 119 119 | 
             
                      sio = StringIO.new(body.to_s)
         | 
| 120 120 | 
             
                      gz = Zlib::GzipReader.new(sio)
         | 
| 121 121 | 
             
                      body = gz.read
         | 
| 122 | 
            -
                    rescue Zlib::GzipFile::Error | 
| 122 | 
            +
                    rescue Zlib::GzipFile::Error
         | 
| 123 123 | 
             
                      log("(gzip decompression failed)")
         | 
| 124 124 | 
             
                    end
         | 
| 125 125 | 
             
                  end
         | 
| @@ -178,7 +178,7 @@ module HttpLog | |
| 178 178 | 
             
                end
         | 
| 179 179 |  | 
| 180 180 | 
             
                def transform_response_code(response_code_name)
         | 
| 181 | 
            -
                  Rack::Utils::HTTP_STATUS_CODES.detect{ | | 
| 181 | 
            +
                  Rack::Utils::HTTP_STATUS_CODES.detect { |_k, v| v.to_s.casecmp(response_code_name.to_s).zero? }.first
         | 
| 182 182 | 
             
                end
         | 
| 183 183 |  | 
| 184 184 | 
             
                def colorize(msg)
         | 
| @@ -190,7 +190,7 @@ module HttpLog | |
| 190 190 | 
             
                    msg = Rainbow(msg).color(config.color)
         | 
| 191 191 | 
             
                  end
         | 
| 192 192 | 
             
                  msg
         | 
| 193 | 
            -
                rescue
         | 
| 193 | 
            +
                rescue StandardError
         | 
| 194 194 | 
             
                  warn "HTTPLOG CONFIGURATION ERROR: #{config.color} is not a valid color"
         | 
| 195 195 | 
             
                  msg
         | 
| 196 196 | 
             
                end
         | 
    
        data/lib/httplog/version.rb
    CHANGED
    
    
| @@ -3,7 +3,7 @@ RSpec.shared_examples 'logs request' do |method| | |
| 3 3 | 
             
              it { is_expected.to include(HttpLog::LOG_PREFIX + "Sending: #{method} http://#{host}:#{port}#{path}") }
         | 
| 4 4 | 
             
            end
         | 
| 5 5 |  | 
| 6 | 
            -
            RSpec.shared_examples 'logs nothing' do | 
| 6 | 
            +
            RSpec.shared_examples 'logs nothing' do
         | 
| 7 7 | 
             
              subject { log }
         | 
| 8 8 | 
             
              it { is_expected.to eq('') }
         | 
| 9 9 | 
             
            end
         | 
| @@ -20,7 +20,7 @@ RSpec.shared_examples 'logs status' do |status| | |
| 20 20 | 
             
              it { is_expected.to include(["Status:", status].compact.join(' ')) }
         | 
| 21 21 | 
             
            end
         | 
| 22 22 |  | 
| 23 | 
            -
            RSpec.shared_examples 'logs benchmark' do | 
| 23 | 
            +
            RSpec.shared_examples 'logs benchmark' do
         | 
| 24 24 | 
             
              it { is_expected.to match(/Benchmark: \d+\.\d+ seconds/) }
         | 
| 25 25 | 
             
            end
         | 
| 26 26 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: httplog
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Thilo Rusche
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-03-15 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: ethon
         | 
| @@ -193,33 +193,33 @@ dependencies: | |
| 193 193 | 
             
                  - !ruby/object:Gem::Version
         | 
| 194 194 | 
             
                    version: '1.7'
         | 
| 195 195 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 196 | 
            -
              name:  | 
| 196 | 
            +
              name: rack
         | 
| 197 197 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 198 198 | 
             
                requirements:
         | 
| 199 199 | 
             
                - - ">="
         | 
| 200 200 | 
             
                  - !ruby/object:Gem::Version
         | 
| 201 | 
            -
                    version:  | 
| 201 | 
            +
                    version: '1.0'
         | 
| 202 202 | 
             
              type: :runtime
         | 
| 203 203 | 
             
              prerelease: false
         | 
| 204 204 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 205 205 | 
             
                requirements:
         | 
| 206 206 | 
             
                - - ">="
         | 
| 207 207 | 
             
                  - !ruby/object:Gem::Version
         | 
| 208 | 
            -
                    version:  | 
| 208 | 
            +
                    version: '1.0'
         | 
| 209 209 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 210 | 
            -
              name:  | 
| 210 | 
            +
              name: rainbow
         | 
| 211 211 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 212 212 | 
             
                requirements:
         | 
| 213 213 | 
             
                - - ">="
         | 
| 214 214 | 
             
                  - !ruby/object:Gem::Version
         | 
| 215 | 
            -
                    version:  | 
| 215 | 
            +
                    version: 2.0.0
         | 
| 216 216 | 
             
              type: :runtime
         | 
| 217 217 | 
             
              prerelease: false
         | 
| 218 218 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 219 219 | 
             
                requirements:
         | 
| 220 220 | 
             
                - - ">="
         | 
| 221 221 | 
             
                  - !ruby/object:Gem::Version
         | 
| 222 | 
            -
                    version:  | 
| 222 | 
            +
                    version: 2.0.0
         | 
| 223 223 | 
             
            description: |-
         | 
| 224 224 | 
             
              Log outgoing HTTP requests made from your application. Helpful for tracking API calls
         | 
| 225 225 | 
             
                                   of third party gems that don't provide their own log output.
         |