legion-cache 1.3.10 → 1.3.11
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/legion/cache/helper.rb +68 -0
- data/lib/legion/cache/version.rb +1 -1
- data/lib/legion/cache.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6290bf41f9c5aad922d9ff00e8fe1cac6f6ac5118757ffc1acc55b0aaac05a18
|
|
4
|
+
data.tar.gz: da4e9d085dd567bb262a58be3d08cf81de1575ddc9b0a0d7db569dc67d81c923
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aba95d900562d5f09c9ff9283e4306c5f66c0e56b66bea60b4720eacaa4744239f6a758dca1061f3e18053ecd9df45b386ad986ba91e228a5ffdb750f32b5068
|
|
7
|
+
data.tar.gz: 3a1e54d25d17354b4c3a6ec30e2f977bf36e2d89efd2b16d483e86a4a0cf47ad115497b865706060f5f309941135f028d8331dd05178e54fc616da19b5465b88
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.11] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `Legion::Cache::Helper` module: injectable cache mixin for LEX extensions
|
|
7
|
+
- Namespaced `cache_set`, `cache_get`, `cache_delete`, `cache_fetch` for shared cache
|
|
8
|
+
- Namespaced `local_cache_set`, `local_cache_get`, `local_cache_delete`, `local_cache_fetch` for per-node local cache
|
|
9
|
+
|
|
3
10
|
## [1.3.10] - 2026-03-22
|
|
4
11
|
|
|
5
12
|
### Changed
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Cache
|
|
5
|
+
module Helper
|
|
6
|
+
def cache_namespace
|
|
7
|
+
@cache_namespace ||= derive_cache_namespace
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def cache_set(key, value, ttl: 60)
|
|
11
|
+
Legion::Cache.set(cache_namespace + key, value, ttl)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def cache_get(key)
|
|
15
|
+
Legion::Cache.get(cache_namespace + key)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def cache_delete(key)
|
|
19
|
+
Legion::Cache.delete(cache_namespace + key)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def cache_fetch(key, ttl: 60, &)
|
|
23
|
+
Legion::Cache.fetch(cache_namespace + key, ttl, &)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def local_cache_set(key, value, ttl: 60)
|
|
27
|
+
Legion::Cache::Local.set(cache_namespace + key, value, ttl)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def local_cache_get(key)
|
|
31
|
+
Legion::Cache::Local.get(cache_namespace + key)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def local_cache_delete(key)
|
|
35
|
+
Legion::Cache::Local.delete(cache_namespace + key)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def local_cache_fetch(key, ttl: 60, &)
|
|
39
|
+
Legion::Cache::Local.fetch(cache_namespace + key, ttl, &)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def derive_cache_namespace
|
|
45
|
+
if respond_to?(:lex_filename)
|
|
46
|
+
fname = lex_filename
|
|
47
|
+
fname.is_a?(Array) ? fname.first : fname
|
|
48
|
+
else
|
|
49
|
+
derive_cache_namespace_from_class
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def derive_cache_namespace_from_class
|
|
54
|
+
name = respond_to?(:ancestors) ? ancestors.first.to_s : self.class.to_s
|
|
55
|
+
parts = name.split('::')
|
|
56
|
+
ext_idx = parts.index('Extensions')
|
|
57
|
+
target = if ext_idx && parts[ext_idx + 1]
|
|
58
|
+
parts[ext_idx + 1]
|
|
59
|
+
else
|
|
60
|
+
parts.last
|
|
61
|
+
end
|
|
62
|
+
target.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
63
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
64
|
+
.downcase
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
data/lib/legion/cache/version.rb
CHANGED
data/lib/legion/cache.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: legion-cache
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -101,6 +101,7 @@ files:
|
|
|
101
101
|
- legion-cache.gemspec
|
|
102
102
|
- lib/legion/cache.rb
|
|
103
103
|
- lib/legion/cache/cacheable.rb
|
|
104
|
+
- lib/legion/cache/helper.rb
|
|
104
105
|
- lib/legion/cache/local.rb
|
|
105
106
|
- lib/legion/cache/memcached.rb
|
|
106
107
|
- lib/legion/cache/pool.rb
|