http_logger 0.5.1 → 0.6.0

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
- SHA1:
3
- metadata.gz: 6ee341e7cf002e7155641272ce0e6518d9e42092
4
- data.tar.gz: bf7be16847384cfbc8eb935708b70f9d388c19f5
2
+ SHA256:
3
+ metadata.gz: 2ee612be76637a3fa5e75db03b7fa33a7016d3b4f509c32295580e002df73bd2
4
+ data.tar.gz: f7ef81b6d4c9d61dfa37626794a6bb725c1e83b36b29d824bf70bd5215bfb4e8
5
5
  SHA512:
6
- metadata.gz: 5954d2a816a4014eaf113bc438c0be9e69ad95ad1afbe4b06f332aa87f6ce8c108e74b54c63013d0cd6942b070bef12394c0454f7214f3b436cda43b887d7ebc
7
- data.tar.gz: 74e882cb119517efb27ae14b554054b09f5e7071e31d1375808d4cf976f29ebb54bcd4d5132edf6da47714ce2ee5f87d042abce22a66be48a8b3fee99b012721
6
+ metadata.gz: 9d81717a77786fb2bffb89c9cce68bc1f9ef8c6d4f2960a945324db0c53831cd8c78643e3c21779f1250cf862e2dcaa5a3d6610eb5fb934c2a15ed296225c416
7
+ data.tar.gz: 90132a5f50f91d39542f255680e577bd755254815df1f5332d71c73db76eadc2862a30d9b43dfc04e6cb50ce7aea30dc5143997c41a3c3cff07616eea342b285
data/Gemfile CHANGED
@@ -1,10 +1,9 @@
1
1
  source "http://rubygems.org"
2
2
 
3
-
4
3
  group :development do
5
- gem "debugger", :platform => "ruby_19"
4
+ gem "byebug"
5
+ gem "webmock"
6
6
  gem "rspec"
7
7
  gem "bundler"
8
8
  gem "jeweler"
9
- gem "fakeweb"
10
9
  end
@@ -1,79 +1,86 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.3.6)
5
- atomic (1.1.16)
6
- builder (3.2.2)
7
- columnize (0.3.6)
8
- debugger (1.2.1)
9
- columnize (>= 0.3.1)
10
- debugger-linecache (~> 1.1.1)
11
- debugger-ruby_core_source (~> 1.1.4)
12
- debugger-linecache (1.1.2)
13
- debugger-ruby_core_source (>= 1.1.1)
14
- debugger-ruby_core_source (1.1.4)
4
+ addressable (2.4.0)
5
+ builder (3.2.4)
6
+ byebug (11.1.1)
7
+ crack (0.4.3)
8
+ safe_yaml (~> 1.0.0)
15
9
  descendants_tracker (0.0.4)
16
10
  thread_safe (~> 0.3, >= 0.3.1)
17
- diff-lcs (1.1.3)
18
- fakeweb (1.3.0)
19
- faraday (0.9.0)
11
+ diff-lcs (1.3)
12
+ faraday (0.9.2)
20
13
  multipart-post (>= 1.2, < 3)
21
- git (1.2.6)
22
- github_api (0.11.3)
23
- addressable (~> 2.3)
24
- descendants_tracker (~> 0.0.1)
14
+ git (1.5.0)
15
+ github_api (0.16.0)
16
+ addressable (~> 2.4.0)
17
+ descendants_tracker (~> 0.0.4)
25
18
  faraday (~> 0.8, < 0.10)
26
- hashie (>= 1.2)
27
- multi_json (>= 1.7.5, < 2.0)
28
- nokogiri (~> 1.6.0)
29
- oauth2
30
- hashie (2.0.5)
31
- highline (1.6.21)
32
- jeweler (2.0.1)
19
+ hashie (>= 3.4)
20
+ mime-types (>= 1.16, < 3.0)
21
+ oauth2 (~> 1.0)
22
+ hashdiff (1.0.0)
23
+ hashie (4.0.0)
24
+ highline (2.0.3)
25
+ jeweler (2.3.9)
33
26
  builder
34
- bundler (>= 1.0)
27
+ bundler
35
28
  git (>= 1.2.5)
36
- github_api
29
+ github_api (~> 0.16.0)
37
30
  highline (>= 1.6.15)
38
31
  nokogiri (>= 1.5.10)
32
+ psych
39
33
  rake
40
34
  rdoc
41
- json (1.8.1)
42
- jwt (0.1.11)
43
- multi_json (>= 1.5)
44
- mini_portile (0.5.3)
45
- multi_json (1.9.2)
46
- multi_xml (0.5.5)
47
- multipart-post (2.0.0)
48
- nokogiri (1.6.1)
49
- mini_portile (~> 0.5.0)
50
- oauth2 (0.9.3)
51
- faraday (>= 0.8, < 0.10)
52
- jwt (~> 0.1.8)
35
+ semver2
36
+ jwt (2.2.1)
37
+ mime-types (2.99.3)
38
+ mini_portile2 (2.4.0)
39
+ multi_json (1.14.1)
40
+ multi_xml (0.6.0)
41
+ multipart-post (2.1.1)
42
+ nokogiri (1.10.7)
43
+ mini_portile2 (~> 2.4.0)
44
+ oauth2 (1.4.2)
45
+ faraday (>= 0.8, < 2.0)
46
+ jwt (>= 1.0, < 3.0)
53
47
  multi_json (~> 1.3)
54
48
  multi_xml (~> 0.5)
55
- rack (~> 1.2)
56
- rack (1.5.2)
57
- rake (10.2.2)
58
- rdoc (4.1.1)
59
- json (~> 1.4)
60
- rspec (2.9.0)
61
- rspec-core (~> 2.9.0)
62
- rspec-expectations (~> 2.9.0)
63
- rspec-mocks (~> 2.9.0)
64
- rspec-core (2.9.0)
65
- rspec-expectations (2.9.1)
66
- diff-lcs (~> 1.1.3)
67
- rspec-mocks (2.9.0)
68
- thread_safe (0.3.1)
69
- atomic (>= 1.1.7, < 2)
49
+ rack (>= 1.2, < 3)
50
+ psych (3.1.0)
51
+ rack (2.1.1)
52
+ rake (13.0.1)
53
+ rdoc (6.2.1)
54
+ rspec (3.9.0)
55
+ rspec-core (~> 3.9.0)
56
+ rspec-expectations (~> 3.9.0)
57
+ rspec-mocks (~> 3.9.0)
58
+ rspec-core (3.9.1)
59
+ rspec-support (~> 3.9.1)
60
+ rspec-expectations (3.9.0)
61
+ diff-lcs (>= 1.2.0, < 2.0)
62
+ rspec-support (~> 3.9.0)
63
+ rspec-mocks (3.9.1)
64
+ diff-lcs (>= 1.2.0, < 2.0)
65
+ rspec-support (~> 3.9.0)
66
+ rspec-support (3.9.2)
67
+ safe_yaml (1.0.5)
68
+ semver2 (3.4.2)
69
+ thread_safe (0.3.6)
70
+ webmock (3.8.0)
71
+ addressable (>= 2.3.6)
72
+ crack (>= 0.3.2)
73
+ hashdiff (>= 0.4.0, < 2.0.0)
70
74
 
71
75
  PLATFORMS
72
76
  ruby
73
77
 
74
78
  DEPENDENCIES
75
79
  bundler
76
- debugger
77
- fakeweb
80
+ byebug
78
81
  jeweler
79
82
  rspec
83
+ webmock
84
+
85
+ BUNDLED WITH
86
+ 2.0.1
data/Readme.md CHANGED
@@ -27,6 +27,7 @@ HttpLogger.log_headers = false # Default: false
27
27
  HttpLogger.log_request_body = false # Default: true
28
28
  HttpLogger.log_response_body = false # Default: true
29
29
  HttpLogger.level = :info # Desired log level as a symbol. Default: :debug
30
+ HttpLogger.collapse_body_limit # Change default truncate limit. Default: 5000
30
31
  ```
31
32
 
32
33
  ## Alternative
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.6.0
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: http_logger 0.5.1 ruby lib
5
+ # stub: http_logger 0.6.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "http_logger"
9
- s.version = "0.5.1"
8
+ s.name = "http_logger".freeze
9
+ s.version = "0.6.0"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Bogdan Gusiev"]
14
- s.date = "2014-11-07"
15
- s.description = "This gem keep an eye on every Net::HTTP library usage and dump all request and response data to the log file"
16
- s.email = "agresso@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Bogdan Gusiev".freeze]
14
+ s.date = "2020-01-27"
15
+ s.description = "This gem keep an eye on every Net::HTTP library usage and dump all request and response data to the log file".freeze
16
+ s.email = "agresso@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt"
19
19
  ]
@@ -34,33 +34,33 @@ Gem::Specification.new do |s|
34
34
  "spec/http_logger_spec.rb",
35
35
  "spec/spec_helper.rb"
36
36
  ]
37
- s.homepage = "http://github.com/railsware/http_logger"
38
- s.licenses = ["MIT"]
39
- s.rubygems_version = "2.2.2"
40
- s.summary = "Log your http api calls just like SQL queries"
37
+ s.homepage = "http://github.com/railsware/http_logger".freeze
38
+ s.licenses = ["MIT".freeze]
39
+ s.rubygems_version = "2.7.8".freeze
40
+ s.summary = "Log your http api calls just like SQL queries".freeze
41
41
 
42
42
  if s.respond_to? :specification_version then
43
43
  s.specification_version = 4
44
44
 
45
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_development_dependency(%q<debugger>, [">= 0"])
47
- s.add_development_dependency(%q<rspec>, [">= 0"])
48
- s.add_development_dependency(%q<bundler>, [">= 0"])
49
- s.add_development_dependency(%q<jeweler>, [">= 0"])
50
- s.add_development_dependency(%q<fakeweb>, [">= 0"])
46
+ s.add_development_dependency(%q<byebug>.freeze, [">= 0"])
47
+ s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
48
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
49
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
50
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
51
51
  else
52
- s.add_dependency(%q<debugger>, [">= 0"])
53
- s.add_dependency(%q<rspec>, [">= 0"])
54
- s.add_dependency(%q<bundler>, [">= 0"])
55
- s.add_dependency(%q<jeweler>, [">= 0"])
56
- s.add_dependency(%q<fakeweb>, [">= 0"])
52
+ s.add_dependency(%q<byebug>.freeze, [">= 0"])
53
+ s.add_dependency(%q<webmock>.freeze, [">= 0"])
54
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
55
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
56
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
57
57
  end
58
58
  else
59
- s.add_dependency(%q<debugger>, [">= 0"])
60
- s.add_dependency(%q<rspec>, [">= 0"])
61
- s.add_dependency(%q<bundler>, [">= 0"])
62
- s.add_dependency(%q<jeweler>, [">= 0"])
63
- s.add_dependency(%q<fakeweb>, [">= 0"])
59
+ s.add_dependency(%q<byebug>.freeze, [">= 0"])
60
+ s.add_dependency(%q<webmock>.freeze, [">= 0"])
61
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
62
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
63
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
64
64
  end
65
65
  end
66
66
 
@@ -77,7 +77,7 @@ class HttpLogger
77
77
  end
78
78
 
79
79
  def request_url(http, request)
80
- URI.decode("http#{"s" if http.use_ssl?}://#{http.address}:#{http.port}#{request.path}")
80
+ URI::DEFAULT_PARSER.unescape("http#{"s" if http.use_ssl?}://#{http.address}:#{http.port}#{request.path}")
81
81
  end
82
82
 
83
83
  def log_request_headers(request)
@@ -87,7 +87,7 @@ class HttpLogger
87
87
  end
88
88
 
89
89
  HTTP_METHODS_WITH_BODY = Set.new(%w(POST PUT GET PATCH))
90
-
90
+
91
91
  def log_request_body(request)
92
92
  if self.class.log_request_body
93
93
  if HTTP_METHODS_WITH_BODY.include?(request.method)
@@ -103,13 +103,13 @@ class HttpLogger
103
103
  end
104
104
 
105
105
  def log_response_headers(response)
106
- if self.class.log_headers
106
+ if HttpLogger.log_headers
107
107
  response.each_capitalized { |k,v| log("HTTP response header", "#{k}: #{v}") }
108
108
  end
109
109
  end
110
110
 
111
111
  def log_response_body(body)
112
- if self.class.log_response_body
112
+ if HttpLogger.log_response_body
113
113
  if body.is_a?(Net::ReadAdapter)
114
114
  log("Response body", "<impossible to log>")
115
115
  else
@@ -126,23 +126,40 @@ class HttpLogger
126
126
 
127
127
  def ignored?(http, request)
128
128
  url = request_url(http, request)
129
- self.class.ignore.any? do |pattern|
129
+ HttpLogger.ignore.any? do |pattern|
130
130
  url =~ pattern
131
131
  end
132
132
  end
133
133
 
134
134
  def fakeweb?(http, request)
135
- return false unless defined?(::FakeWeb)
136
- uri = ::FakeWeb::Utility.request_uri_as_string(http, request)
135
+ return false unless defined?(::WebMock)
136
+ uri = request_uri_as_string(http, request)
137
137
  method = request.method.downcase.to_sym
138
- ::FakeWeb.registered_uri?(method, uri)
138
+ signature = WebMock::RequestSignature.new(method, uri)
139
+ ::WebMock.registered_request?(signature)
140
+ end
141
+
142
+ def request_uri_as_string(net_http, request)
143
+ protocol = net_http.use_ssl? ? "https" : "http"
144
+
145
+ path = request.path
146
+ path = URI.parse(request.path).request_uri if request.path =~ /^http/
147
+
148
+ if request["authorization"] =~ /^Basic /
149
+ userinfo = FakeWeb::Utility.decode_userinfo_from_header(request["authorization"])
150
+ userinfo = FakeWeb::Utility.encode_unsafe_chars_in_userinfo(userinfo) + "@"
151
+ else
152
+ userinfo = ""
153
+ end
154
+
155
+ "#{protocol}://#{userinfo}#{net_http.address}:#{net_http.port}#{path}"
139
156
  end
140
157
 
141
158
  def truncate_body(body)
142
159
  if collapse_body_limit && collapse_body_limit > 0 && body && body.size >= collapse_body_limit
143
160
  body_piece_size = collapse_body_limit / 2
144
- body[0..body_piece_size] +
145
- "\n\n<some data truncated>\n\n" +
161
+ body[0..body_piece_size] +
162
+ "\n\n<some data truncated>\n\n" +
146
163
  body[(body.size - body_piece_size)..body.size]
147
164
  else
148
165
  body
@@ -173,33 +190,18 @@ class HttpLogger
173
190
  end
174
191
  end
175
192
 
176
- class Net::HTTP
177
-
178
- def self.log_headers=(value)
179
- HttpLogger.deprecate_config("log_headers")
180
- HttpLogger.log_headers = value
181
- end
182
-
183
- def self.colorize=(value)
184
- HttpLogger.deprecate_config("colorize")
185
- HttpLogger.colorize = value
186
- end
187
-
188
- def self.logger=(value)
189
- HttpLogger.deprecate_config("logger")
190
- HttpLogger.logger = value
191
- end
192
-
193
-
194
- alias_method :request_without_logging, :request
195
-
193
+ module NetHttpLogger
196
194
  def request(request, body = nil, &block)
197
195
  HttpLogger.perform(self, request, body) do
198
- request_without_logging(request, body, &block)
196
+ super(request, body, &block)
199
197
  end
200
198
  end
199
+ end
201
200
 
201
+ if defined?(::WebMock)
202
+ WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_get("@webMockNetHTTP").prepend(NetHttpLogger)
202
203
  end
204
+ Net::HTTP.prepend(NetHttpLogger)
203
205
 
204
206
  if defined?(Rails)
205
207
 
@@ -7,8 +7,14 @@ describe HttpLogger do
7
7
  # flush log
8
8
  f = File.open(LOGFILE, "w")
9
9
  f.close
10
+ stub_request(:any, url).to_return(
11
+ body: response_body,
12
+ headers: {"X-Http-logger" => true},
13
+ )
10
14
  end
11
15
 
16
+ let(:response_body) { "Success" }
17
+
12
18
  let(:url) { "http://google.com/" }
13
19
  let(:uri) { URI.parse(url) }
14
20
  let(:request) do
@@ -33,7 +39,7 @@ describe HttpLogger do
33
39
  let(:url) { "http://google.com?query=a%20b"}
34
40
 
35
41
  it { subject.should include("query=a b")}
36
-
42
+
37
43
  end
38
44
 
39
45
  context "when headers logging is on" do
@@ -48,7 +54,7 @@ describe HttpLogger do
48
54
  after(:each) do
49
55
  HttpLogger.log_headers = false
50
56
  end
51
-
57
+
52
58
  end
53
59
 
54
60
  describe "post request" do
@@ -60,8 +66,8 @@ describe HttpLogger do
60
66
  it {should include("Request body")}
61
67
  it {should include("a=hello&b=1")}
62
68
  context "with too long body" do
69
+ let(:response_body) { long_body }
63
70
  let(:url) do
64
- FakeWeb.register_uri(:post, "http://github.com", :body => long_body)
65
71
  "http://github.com/"
66
72
  end
67
73
  it { should include("12,Dodo case,dodo@case.com,tech@dodcase.com,single elimination\n")}
@@ -82,7 +88,7 @@ describe HttpLogger do
82
88
  it {should include("Request body")}
83
89
  it {should include("a=hello&b=1")}
84
90
  end
85
-
91
+
86
92
  describe "generic request" do
87
93
  let(:request) do
88
94
  http = Net::HTTP.new(uri.host, uri.port)
@@ -114,8 +120,9 @@ describe HttpLogger do
114
120
 
115
121
  context "with long response body" do
116
122
 
123
+ let(:response_body) { long_body }
117
124
  let(:url) do
118
- FakeWeb.register_uri(:get, "http://github.com", :body => long_body)
125
+ stub_request(:get, "http://github.com/").to_return(body: long_body)
119
126
  "http://github.com"
120
127
  end
121
128
 
@@ -131,8 +138,8 @@ describe HttpLogger do
131
138
  HttpLogger.log_response_body = false
132
139
  end
133
140
 
141
+ let(:response_body) { long_body }
134
142
  let(:url) do
135
- FakeWeb.register_uri(:get, "http://github.com", :body => long_body)
136
143
  "http://github.com"
137
144
  end
138
145
 
@@ -145,14 +152,16 @@ describe HttpLogger do
145
152
 
146
153
  context "ignore option is set" do
147
154
 
148
- let(:url) { "http://rpm.newrelic.com/hello/world"}
155
+ let(:url) do
156
+ "http://rpm.newrelic.com/hello/world"
157
+ end
149
158
 
150
159
  before(:each) do
151
160
  HttpLogger.ignore = [/rpm\.newrelic\.com/]
152
161
  end
153
162
 
154
163
  it { should be_empty}
155
-
164
+
156
165
  after(:each) do
157
166
  HttpLogger.ignore = []
158
167
  end
@@ -160,14 +169,17 @@ describe HttpLogger do
160
169
 
161
170
  context "when level is set" do
162
171
 
163
- let(:url) { "http://rpm.newrelic.com/hello/world"}
172
+ let(:url) do
173
+ stub_request(:get, "http://rpm.newrelic.com/hello/world").to_return(body: "")
174
+ "http://rpm.newrelic.com/hello/world"
175
+ end
164
176
 
165
177
  before(:each) do
166
178
  HttpLogger.level = :info
167
179
  end
168
180
 
169
181
  it { should_not be_empty }
170
-
182
+
171
183
  after(:each) do
172
184
  HttpLogger.level = :debug
173
185
  end
@@ -1,7 +1,7 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
- require 'fakeweb'
4
+ require 'webmock/rspec'
5
5
  require 'http_logger'
6
6
  require "logger"
7
7
  require "fileutils"
@@ -11,10 +11,9 @@ require "fileutils"
11
11
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
12
 
13
13
  LOGFILE = 'http.log'
14
- RSpec.configure do |config|
15
-
16
14
 
15
+ RSpec.configure do |config|
16
+ config.expect_with(:rspec) { |c| c.syntax = :should }
17
17
  FileUtils.rm_f(LOGFILE)
18
18
  HttpLogger.logger = Logger.new(LOGFILE)
19
-
20
19
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2020-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: debugger
14
+ name: byebug
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: webmock
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: jeweler
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: fakeweb
70
+ name: jeweler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 2.2.2
126
+ rubygems_version: 2.7.8
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Log your http api calls just like SQL queries