eac_ruby_utils 0.62.0 → 0.62.1
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/lib/eac_ruby_utils/simple_cache.rb +18 -5
- data/lib/eac_ruby_utils/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: 76b0e92df72f0b6b552d62eda2aad5f2701409e7d8093aee4d30c5df70ee30a1
|
4
|
+
data.tar.gz: b6450dc7143e3a1669df002394357c2209d51983111cefc2d8f25efbd8e5344a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7839203f7f9e9a8baa17167e4a5e0d9d812ff9028de3fb3c8298ce6bb584f6b77256b8afdfd49ff79f23d0614afcef74aa5f003ab00a0d3fc14d58816e695fce
|
7
|
+
data.tar.gz: 9392bdfc10d5a2ba53de62a816c307e0d2f3e21b6731888cc0fe63a46853ed5c074d91fafc5f91194256fa33c6ddb39a930c75564db7aac3ff3967c9e4329eee
|
@@ -2,12 +2,18 @@
|
|
2
2
|
|
3
3
|
module EacRubyUtils
|
4
4
|
module SimpleCache
|
5
|
-
|
5
|
+
UNCACHED_METHOD_NAME_SUFFIX = '_uncached'
|
6
|
+
UNCACHED_METHOD_PATTERN = /\A(\s+)_#{::Regexp.quote(UNCACHED_METHOD_NAME_SUFFIX)}\z/.freeze
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def uncached_method_name(method_name)
|
10
|
+
"#{method_name}#{UNCACHED_METHOD_NAME_SUFFIX}"
|
11
|
+
end
|
12
|
+
end
|
6
13
|
|
7
14
|
def method_missing(method, *args, &block)
|
8
|
-
|
9
|
-
|
10
|
-
call_method_with_cache(uncached_method, args, &block)
|
15
|
+
if respond_to?(::EacRubyUtils::SimpleCache.uncached_method_name(method), true)
|
16
|
+
call_method_with_cache(method, args, &block)
|
11
17
|
else
|
12
18
|
super
|
13
19
|
end
|
@@ -35,10 +41,17 @@ module EacRubyUtils
|
|
35
41
|
raise 'Não é possível realizar o cache de métodos com bloco' if block
|
36
42
|
|
37
43
|
key = ([method] + args).join('@@@')
|
38
|
-
|
44
|
+
unless cache_keys.key?(key)
|
45
|
+
uncached_value = call_uncached_method(method, args)
|
46
|
+
cache_keys[key] = uncached_value
|
47
|
+
end
|
39
48
|
cache_keys[key]
|
40
49
|
end
|
41
50
|
|
51
|
+
def call_uncached_method(method, args)
|
52
|
+
send(::EacRubyUtils::SimpleCache.uncached_method_name(method), *args)
|
53
|
+
end
|
54
|
+
|
42
55
|
def cache_keys
|
43
56
|
@cache_keys ||= {}
|
44
57
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_ruby_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.62.
|
4
|
+
version: 0.62.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|