Comparing changes

v1.1.1 v1.2.0
12 commits 23 files changed

Commits

4a3ef35 chore: fix build status link mo khan 2024-12-05 23:43:41
2d5bb78 chore: fix workflow badge image mo khan 2024-12-05 23:42:31
02562ff feat: disable logger by default mo khan 2024-12-05 23:35:25
b6d7b62 add instructions for enabling debug output Peter Schulze 2022-05-03 23:09:02
86931c4 default to not calling set_debug_output Peter Schulze 2022-05-03 23:08:42
6ef0500 chore: remove gitlab-ci.yml mo khan 2021-02-05 04:31:55
9e53cf8 Update rubocop requirement from ~> 0.55 to ~> 1.9 dependabot[bot] 2021-02-05 04:29:41
633564d add full name to license mo khan 2021-02-05 04:28:32
57a173e chore: update ci config mo khan 2021-02-05 04:23:28
.github/workflows/ci.yml
@@ -0,0 +1,31 @@
+name: ci
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        ruby-version: ['2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Ruby
+        uses: ruby/setup-ruby@v1
+        with:
+          ruby-version: ${{ matrix.ruby-version }}
+          bundler-cache: true
+      - name: Running tests…
+        run: sh bin/test
+  style:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: ruby/setup-ruby@v1
+        with:
+          ruby-version: '3.4'
+          bundler-cache: true
+      - name: Running style checks…
+        run: sh bin/style
.github/workflows/test.yml
@@ -1,17 +0,0 @@
-name: Test
-
-on: [push, pull_request]
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        ruby: [ '2.5', '2.6', '2.7' ]
-    steps:
-    - uses: actions/checkout@v1
-    - uses: actions/setup-ruby@v1
-      with:
-        ruby-version: ${{ matrix.ruby }}
-    - name: cibuild
-      run: bin/cibuild
.github/dependabot.yml
@@ -0,0 +1,9 @@
+---
+version: 2
+updates:
+  - package-ecosystem: "bundler"
+    directory: "/"
+    schedule:
+      interval: "daily"
+    assignees:
+      - "xlgmokha"
bin/cibuild
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-set -e
-[ -z "$DEBUG" ] || set -x
-
-cd "$(dirname "$0")/.."
-
-export RUBY_GC_MALLOC_LIMIT=79000000
-export RUBY_GC_HEAP_INIT_SLOTS=800000
-export RUBY_HEAP_FREE_MIN=100000
-export RUBY_HEAP_SLOTS_INCREMENT=400000
-export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
-export CIBUILD=1
-
-echo "[$(date "+%H:%M:%S")] ==> Running setup…"
-bin/setup
-
-echo "[$(date "+%H:%M:%S")] ==> Running tests…"
-bin/test
-
-echo "[$(date "+%H:%M:%S")] ==> Running linters…"
-bin/lint
bin/console
@@ -4,12 +4,5 @@
 require 'bundler/setup'
 require 'net/hippie'
 
-# You can add fixtures and/or initialization code here to make experimenting
-# with your gem easier. You can also use a different console, if you like.
-
-# (If you use this, don't forget to add pry to your Gemfile!)
-# require "pry"
-# Pry.start
-
 require 'irb'
 IRB.start(__FILE__)
bin/lint
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-set -e
-
-bundle exec rake lint
bin/setup
@@ -1,7 +1,7 @@
-#!/usr/bin/env bash
-set -euo pipefail
-IFS=$'\n\t'
+#!/bin/sh
+set -e
+[ -z "$DEBUG" ] || set -x
+
+cd "$(dirname "$0")/.."
 
-ruby -v
-gem install bundler -v '~> 2.0'
 bundle install
bin/shipit
@@ -1,10 +1,8 @@
 #!/bin/sh
 
 set -e
+[ -z "$DEBUG" ] || set -x
 
 cd "$(dirname "$0")/.."
 
-[ -z "$DEBUG" ] || set -x
-
-bin/cibuild
 bundle exec rake release
bin/style
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -e
+[ -z "$DEBUG" ] || set -x
+
+cd "$(dirname "$0")/.."
+
+bundle exec rake rubocop
bin/test
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 set -e
+[ -z "$DEBUG" ] || set -x
 
 cd "$(dirname "$0")/.."
 
lib/net/hippie/client.rb
@@ -84,7 +84,7 @@ module Net
         raise error if attempt == max
 
         delay = ((2**attempt) * 0.1) + Random.rand(0.05) # delay + jitter
-        logger.warn("`#{error.message}` #{attempt + 1}/#{max} Delay: #{delay}s")
+        logger&.warn("`#{error.message}` #{attempt + 1}/#{max} Delay: #{delay}s")
         sleep delay
       end
 
lib/net/hippie/connection.rb
@@ -10,7 +10,7 @@ module Net
         http.open_timeout = options.fetch(:open_timeout, 10)
         http.use_ssl = scheme == 'https'
         http.verify_mode = options.fetch(:verify_mode, Net::Hippie.verify_mode)
-        http.set_debug_output(options.fetch(:logger, Net::Hippie.logger))
+        http.set_debug_output(options[:logger]) if options[:logger]
         apply_client_tls_to(http, options)
         @http = http
       end
lib/net/hippie/version.rb
@@ -2,6 +2,6 @@
 
 module Net
   module Hippie
-    VERSION = '1.1.1'
+    VERSION = '1.2.0'
   end
 end
lib/net/hippie.rb
@@ -31,7 +31,7 @@ module Net
     ].freeze
 
     def self.logger
-      @logger ||= Logger.new($stderr)
+      @logger ||= Logger.new(nil)
     end
 
     def self.logger=(logger)
test/fixtures/get_root.yml
@@ -3,18 +3,11 @@ http_interactions:
 - request:
     method: get
     uri: https://www.mokhan.ca/
-    body:
-      encoding: US-ASCII
-      string: ''
     headers:
       Accept:
       - application/json
       Content-Type:
       - application/json
-      User-Agent:
-      - net/hippie 0.2.4
-      Accept-Encoding:
-      - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
   response:
     status:
       code: 200
@@ -30,22 +23,10 @@ http_interactions:
       - Wed, 05 Dec 2018 08:57:44 GMT
       Last-Modified:
       - Wed, 05 Dec 2018 05:45:13 GMT
-      Server:
-      - AmazonS3
-      Vary:
-      - Accept-Encoding
-      Age:
-      - '53062'
-      X-Cache:
-      - Hit from cloudfront
-      Via:
-      - 1.1 39174a6a452e175e6e614ff396a4ca4f.cloudfront.net (CloudFront)
-      X-Amz-Cf-Id:
-      - mGugayoZK2mUAfj9WuV5O9c9_uzocRazyLFGqNdDjKQpniAmpFU6gA==
     body:
       encoding: ASCII-8BIT
       string: !binary |-
         PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9J3V0Zi04Jz4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogICAgPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9Im5vLXJlZmVycmVyIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5tb2toYW4uY2EvIj4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjE4MHgxODAiIGhyZWY9Ii9hcHBsZS10b3VjaC1pY29uLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMzJ4MzIiIGhyZWY9Ii9mYXZpY29uLTMyeDMyLnBuZyI+CjxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9mYXZpY29uLTE2eDE2LnBuZyI+CjxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Ii9zaXRlLndlYm1hbmlmZXN0Ij4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3IiIGNvbnRlbnQ9IiNkYTUzMmMiPgo8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiI+CgogICAgPCEtLSBCZWdpbiBKZWt5bGwgU0VPIHRhZyB2Mi41LjAgLS0+Cjx0aXRsZT5tbyBraGFuIHwgTXkgdGhvdWdodHMgYmVsb25nIHRvIG1lPC90aXRsZT4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJKZWt5bGwgdjMuOC41IiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9Im1vIGtoYW4iIC8+CjxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0ibW8iIC8+CjxtZXRhIHByb3BlcnR5PSJvZzpsb2NhbGUiIGNvbnRlbnQ9ImVuIiAvPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iTXkgdGhvdWdodHMgYmVsb25nIHRvIG1lIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik15IHRob3VnaHRzIGJlbG9uZyB0byBtZSIgLz4KPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3Lm1va2hhbi5jYS8iIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3Lm1va2hhbi5jYS8iIC8+CjxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9Im1vIGtoYW4iIC8+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsiQHR5cGUiOiJXZWJTaXRlIiwiaGVhZGxpbmUiOiJtbyBraGFuIiwidXJsIjoiaHR0cHM6Ly93d3cubW9raGFuLmNhLyIsInB1Ymxpc2hlciI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsImxvZ28iOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsInVybCI6Imh0dHBzOi8vd3d3Lm1va2hhbi5jYS9pbWFnZXMvYXZhdGFyLmpwZyJ9LCJuYW1lIjoibW8ifSwibmFtZSI6Im1vIGtoYW4iLCJhdXRob3IiOnsiQHR5cGUiOiJQZXJzb24iLCJuYW1lIjoibW8ifSwiZGVzY3JpcHRpb24iOiJNeSB0aG91Z2h0cyBiZWxvbmcgdG8gbWUiLCJAY29udGV4dCI6Imh0dHA6Ly9zY2hlbWEub3JnIn08L3NjcmlwdD4KPCEtLSBFbmQgSmVreWxsIFNFTyB0YWcgLS0+CgogICAgPGxpbmsgdHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5tb2toYW4uY2EvYXRvbS54bWwiIHRpdGxlPSJtbyBraGFuIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBpbnRlZ3JpdHk9InNoYTI1Ni1oUVpaNmdpK3B5SXBZbzlsb1NiNDk1cFMwSzV6Y0JsUk54UHU4MGVDdUQ4PSIgY3Jvc3NvcmlnaW49ImFub255bW91cyIgaHJlZj0iL2Fzc2V0cy9zdHlsZS04NTA2NTllYTA4YmVhNzIyMjk2MjhmNjVhMTI2ZjhmNzlhNTJkMGFlNzM3MDE5NTEzNzEzZWVmMzQ3ODJiODNmLmNzcyI+CiAgICA8c2NyaXB0IHNyYz0iL2Fzc2V0cy9qcy9hcHBsaWNhdGlvbi5qcyIgYXN5bmM+PC9zY3JpcHQ+CiAgPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtMjQyOTE4LTEiPjwvc2NyaXB0Pgo8L2hlYWQ+CiAgPGJvZHk+CiAgICA8bWFpbj4KICAgICAgPGEgaHJlZj0iI21haW5fY29udGVudCIgY2xhc3M9InNraXAiPlNraXAgdG8gY29udGVudDwvYT4KICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8c2VjdGlvbiBpZD0ibWFpbl9jb250ZW50Ij4KICAgICAgICAgIDxoMSBpZD0iaGktbXktbmFtZS1pcy1tbyI+SGksIG15IG5hbWUgaXMgPGNvZGUgY2xhc3M9ImhpZ2hsaWdodGVyLXJvdWdlIj5NbzwvY29kZT48L2gxPgoKPHA+PHN0cm9uZz50bDtkcjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbW9raGFuLyI+R2l0SHViPC9hPiwgPGEgaHJlZj0iaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcvcHJvZmlsZXMvbW9raGEiPlJ1YnlHZW1zPC9hPiwgPGEgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL21va2hhbmNhbGdhcnkiPkxpbmtlZEluPC9hPjwvcD4KCjxociAvPgoKPHA+SSDimaUgPGEgaHJlZj0iaHR0cHM6Ly93d3cucnVieS1sYW5nLm9yZy8iPlJ1Ynk8L2E+LiBJdOKAmXMgYSB2ZXJ5IGZ1biBhbmQKZXhwcmVzc2l2ZSBwcm9ncmFtbWluZyBsYW5ndWFnZS48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ydWJ5IGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9ImMxIj4jIG1vby5yYjwvc3Bhbj4KPHNwYW4gY2xhc3M9Im5iIj5yZXF1aXJlPC9zcGFuPiA8c3BhbiBjbGFzcz0iczEiPididW5kbGVyL2lubGluZSc8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyDjgoIgcnVieSBtb28ucmI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYzEiPiMgICAtLS0tPC9zcGFuPgo8c3BhbiBjbGFzcz0ibiI+Z2VtZmlsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImsiPmRvPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAmbHQ7IG1vbyEgJmd0Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibiI+c291cmNlPC9zcGFuPiA8c3BhbiBjbGFzcz0iczEiPidodHRwczovL3J1YnlnZW1zLm9yZyc8L3NwYW4+ICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgLS0tLTwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibiI+Z2VtPC9zcGFuPiA8c3BhbiBjbGFzcz0iczEiPiduZXQtaGlwcGllJzwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgICAgICAgXCAgIF5fX148L3NwYW4+CjxzcGFuIGNsYXNzPSJrIj5lbmQ8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgICAgICAgICBcICAob28pXF9fX19fX188L3NwYW4+CjxzcGFuIGNsYXNzPSJuIj5jbGllbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0ibm8iPk5ldDwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ojo8L3NwYW4+PHNwYW4gY2xhc3M9Im5vIj5IaXBwaWU8L3NwYW4+PHNwYW4gY2xhc3M9Im8iPjo6PC9zcGFuPjxzcGFuIGNsYXNzPSJubyI+Q2xpZW50PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJuZiI+bmV3PC9zcGFuPiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgICAgICAgICAgIChfXylcICAgICAgIClcL1w8L3NwYW4+CjxzcGFuIGNsYXNzPSJuIj51cmw8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj49PC9zcGFuPiA8c3BhbiBjbGFzcz0iczIiPiJodHRwczovL3d3dy5tb2toYW4uY2EvIjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgICAgICAgICAgICAgICB8fC0tLS13IHw8L3NwYW4+CjxzcGFuIGNsYXNzPSJuIj5ib2R5PC9zcGFuPiA8c3BhbiBjbGFzcz0ibyI+PTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im4iPmNsaWVudDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ljwvc3Bhbj48c3BhbiBjbGFzcz0ibmYiPmdldDwvc3Bhbj48c3BhbiBjbGFzcz0icCI+KDwvc3Bhbj48c3BhbiBjbGFzcz0ibiI+dXJsPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4pLjwvc3Bhbj48c3BhbiBjbGFzcz0ibmYiPmJvZHk8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgICAgICAgICAgICAgICAgfHwgICAgIHx8PC9zcGFuPgo8c3BhbiBjbGFzcz0ibmIiPnB1dHM8L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj5ib2R5PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj5bPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4tPC9zcGFuPjxzcGFuIGNsYXNzPSJtaSI+MTUwPC9zcGFuPjxzcGFuIGNsYXNzPSJvIj4uLi08L3NwYW4+PHNwYW4gY2xhc3M9Im1pIj4xPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj5dPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAtLSZndDs8L3NwYW4+Cgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5JIHdyb3RlIDxhIGhyZWY9Imh0dHBzOi8vcnVieWdlbXMub3JnL2dlbXMvc2FtbC1raXQiPnNhbWwta2l0PC9hPiwKPGEgaHJlZj0iaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcvZ2Vtcy9uZXQtaGlwcGllIj5uZXQtaGlwcGllPC9hPiwKPGEgaHJlZj0iaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcvZ2Vtcy9pbmNvZ25pdG8iPmluY29nbml0bzwvYT4sCjxhIGhyZWY9Imh0dHBzOi8vcnVieWdlbXMub3JnL2dlbXMveHNheSI+eHNheTwvYT4sCjxhIGhyZWY9Imh0dHBzOi8vcnVieWdlbXMub3JnL2dlbXMvZGVsIj5kZWw8L2E+IGFuZCBtYW55IG1vcmUgZ2Vtcy48L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ydWJ5IGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9ImMxIj4jIS9iaW4vc2g8L3NwYW4+CjxzcGFuIGNsYXNzPSJuIj5nZW08L3NwYW4+IDxzcGFuIGNsYXNzPSJuIj5pbnN0YWxsPC9zcGFuPiA8c3BhbiBjbGFzcz0ibiI+eHNheTwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYzEiPiMg44KCIHhzYXkgcmFuZG9tIEhlbGxvPC9zcGFuPgo8c3BhbiBjbGFzcz0ibiI+eHNheTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im4iPnJhbmRvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vIj5IZWxsbzwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgIC0tLS0tPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICZsdDsgSGVsbG8gJmd0Ozwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgIC0tLS0tPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgICAgIC4iYCIuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICAgLi0uLyBfPV8gXC4tLjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgeyAgKCwob1lvKSwpICB9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICB7ICB8ICAgIiAgIHwgIH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYzEiPiMgIHsgeyBcKC0tLSkvIH0gfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAgeyB7IH0nLT0tJ3sgfSB9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICB7IHsgfS5fOl8ueyB9IH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYzEiPiMgIHsgeyB9IC06LSB7IH0gfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjMSI+IyAge197IH1gPT09YHsgIF99PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImMxIj4jICgoKChcKSAgICAgKC8pKSkpPC9zcGFuPgoKPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKICAgICAgICAgIDxociAvPgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgPC9kaXY+CiAgICA8L21haW4+CiAgICA8Zm9vdGVyPgogICAgICA8aW1nIGNsYXNzPSJjZW50ZXIiIGludGVncml0eT0ic2hhMjU2LTBPT3hnZWltSUpsbnNUUGs1aW8zbUZPUzA4aEVXdlhad0dSSndIa2JwWWs9IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Ii9hc3NldHMvMWIyNjQ3LTFkYzFlOTQwZWI0YjJkNDJlZWFhOGNjYjRiZGYxMzY1YzdkMmY3MmFmYzkzMGNmZjgxOTJkYzU1M2M3ZTFiNDMuanBnIj4KICAgICAgPHAgY2xhc3M9InRleHQtY2VudGVyIj5NeSB0aG91Z2h0cyBiZWxvbmcgdG8gbWU8YSBocmVmPSIv4p2k77iPLmh0bWwiIGNsYXNzPSJjYXRlZ29yeSI+LjwvYT48L3A+CiAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21va2hhbi8iPkdpdEh1YjwvYT4gfAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcnVieWdlbXMub3JnL3Byb2ZpbGVzL21va2hhIj5SdWJ5R2VtczwvYT4gfAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9tb2toYW5jYWxnYXJ5Ij5MaW5rZWRJbjwvYT4KICAgICAgPC9wPgogICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICZjb3B5OyAyMDA1LTIwMTgKICAgICAgICBtbyBbYXRdIG1va2hhbiBbZG90XSBjYQogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm1va2hhbi5jYSI+d3d3Lm1va2hhbi5jYTwvYT4KICAgICAgPC9wPgogICAgPC9mb290ZXI+CiAgPHNjcmlwdD4KICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9CiAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTsKICBndGFnKCdjb25maWcnLCAnVUEtMjQyOTE4LTEnLCB7CiAgICAncGFnZV90aXRsZSc6ICdtbyBraGFuJywKICAgICdwYWdlX2xvY2F0aW9uJzogJ2h0dHBzOi8vd3d3Lm1va2hhbi5jYS8nLAogICAgJ3BhZ2VfcGF0aCc6ICcvJywKICAgICdhbm9ueW1pemVfaXAnOiB0cnVlLAogIH0pOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+CjwhLS0KIF9fX19fCjwgbW9vID4KIC0tLS0tCiAgICAgICAgXCAgIF5fX14KICAgICAgICAgXCAgKG9vKVxfX19fX19fCiAgICAgICAgICAgIChfXylcICAgICAgIClcL1wKICAgICAgICAgICAgICAgIHx8LS0tLXcgfAogICAgICAgICAgICAgICAgfHwgICAgIHx8Ci0tPgoK
-    http_version: 
+    http_version:
   recorded_at: Wed, 06 Feb 2019 17:45:16 GMT
 recorded_with: VCR 4.0.0
test/net/client_test.rb
@@ -3,8 +3,7 @@ require 'test_helper'
 class ClientTest < Minitest::Test
   attr_reader :subject
 
-  def initialize(*args)
-    super
+  def setup
     @subject = Net::Hippie::Client.new
   end
 
@@ -303,4 +302,19 @@ class ClientTest < Minitest::Test
     end
     assert(@called)
   end
+
+  def test_logger
+    VCR.turned_off do
+      WebMock.allow_net_connect!
+      StringIO.open do |io|
+        subject = Net::Hippie::Client.new(logger: Logger.new(io, level: :debug))
+        response = subject.get('https://www.example.org/')
+
+        refute_nil response
+        assert_kind_of Net::HTTPOK, response
+        io.rewind
+        assert_match %r{^(opening connection to www.example.org:443)}, io.read
+      end
+    end
+  end
 end
test/test_helper.rb
@@ -6,8 +6,7 @@ require 'net/hippie'
 require 'securerandom'
 require 'vcr'
 require 'webmock'
-
-Net::Hippie.logger = ENV['CIBUILD'] ? Logger.new('/dev/null') : Logger.new(STDERR)
+require 'webmock/minitest'
 
 VCR.configure do |config|
   config.cassette_library_dir = 'test/fixtures'
.gitlab-ci.yml
@@ -1,11 +0,0 @@
-image: ruby:2.6
-
-before_script:
-  - apt-get update && apt-get install -y locales
-  - echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
-  - locale-gen
-  - export LC_ALL=en_US.UTF-8
-
-ci:
-  script:
-    - bin/cibuild
.rubocop.yml
@@ -8,6 +8,9 @@ AllCops:
   NewCops: enable
   TargetRubyVersion: 2.5
 
+Gemspec/DevelopmentDependencies:
+  EnforcedStyle: gemspec
+
 Layout/ParameterAlignment:
   EnforcedStyle: with_fixed_indentation
 
CHANGELOG.md
@@ -1,4 +1,4 @@
-Version 1.1.1
+Version 1.2.0
 
 # Changelog
 All notable changes to this project will be documented in this file.
@@ -7,9 +7,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 ## [Unreleased]
+## [1.2.0] - 2024-12-05
+### Changed
+- Disable logger by default
+
 ## [1.1.1] - 2021-01-30
 ### Changed
-- Update 
+- Update Gem Metadata
 
 ## [1.1.0] - 2020-12-26
 ### Added
@@ -80,7 +84,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - with\_retry.
 - authorization header helpers
 
-[Unreleased]: https://github.com/xlgmokha/net-hippie/compare/v1.1.0...HEAD
+[Unreleased]: https://github.com/xlgmokha/net-hippie/compare/v1.2.0...HEAD
+[1.2.0]: https://github.com/xlgmokha/net-hippie/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/xlgmokha/net-hippie/compare/v1.1.0...v1.1.1
 [1.1.0]: https://github.com/xlgmokha/net-hippie/compare/v1.0.1...v1.1.0
 [1.0.1]: https://github.com/xlgmokha/net-hippie/compare/v1.0.0...v1.0.1
 [1.0.0]: https://github.com/xlgmokha/net-hippie/compare/v0.3.2...v1.0.0
LICENSE.txt
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2018 mo
+Copyright (c) 2018 mo khan
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
net-hippie.gemspec
@@ -15,7 +15,8 @@ Gem::Specification.new do |spec|
   spec.homepage      = 'https://rubygems.org/gems/net-hippie'
   spec.license       = 'MIT'
   spec.metadata      = {
-    'source_code_uri' => 'https://github.com/xlgmokha/net-hippie'
+    'source_code_uri' => 'https://github.com/xlgmokha/net-hippie',
+    'rubygems_mfa_required' => 'true'
   }
 
   spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -26,9 +27,10 @@ Gem::Specification.new do |spec|
   spec.require_paths = ['lib']
   spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
 
+  spec.add_dependency 'logger', '~> 1.0'
   spec.add_development_dependency 'minitest', '~> 5.0'
   spec.add_development_dependency 'rake', '~> 13.0'
-  spec.add_development_dependency 'rubocop', '~> 0.55'
+  spec.add_development_dependency 'rubocop', '~> 1.9'
   spec.add_development_dependency 'vcr', '~> 6.0'
   spec.add_development_dependency 'webmock', '~> 3.4'
 end
README.md
@@ -1,7 +1,8 @@
 # Net::Hippie
 
 [![Gem Version](https://badge.fury.io/rb/net-hippie.svg)](https://rubygems.org/gems/net-hippie)
-[![Build Status](https://github.com/xlgmokha/net-hippie/workflows/Test/badge.svg)](https://github.com/xlgmokha/net-hippie/actions)
+[![Build Status](https://github.com/xlgmokha/net-hippie/actions/workflows/ci.yml/badge.svg))](https://github.com/xlgmokha/net-hippie/actions)
+
 
 `Net::Hippie` is a light weight wrapper around `net/http` that defaults to
 sending `JSON` messages.
@@ -65,6 +66,12 @@ client = Net::Hippie::Client.new(
 )
 ```
 
+To disable logging you will need to override the default logger.
+
+```ruby
+client = Net::Hippie::Client.new(logger: nil)
+```
+
 ### Basic Auth
 
 ```ruby