dhc 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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