gitlab-client-cache 0.0.2 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gitlab/client/cache/caching.rb +30 -22
- data/lib/gitlab/client/cache/patch.rb +5 -1
- data/lib/gitlab/client/cache/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2dda76e9f1f1172d8de24dd9bfa27ec091bb26588ea054c17a40f19ae12a3ab2
|
4
|
+
data.tar.gz: fe3fcd64125ecc3f9126b44c77778b94881200350c9fe0cb48cc9a69fb59fbe8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00ab1a36bd9e1c7f0f41b0564fccfebf6a7b586a885d60ad5b764bacad9610a5dab2e79095ae268178b9235778b907790e68b9f1049b8419fceb4043d8999c10
|
7
|
+
data.tar.gz: 41f244bcad85e4bb8f14b84452a5b6128e591a2c21685dce19dbb2e33085ff6ebb6de4134d5dab34d03aadead48106513f1e3980bc93057d3b4a027a824fb1a6
|
@@ -11,22 +11,41 @@ class Gitlab::Client::Cache::Caching
|
|
11
11
|
@config = config
|
12
12
|
end
|
13
13
|
|
14
|
-
def cached(
|
15
|
-
path = path_to(
|
14
|
+
def cached(*args)
|
15
|
+
path = path_to(args)
|
16
16
|
|
17
|
-
|
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
|
-
|
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
|
27
|
-
|
30
|
+
def determine_expires_in(args)
|
31
|
+
expires_in = @config.expires_in
|
32
|
+
|
33
|
+
if expires_in.is_a?(Array)
|
34
|
+
expires_in = \
|
35
|
+
expires_in.each do |block|
|
36
|
+
result = block.is_a?(Proc) ? block.call(*args) : block
|
37
|
+
break result unless result == :default
|
38
|
+
end
|
39
|
+
expires_in = nil if expires_in.is_a?(Array)
|
40
|
+
end
|
41
|
+
|
42
|
+
expires_in
|
43
|
+
end
|
44
|
+
|
45
|
+
def path_fresh?(path, expires_in)
|
46
|
+
return true if expires_in.nil?
|
28
47
|
|
29
|
-
path.mtime +
|
48
|
+
path.mtime + expires_in >= Time.now
|
30
49
|
end
|
31
50
|
|
32
51
|
def load(path)
|
@@ -41,11 +60,9 @@ class Gitlab::Client::Cache::Caching
|
|
41
60
|
Object.const_get(klass).inflate(content)
|
42
61
|
end
|
43
62
|
|
44
|
-
def dump(path,
|
63
|
+
def dump(path, content)
|
45
64
|
path.dirname.mkpath
|
46
|
-
path.write(deflate(Marshal.dump(
|
47
|
-
|
48
|
-
response
|
65
|
+
path.write(deflate(Marshal.dump(content)))
|
49
66
|
end
|
50
67
|
|
51
68
|
def deflate(content)
|
@@ -60,9 +77,8 @@ class Gitlab::Client::Cache::Caching
|
|
60
77
|
end
|
61
78
|
end
|
62
79
|
|
63
|
-
def path_to(
|
64
|
-
|
65
|
-
plain = JSON.generate([http_path, params])
|
80
|
+
def path_to(args)
|
81
|
+
plain = JSON.generate(args)
|
66
82
|
key = Digest::SHA256.hexdigest(plain)
|
67
83
|
|
68
84
|
parts = [
|
@@ -74,14 +90,6 @@ class Gitlab::Client::Cache::Caching
|
|
74
90
|
Pathname.new(parts.join("/"))
|
75
91
|
end
|
76
92
|
|
77
|
-
def clean_params(params)
|
78
|
-
params = params.dup
|
79
|
-
params.delete(:logger)
|
80
|
-
params.delete(:log_level)
|
81
|
-
|
82
|
-
params
|
83
|
-
end
|
84
|
-
|
85
93
|
def clean_path(path)
|
86
94
|
CGI.escape(path)
|
87
95
|
.gsub(".", "_")
|
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
module Gitlab::Client::Cache::Patch
|
4
4
|
def get(path, params = {})
|
5
|
-
|
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
|
|
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.
|
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:
|
11
|
+
date: 2024-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gitlab
|