gitlab-client-cache 0.0.3 → 0.0.5

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: d350a75806d888f784565799473875ef199104536103de749aaaef8b53f98c78
4
- data.tar.gz: 2b71a182d6c912140bbf9838ed9210e080c4dc2ce077957797f7f1609437e500
3
+ metadata.gz: 2dda76e9f1f1172d8de24dd9bfa27ec091bb26588ea054c17a40f19ae12a3ab2
4
+ data.tar.gz: fe3fcd64125ecc3f9126b44c77778b94881200350c9fe0cb48cc9a69fb59fbe8
5
5
  SHA512:
6
- metadata.gz: 26883d8c2693da2bf08e33366eac75772f39bbb2948229c5110ffe4937757088f6f5f6410a1e76db6414b832e93fa8ac3c148e8e69133d5a4ec29cba17533542
7
- data.tar.gz: 516973e271b58a4bff32383024dbaa7b72310ffc63be65d09c6b1e49bcc35a0c69abea9b6bc0c7227287298ae9ac02856a8a618f120a8847804cba5304fb837b
6
+ metadata.gz: 00ab1a36bd9e1c7f0f41b0564fccfebf6a7b586a885d60ad5b764bacad9610a5dab2e79095ae268178b9235778b907790e68b9f1049b8419fceb4043d8999c10
7
+ data.tar.gz: 41f244bcad85e4bb8f14b84452a5b6128e591a2c21685dce19dbb2e33085ff6ebb6de4134d5dab34d03aadead48106513f1e3980bc93057d3b4a027a824fb1a6
@@ -11,30 +11,39 @@ class Gitlab::Client::Cache::Caching
11
11
  @config = config
12
12
  end
13
13
 
14
- def cached(http_path, http_params)
15
- path = path_to(http_path, http_params)
14
+ def cached(*args)
15
+ path = path_to(args)
16
16
 
17
- if path.exist? && path_fresh?(path, http_path, http_params)
17
+ expires_in = determine_expires_in(args)
18
+
19
+ if expires_in != :skip_caching && path.exist? && path_fresh?(path, expires_in)
18
20
  load(path)
19
21
  else
20
- dump(path, yield)
22
+ result = yield
23
+ dump(path, result) unless expires_in == :skip_caching
24
+ result
21
25
  end
22
26
  end
23
27
 
24
28
  private
25
29
 
26
- def path_fresh?(path, http_path, http_params)
30
+ def determine_expires_in(args)
27
31
  expires_in = @config.expires_in
28
32
 
29
33
  if expires_in.is_a?(Array)
30
34
  expires_in = \
31
35
  expires_in.each do |block|
32
- result = block.is_a?(Proc) ? block.call(http_path, http_params) : block
36
+ result = block.is_a?(Proc) ? block.call(*args) : block
33
37
  break result unless result == :default
34
38
  end
39
+ expires_in = nil if expires_in.is_a?(Array)
35
40
  end
36
41
 
37
- return true unless expires_in
42
+ expires_in
43
+ end
44
+
45
+ def path_fresh?(path, expires_in)
46
+ return true if expires_in.nil?
38
47
 
39
48
  path.mtime + expires_in >= Time.now
40
49
  end
@@ -51,11 +60,9 @@ class Gitlab::Client::Cache::Caching
51
60
  Object.const_get(klass).inflate(content)
52
61
  end
53
62
 
54
- def dump(path, response)
63
+ def dump(path, content)
55
64
  path.dirname.mkpath
56
- path.write(deflate(Marshal.dump(response)))
57
-
58
- response
65
+ path.write(deflate(Marshal.dump(content)))
59
66
  end
60
67
 
61
68
  def deflate(content)
@@ -70,9 +77,8 @@ class Gitlab::Client::Cache::Caching
70
77
  end
71
78
  end
72
79
 
73
- def path_to(http_path, http_params)
74
- params = clean_params(http_params)
75
- plain = JSON.generate([http_path, params])
80
+ def path_to(args)
81
+ plain = JSON.generate(args)
76
82
  key = Digest::SHA256.hexdigest(plain)
77
83
 
78
84
  parts = [
@@ -84,14 +90,6 @@ class Gitlab::Client::Cache::Caching
84
90
  Pathname.new(parts.join("/"))
85
91
  end
86
92
 
87
- def clean_params(params)
88
- params = params.dup
89
- params.delete(:logger)
90
- params.delete(:log_level)
91
-
92
- params
93
- end
94
-
95
93
  def clean_path(path)
96
94
  CGI.escape(path)
97
95
  .gsub(".", "_")
@@ -2,7 +2,11 @@
2
2
 
3
3
  module Gitlab::Client::Cache::Patch
4
4
  def get(path, params = {})
5
- Gitlab::Client::Cache::Caching.new(Gitlab::Client::Cache.config).cached(path, params) { super }
5
+ params_for_path = params.dup
6
+ params_for_path.delete(:logger)
7
+ params_for_path.delete(:log_level)
8
+
9
+ Gitlab::Client::Cache::Caching.new(Gitlab::Client::Cache.config).cached(path, params_for_path) { super }
6
10
  end
7
11
  end
8
12
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitlabClientCache
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-client-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Leitzen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-15 00:00:00.000000000 Z
11
+ date: 2024-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab