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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7a563960b35577eb712fdf298a8973b8030e01f
4
- data.tar.gz: 3dedc8250dd7b90ee49a3047716895a4ec439efb
3
+ metadata.gz: 9395e3bb51404b12d1d3504e928ae722793de10c
4
+ data.tar.gz: a365c1134ff32ec56eb14f0fd26ac9b971269e1e
5
5
  SHA512:
6
- metadata.gz: 530f311be78977ad7b5b5bb7574201b128f994996e9f4d0587938603a5c75ca6b9fdf6406d4005a09d48a0f3ee9bd2edfffa5704cecc0f4ad8952b316ff8dd07
7
- data.tar.gz: 596e07bd67d4c1e9e83499e85abc7646a70f197f82dc2c6e6f069d3c160419add18e8212a7ac7eb60178af51cd055cd750975a6a3d477a68adecdc5786292609
6
+ metadata.gz: e2a020f5b5e3d7796cf37194e7e77942ffe4f39e6d2ec2319d5c25e1d18ee62780240397df4e71407a5bfd45d04835fce02cfefb3731a19bcad10bcf5965196e
7
+ data.tar.gz: 9c5dda03458471e2fa64b1853c2b0ddd08820802268dc4c4681de322b008912f2e79a100525135f2b2282939ef157bc4618ac21b178589d8987316747640e460
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- httplog (1.2.1)
4
+ httplog (1.2.2)
5
5
  rack (>= 1.0)
6
6
  rainbow (>= 2.0.0)
7
7
 
@@ -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 = options.merge(method: action_name) # remember this for compact logging
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 _httplog_url(datum)
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?(_httplog_url(@data))
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 = _httplog_url(@data)
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
- if HttpLog.url_approved?(req.uri)
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,
@@ -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 => e
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{ |k, v| v.to_s.downcase == response_code_name.to_s.downcase }.first
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HttpLog
4
- VERSION = '1.2.1'.freeze
4
+ VERSION = '1.2.2'.freeze
5
5
  end
@@ -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 |method|
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 |data|
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.1
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-01-28 00:00:00.000000000 Z
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: rainbow
196
+ name: rack
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
- version: 2.0.0
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: 2.0.0
208
+ version: '1.0'
209
209
  - !ruby/object:Gem::Dependency
210
- name: rack
210
+ name: rainbow
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - ">="
214
214
  - !ruby/object:Gem::Version
215
- version: '1.0'
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: '1.0'
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.