dhc 2.1.1 → 2.2.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
2
  SHA256:
3
- metadata.gz: a8e0bb9f278c6894075dfd3004f3a639be1d5da7dd02df7b4e6d3f6169ee33ef
4
- data.tar.gz: f3ee060e925fca3a629f8ca3c53e815c9c33bcb6dcbba75ff57651d1f57595e2
3
+ metadata.gz: dbcbbfbe466771c1ad389aebe29d997915137216b50b0aceff73f3cbc589f050
4
+ data.tar.gz: a659a0b022d803a700352d20fe96482731470b31234e8db9df3f665da5547ae7
5
5
  SHA512:
6
- metadata.gz: fbdd2700bd73f043a0d6aa4f37c2505255451be5fd6228df2013951df03f63c3dd964116bcf5a7c05a273a28025d06cab319aca08f19fa7339a7eb349e39c9a9
7
- data.tar.gz: 99800e3225e33e433218698f075c492be9fa6f59d11c457a09ab3558eabbebb5ecb68b15ed796c2ffea6803cd02199f3d1ffda3d52717a8f0e543e56b55c6982
6
+ metadata.gz: 1851454238cb9552457a56c020edcb88b8b7e37eed6ebc0c6d1a8574c8250c520cfd48d8ca1e9f82ddcd334085daf1651fb0c31221ea638921aeb5873218846f
7
+ data.tar.gz: 4432965dcb69081d1d082cfc47101644a817f387d79213f57b8d2b80192901148e49b6a9ceb4ddb10c632e425385b30026de4c2bbbe69ffdaeefb5bf105c6bf5
data/dhc.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
 
29
29
  s.add_development_dependency 'prometheus-client', '~> 0.7.1'
30
30
  s.add_development_dependency 'pry'
31
- s.add_development_dependency 'rails', '>= 5.2'
31
+ s.add_development_dependency 'rails', '>= 5.2', '< 7'
32
32
  s.add_development_dependency 'redis'
33
33
  s.add_development_dependency 'rspec-rails', '>= 3.0.0'
34
34
  s.add_development_dependency 'rubocop'
@@ -23,12 +23,12 @@ class DHC::Caching < DHC::Interceptor
23
23
  def fetch(key)
24
24
  central_response = @central[:read].fetch(key) if @central && @central[:read].present?
25
25
  if central_response
26
- puts %([DHC] served from central cache: "#{key}")
26
+ DHC::Logger.info %([DHC] served from central cache: "#{key}")
27
27
  return central_response
28
28
  end
29
29
  local_response = @local.fetch(key) if @local
30
30
  if local_response
31
- puts %([DHC] served from local cache: "#{key}")
31
+ DHC::Logger.info %([DHC] served from local cache: "#{key}")
32
32
  return local_response
33
33
  end
34
34
  end
data/lib/dhc/logger.rb ADDED
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'singleton'
4
+ require 'forwardable'
5
+
6
+ class DHC::Logger < Logger
7
+ include ActiveSupport::Configurable
8
+ include Singleton
9
+
10
+ config_accessor :logger
11
+
12
+ class << self
13
+ extend Forwardable
14
+ def_delegators :instance, :log, :info, :error, :warn, :debug
15
+ end
16
+
17
+ def initialize(logdev = nil)
18
+ super
19
+ if DHC::Logger.logger
20
+ self.logger = DHC::Logger.logger
21
+ elsif defined? Rails
22
+ self.logger = Rails.logger
23
+ end
24
+ end
25
+
26
+ def self.log(severity, message = nil, progname = nil)
27
+ return if logger.blank?
28
+ logger.log(severity, message, progname)
29
+ end
30
+ end
data/lib/dhc/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DHC
4
- VERSION ||= '2.1.1'
4
+ VERSION ||= '2.2.0'
5
5
  end
data/lib/dhc.rb CHANGED
@@ -72,6 +72,7 @@ module DHC
72
72
  autoload :Response, 'dhc/response'
73
73
  autoload :Rollbar, 'dhc/interceptors/rollbar'
74
74
  autoload :Zipkin, 'dhc/interceptors/zipkin'
75
+ autoload :Logger, 'dhc/logger'
75
76
 
76
77
  require 'dhc/railtie' if defined?(Rails)
77
78
  end
@@ -46,8 +46,8 @@ describe DHC::Caching do
46
46
  it 'serves a response from local cache without trying the central cache' do
47
47
  expect(Rails.cache).to receive(:fetch).at_least(:once).and_call_original
48
48
  expect(Rails.cache).to receive(:write).and_call_original
49
- expect(-> { response_has_been_cached_and_served_from_cache! })
50
- .to output(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
49
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
50
+ response_has_been_cached_and_served_from_cache!
51
51
  end
52
52
  end
53
53
 
@@ -67,8 +67,8 @@ describe DHC::Caching do
67
67
  expect(redis_cache).to receive(:write).and_return(true)
68
68
  expect(Rails.cache).to receive(:fetch).and_call_original
69
69
  expect(Rails.cache).to receive(:write).and_call_original
70
- expect(-> { response_has_been_cached_and_served_from_cache! })
71
- .to output(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
70
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
71
+ response_has_been_cached_and_served_from_cache!
72
72
  end
73
73
  end
74
74
 
@@ -78,8 +78,8 @@ describe DHC::Caching do
78
78
  expect(redis_cache).to receive(:write).and_return(true)
79
79
  expect(Rails.cache).to receive(:fetch).at_least(:once).and_call_original
80
80
  expect(Rails.cache).to receive(:write).and_call_original
81
- expect(-> { response_has_been_cached_and_served_from_cache! })
82
- .to output(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
81
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
82
+ response_has_been_cached_and_served_from_cache!
83
83
  end
84
84
  end
85
85
  end
@@ -97,8 +97,8 @@ describe DHC::Caching do
97
97
  expect(redis_cache).not_to receive(:write)
98
98
  expect(Rails.cache).to receive(:fetch).and_call_original
99
99
  expect(Rails.cache).to receive(:write).and_call_original
100
- expect(-> { response_has_been_cached_and_served_from_cache! })
101
- .to output(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
100
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
101
+ response_has_been_cached_and_served_from_cache!
102
102
  end
103
103
  end
104
104
 
@@ -115,8 +115,8 @@ describe DHC::Caching do
115
115
  expect(redis_cache).to receive(:write).and_return(true)
116
116
  expect(Rails.cache).to receive(:fetch).at_least(:once).and_call_original
117
117
  expect(Rails.cache).to receive(:write).and_call_original
118
- expect(-> { response_has_been_cached_and_served_from_cache! })
119
- .to output(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
118
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from local cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
119
+ response_has_been_cached_and_served_from_cache!
120
120
  end
121
121
  end
122
122
 
@@ -132,8 +132,8 @@ describe DHC::Caching do
132
132
  it 'does not inquire the local cache for information neither to write them' do
133
133
  expect(redis_cache).to receive(:fetch).and_return(nil, body: '<h1>Hi there</h1>', code: 200, headers: nil, return_code: nil, mock: :webmock)
134
134
  expect(redis_cache).to receive(:write).and_return(true)
135
- expect(-> { response_has_been_cached_and_served_from_cache! })
136
- .to output(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"\n}).to_stdout
135
+ expect(DHC::Logger).to receive(:info).with(%{[DHC] served from central cache: "DHC_CACHE(v1): GET http://depay.fi"}).and_call_original
136
+ response_has_been_cached_and_served_from_cache!
137
137
  end
138
138
  end
139
139
  end
@@ -81,19 +81,18 @@ describe DHC::Throttle do
81
81
  end
82
82
 
83
83
  context 'multiple provider' do
84
-
85
84
  it 'tracks multiple providers without a problem' do
86
85
  DHC.get('http://depay.fi', options)
87
86
  stub_request(:get, 'http://depay.app').to_return(status: 200)
88
87
  DHC.get('http://depay.app', {
89
- throttle: {
90
- provider: 'depay.app',
91
- track: true,
92
- limit: quota_limit,
93
- expires: 1.minute,
94
- break: break_after
95
- }
96
- })
88
+ throttle: {
89
+ provider: 'depay.app',
90
+ track: true,
91
+ limit: quota_limit,
92
+ expires: 1.minute,
93
+ break: break_after
94
+ }
95
+ })
97
96
  expect(Rails.cache.read('DHC/throttle/tracker/v1')['depay.fi']).to be_present
98
97
  expect(Rails.cache.read('DHC/throttle/tracker/v1')['depay.app']).to be_present
99
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dhc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/DePayFi/dhc/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-16 00:00:00.000000000 Z
11
+ date: 2021-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -87,6 +87,9 @@ dependencies:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '5.2'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '7'
90
93
  type: :development
91
94
  prerelease: false
92
95
  version_requirements: !ruby/object:Gem::Requirement
@@ -94,6 +97,9 @@ dependencies:
94
97
  - - ">="
95
98
  - !ruby/object:Gem::Version
96
99
  version: '5.2'
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '7'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: redis
99
105
  requirement: !ruby/object:Gem::Requirement
@@ -231,6 +237,7 @@ files:
231
237
  - lib/dhc/interceptors/rollbar.rb
232
238
  - lib/dhc/interceptors/throttle.rb
233
239
  - lib/dhc/interceptors/zipkin.rb
240
+ - lib/dhc/logger.rb
234
241
  - lib/dhc/railtie.rb
235
242
  - lib/dhc/request.rb
236
243
  - lib/dhc/response.rb