typed_cache 0.2.0 → 0.3.0
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
- checksums.yaml.gz.sig +0 -0
- data/README.md +25 -3
- data/examples.md +36 -2
- data/lib/typed_cache/backends/active_support.rb +50 -5
- data/lib/typed_cache/backends/memory.rb +5 -5
- data/lib/typed_cache/cache_key.rb +9 -1
- data/lib/typed_cache/cache_ref.rb +16 -16
- data/lib/typed_cache/decorator.rb +9 -1
- data/lib/typed_cache/decorators/instrumented.rb +21 -8
- data/lib/typed_cache/either.rb +22 -0
- data/lib/typed_cache/instrumenter.rb +6 -6
- data/lib/typed_cache/instrumenters/mixins/namespaced_singleton.rb +3 -0
- data/lib/typed_cache/instrumenters.rb +2 -1
- data/lib/typed_cache/maybe.rb +18 -0
- data/lib/typed_cache/namespace.rb +33 -6
- data/lib/typed_cache/railtie.rb +15 -0
- data/lib/typed_cache/snapshot.rb +18 -10
- data/lib/typed_cache/store.rb +47 -15
- data/lib/typed_cache/version.rb +1 -1
- data/lib/typed_cache.rb +4 -0
- data/rbi/typed_cache/backend.rbi +9 -0
- data/rbi/typed_cache/backends/active_support.rbi +13 -0
- data/rbi/typed_cache/backends/memory.rbi +13 -0
- data/rbi/typed_cache/backends.rbi +19 -0
- data/rbi/typed_cache/cache_builder.rbi +23 -0
- data/rbi/typed_cache/cache_key.rbi +16 -0
- data/rbi/typed_cache/cache_ref.rbi +56 -0
- data/rbi/typed_cache/decorator.rbi +67 -0
- data/rbi/typed_cache/decorators/instrumented.rbi +13 -0
- data/rbi/typed_cache/decorators.rbi +19 -0
- data/rbi/typed_cache/either.rbi +122 -0
- data/rbi/typed_cache/errors.rbi +20 -0
- data/rbi/typed_cache/instrumenter.rbi +45 -0
- data/rbi/typed_cache/instrumenters/mixins/namedspaced_singleton.rbi +33 -0
- data/rbi/typed_cache/instrumenters.rbi +19 -0
- data/rbi/typed_cache/maybe.rbi +108 -0
- data/rbi/typed_cache/namespace.rbi +30 -0
- data/rbi/typed_cache/snapshot.rbi +54 -0
- data/rbi/typed_cache/store.rbi +71 -0
- data/rbi/typed_cache/version.rbi +5 -0
- data/rbi/typed_cache.rbi +49 -0
- data/sig/generated/typed_cache/backends/active_support.rbs +14 -2
- data/sig/generated/typed_cache/backends/memory.rbs +2 -2
- data/sig/generated/typed_cache/cache_key.rbs +5 -0
- data/sig/generated/typed_cache/cache_ref.rbs +4 -4
- data/sig/generated/typed_cache/decorator.rbs +4 -0
- data/sig/generated/typed_cache/decorators/instrumented.rbs +4 -4
- data/sig/generated/typed_cache/either.rbs +24 -0
- data/sig/generated/typed_cache/instrumenter.rbs +5 -5
- data/sig/generated/typed_cache/instrumenters/mixins/namespaced_singleton.rbs +3 -0
- data/sig/generated/typed_cache/instrumenters.rbs +2 -0
- data/sig/generated/typed_cache/maybe.rbs +20 -0
- data/sig/generated/typed_cache/namespace.rbs +24 -3
- data/sig/generated/typed_cache/railtie.rbs +6 -0
- data/sig/generated/typed_cache/snapshot.rbs +12 -6
- data/sig/generated/typed_cache/store.rbs +23 -8
- data/sig/generated/typed_cache.rbs +2 -0
- data/typed_cache.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +26 -3
- metadata.gz.sig +0 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
class Error < StandardError; end
|
5
|
+
|
6
|
+
class StoreError < ::TypedCache::Error
|
7
|
+
sig { params(operation: Symbol, key: ::TypedCache::CacheKey, message: String, original_error: T.nilable(Error)).void }
|
8
|
+
def initialize(operation, key, message, original_error = nil); end
|
9
|
+
end
|
10
|
+
|
11
|
+
class TypeError < ::TypedCache::Error
|
12
|
+
sig { params(expected_type: String, actual_type: String, value: T.untyped, message: String).void }
|
13
|
+
def initialize(expected_type, actual_type, value, message); end
|
14
|
+
end
|
15
|
+
|
16
|
+
class CacheMissError < ::TypedCache::Error
|
17
|
+
sig { params(key: ::TypedCache::CacheKey).void }
|
18
|
+
def initialize(key); end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Instrumenter
|
5
|
+
abstract!
|
6
|
+
|
7
|
+
sig do
|
8
|
+
abstract.type_parameters(:R)
|
9
|
+
.params(
|
10
|
+
event_name: String,
|
11
|
+
key: String,
|
12
|
+
payload: T::Hash[Symbol, T.untyped],
|
13
|
+
blk: T.proc.returns(T.type_parameter(:R)),
|
14
|
+
).returns(T.type_parameter(:R))
|
15
|
+
end
|
16
|
+
def instrument(event_name, key, **payload, &blk); end
|
17
|
+
|
18
|
+
sig do
|
19
|
+
abstract.type_parameters(:R)
|
20
|
+
.params(
|
21
|
+
event_name: String,
|
22
|
+
filters: T::Hash[Symbol, T.untyped],
|
23
|
+
blk: T.proc.void,
|
24
|
+
).returns(T.type_parameter(:R))
|
25
|
+
end
|
26
|
+
def subscribe(event_name, **filters, &blk); end
|
27
|
+
|
28
|
+
sig { overridable.returns(String) }
|
29
|
+
def namespace; end
|
30
|
+
|
31
|
+
sig { overridable.returns(T::Boolean) }
|
32
|
+
def enabled?; end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
sig { overridable.params(operation: String, key: String, payload: T::Hash[Symbol, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
|
37
|
+
def build_payload(operation, key, **payload); end
|
38
|
+
|
39
|
+
sig(:final) { params(operation: String).returns(String) }
|
40
|
+
def event_name(operation); end
|
41
|
+
|
42
|
+
sig(:final) { returns(::TypedCache::Private::Configuration::Instrumentation) }
|
43
|
+
def config; end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Instrumenters
|
5
|
+
module Mixins
|
6
|
+
module NamedspacedSingleton
|
7
|
+
requires_ancestor { ::TypedCache::Instrumenter }
|
8
|
+
|
9
|
+
class << self
|
10
|
+
sig { returns(T::Array[T::Class[T.all(::TypedCache::Instrumenter, ::TypedCache::Instrumenters::Mixins::NamedspacedSingleton)]]) }
|
11
|
+
def all; end
|
12
|
+
end
|
13
|
+
|
14
|
+
sig { params(namespace: ::TypedCache::Namespace).void }
|
15
|
+
def initialize(namespace); end
|
16
|
+
|
17
|
+
sig { returns(::TypedCache::Namespace) }
|
18
|
+
def namespace; end
|
19
|
+
|
20
|
+
module ClassMethods
|
21
|
+
sig { params(namespace: ::TypedCache::Namespace).returns(T::Class[T.all(::TypedCache::Instrumenter, ::TypedCache::Instrumenters::Mixins::NamedspacedSingleton)]) }
|
22
|
+
def new(namespace: T.unsafe(nil)); end
|
23
|
+
|
24
|
+
sig { params(namespace: ::TypedCache::Namespace).returns(T::Class[T.all(::TypedCache::Instrumenter, ::TypedCache::Instrumenters::Mixins::NamedspacedSingleton)]) }
|
25
|
+
def get(namespace); end
|
26
|
+
|
27
|
+
sig { void }
|
28
|
+
def clear_namespace_cache; end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Instrumenters
|
5
|
+
class << self
|
6
|
+
sig { params(name: Symbol, klass: T::Class[::TypedCache::Instrumenter]).returns(T.self_type) }
|
7
|
+
def register(name, klass); end
|
8
|
+
|
9
|
+
sig { params(name: Symbol, args: T::Array[T.anything], options: T::Hash[Symbol, T.anything]).returns(T.self_type) }
|
10
|
+
def resolve(name, *args, **options); end
|
11
|
+
|
12
|
+
sig { returns(T::Array[T::Class[::TypedCache::Instrumenter]]) }
|
13
|
+
def available; end
|
14
|
+
|
15
|
+
sig { params(name: Symbol).returns(T::Boolean) }
|
16
|
+
def registered?(name); end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Maybe
|
5
|
+
include Kernel
|
6
|
+
extend T::Generic
|
7
|
+
|
8
|
+
mixes_in_class_methods(T::Generic)
|
9
|
+
|
10
|
+
sealed!
|
11
|
+
interface!
|
12
|
+
|
13
|
+
V = type_member(:out)
|
14
|
+
|
15
|
+
sig { abstract.returns(T::Boolean) }
|
16
|
+
def some?; end
|
17
|
+
|
18
|
+
sig { abstract.returns(T::Boolean) }
|
19
|
+
def nothing?; end
|
20
|
+
|
21
|
+
sig { abstract.type_parameters(:T).params(block: T.proc.params(value: V).returns(T.type_parameter(:T))).returns(::TypedCache::Maybe[T.type_parameter(:T)]) }
|
22
|
+
def map(&block); end
|
23
|
+
|
24
|
+
sig { abstract.type_parameters(:T).params(block: T.proc.params(value: V).returns(::TypedCache::Maybe[T.type_parameter(:T)])).returns(::TypedCache::Maybe[T.type_parameter(:T)]) }
|
25
|
+
def bind(&block); end
|
26
|
+
|
27
|
+
alias flat_map bind
|
28
|
+
|
29
|
+
sig { abstract.type_parameters(:T).params(block: T.proc.returns(T.type_parameter(:T))).returns(T.any(T.type_parameter(:T), V)) }
|
30
|
+
def value_or_else(&block); end
|
31
|
+
|
32
|
+
sig { abstract.type_parameters(:T).params(value: T.type_parameter(:T)).returns(T.any(T.type_parameter(:T), V)) }
|
33
|
+
def value_or(value); end
|
34
|
+
|
35
|
+
sig { abstract.returns(V) }
|
36
|
+
def value_or_raise!; end
|
37
|
+
|
38
|
+
class << self
|
39
|
+
sig { type_parameters(:T).params(value: T.type_parameter(:T)).returns(::TypedCache::Some[T.type_parameter(:T)]) }
|
40
|
+
def some(value); end
|
41
|
+
|
42
|
+
sig { returns(::TypedCache::Nothing) }
|
43
|
+
def none; end
|
44
|
+
|
45
|
+
sig { params(value: NilClass).returns(::TypedCache::Nothing) }
|
46
|
+
sig { params(value: ::TypedCache::Nothing).returns(::TypedCache::Nothing) }
|
47
|
+
sig { type_parameters(:T).params(value: ::TypedCache::Some[T.type_parameter(:T)]).returns(::TypedCache::Some[T.type_parameter(:T)]) }
|
48
|
+
sig { type_parameters(:T).params(value: T.type_parameter(:T)).returns(::TypedCache::Some[T.type_parameter(:T)]) }
|
49
|
+
def wrap(value); end
|
50
|
+
|
51
|
+
alias [] some
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Some
|
56
|
+
sealed!
|
57
|
+
|
58
|
+
include ::TypedCache::Maybe
|
59
|
+
extend T::Generic
|
60
|
+
|
61
|
+
V = type_member(:out)
|
62
|
+
|
63
|
+
sig { override.returns(TrueClass) }
|
64
|
+
def some?; end
|
65
|
+
|
66
|
+
sig { override.returns(FalseClass) }
|
67
|
+
def nothing?; end
|
68
|
+
|
69
|
+
sig { override.type_parameters(:T).params(block: T.proc.params(value: V).returns(T.type_parameter(:T))).returns(Some[T.type_parameter(:T)]) }
|
70
|
+
def map(&block); end
|
71
|
+
|
72
|
+
sig { override.type_parameters(:T).params(block: T.proc.params(value: V).returns(::TypedCache::Maybe[T.type_parameter(:T)])).returns(::TypedCache::Maybe[T.type_parameter(:T)]) }
|
73
|
+
def bind(&block); end
|
74
|
+
|
75
|
+
sig { override.type_parameters(:T).params(value: T.type_parameter(:T)).returns(V) }
|
76
|
+
def value_or(value); end
|
77
|
+
|
78
|
+
sig { override.returns(V) }
|
79
|
+
def value_or_raise!; end
|
80
|
+
end
|
81
|
+
|
82
|
+
class Nothing
|
83
|
+
sealed!
|
84
|
+
|
85
|
+
include ::TypedCache::Maybe
|
86
|
+
extend T::Generic
|
87
|
+
|
88
|
+
V = type_member(:out) { { fixed: T.noreturn } }
|
89
|
+
|
90
|
+
sig { override.returns(FalseClass) }
|
91
|
+
def some?; end
|
92
|
+
|
93
|
+
sig { override.returns(TrueClass) }
|
94
|
+
def nothing?; end
|
95
|
+
|
96
|
+
sig { override.type_parameters(:T).params(block: T.proc.params(value: V).returns(T.type_parameter(:T))).returns(T.self_type) }
|
97
|
+
def map(&block); end
|
98
|
+
|
99
|
+
sig { override.type_parameters(:T).params(block: T.proc.params(value: V).returns(::TypedCache::Maybe[T.type_parameter(:T)])).returns(T.self_type) }
|
100
|
+
def bind(&block); end
|
101
|
+
|
102
|
+
sig { override.type_parameters(:T).params(value: T.type_parameter(:T)).returns(T.type_parameter(:T)) }
|
103
|
+
def value_or(value); end
|
104
|
+
|
105
|
+
sig { override.returns(T.noreturn) }
|
106
|
+
def value_or_raise!; end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
class Namespace
|
5
|
+
sealed!
|
6
|
+
|
7
|
+
class << self
|
8
|
+
sig { returns(T.attached_class) }
|
9
|
+
def root; end
|
10
|
+
|
11
|
+
sig { params(namespace: String, namespaces: String).returns(T.attached_class) }
|
12
|
+
def at(namespace, *namespaces); end
|
13
|
+
end
|
14
|
+
|
15
|
+
sig { params(namespace: String, key_factory: T.nilable(T.proc.params(namespace: ::TypedCache::Namespace, key: String).returns(::TypedCache::CacheKey))).returns(::TypedCache::Namespace) }
|
16
|
+
def nested(namespace, &key_factory); end
|
17
|
+
|
18
|
+
sig { params(namespaces: String, key_factory: T.nilable(T.proc.params(namespace: ::TypedCache::Namespace, key: String).returns(::TypedCache::CacheKey))).returns(::TypedCache::Namespace) }
|
19
|
+
def join(*namespaces, &key_factory); end
|
20
|
+
|
21
|
+
sig { returns(::TypedCache::Namespace) }
|
22
|
+
def parent_namespace; end
|
23
|
+
|
24
|
+
sig { params(key: String).returns(::TypedCache::CacheKey) }
|
25
|
+
def key(key); end
|
26
|
+
|
27
|
+
sig { returns(String) }
|
28
|
+
def to_s; end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
class Snapshot
|
5
|
+
extend T::Generic
|
6
|
+
|
7
|
+
sealed!
|
8
|
+
|
9
|
+
ValueType = type_member(:out)
|
10
|
+
|
11
|
+
sig { returns(::TypedCache::CacheKey) }
|
12
|
+
def key; end
|
13
|
+
|
14
|
+
sig { returns(ValueType) }
|
15
|
+
def value; end
|
16
|
+
|
17
|
+
sig { returns(Time) }
|
18
|
+
def retrieved_at; end
|
19
|
+
|
20
|
+
sig { returns(Symbol) }
|
21
|
+
def source; end
|
22
|
+
|
23
|
+
sig { returns(Float) }
|
24
|
+
def age; end
|
25
|
+
|
26
|
+
sig { returns(T::Boolean) }
|
27
|
+
def from_cache?; end
|
28
|
+
|
29
|
+
sig { returns(T::Boolean) }
|
30
|
+
def computed?; end
|
31
|
+
|
32
|
+
sig { returns(T::Boolean) }
|
33
|
+
def updated?; end
|
34
|
+
|
35
|
+
sig { type_parameters(:T).params(block: T.proc.params(value: ValueType).returns(T.type_parameter(:T))).returns(::TypedCache::Snapshot[T.type_parameter(:T)]) }
|
36
|
+
def map(&block); end
|
37
|
+
|
38
|
+
sig { type_parameters(:T).params(block: T.proc.params(value: ValueType).returns(::TypedCache::Either[Error, T.type_parameter(:T)])).returns(::TypedCache::Either[Error, ::TypedCache::Snapshot[T.type_parameter(:T)]]) }
|
39
|
+
def bind(&block); end
|
40
|
+
|
41
|
+
alias flat_map bind
|
42
|
+
|
43
|
+
class << self
|
44
|
+
sig { type_parameters(:T).params(key: ::TypedCache::CacheKey, value: T.type_parameter(:T)).returns(::TypedCache::Snapshot[T.type_parameter(:T)]) }
|
45
|
+
def cached(key, value); end
|
46
|
+
|
47
|
+
sig { type_parameters(:T).params(key: ::TypedCache::CacheKey, value: T.type_parameter(:T)).returns(::TypedCache::Snapshot[T.type_parameter(:T)]) }
|
48
|
+
def computed(key, value); end
|
49
|
+
|
50
|
+
sig { type_parameters(:T).params(key: ::TypedCache::CacheKey, value: T.type_parameter(:T)).returns(::TypedCache::Snapshot[T.type_parameter(:T)]) }
|
51
|
+
def updated(key, value); end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Store
|
5
|
+
extend T::Generic
|
6
|
+
|
7
|
+
abstract!
|
8
|
+
|
9
|
+
CachedType = type_member
|
10
|
+
|
11
|
+
Error = T.type_alias { TypedCache::Error }
|
12
|
+
Key = T.type_alias { T.any(String, ::TypedCache::CacheKey) }
|
13
|
+
private_constant :Error, :Key
|
14
|
+
|
15
|
+
sig { params(key: Key).returns(::TypedCache::Either[Error, CachedType]) }
|
16
|
+
def read(key); end
|
17
|
+
|
18
|
+
sig { params(keys: T::Array[Key]).returns(::TypedCache::Either[Error, T::Array[::TypedCache::Snapshot[CachedType]]]) }
|
19
|
+
def read_all(keys); end
|
20
|
+
|
21
|
+
sig { params(key: Key, value: CachedType).returns(::TypedCache::Either[Error, ::TypedCache::Snapshot[CachedType]]) }
|
22
|
+
def write(key, value); end
|
23
|
+
|
24
|
+
sig { params(values: T::Hash[Key, CachedType]).returns(::TypedCache::Either[Error, T::Array[::TypedCache::Snapshot[CachedType]]]) }
|
25
|
+
def write_all(values); end
|
26
|
+
|
27
|
+
sig { params(key: Key).returns(::TypedCache::Either[Error, ::TypedCache::Snapshot[CachedType]]) }
|
28
|
+
def delete(key); end
|
29
|
+
|
30
|
+
sig { params(key: Key).returns(::TypedCache::CacheRef[CachedType]) }
|
31
|
+
def ref(key); end
|
32
|
+
|
33
|
+
sig { void }
|
34
|
+
def clear; end
|
35
|
+
|
36
|
+
sig { params(key: Key).returns(T::Boolean) }
|
37
|
+
def key?(key); end
|
38
|
+
|
39
|
+
sig { params(key: Key, block: T.proc.returns(T.nilable(CachedType))).returns(::TypedCache::Either[Error, ::TypedCache::Snapshot[::TypedCache::Maybe[CachedType]]]) }
|
40
|
+
def fetch(key, &block); end
|
41
|
+
|
42
|
+
sig { params(keys: T::Array[Key], block: T.proc.params(key: ::TypedCache::CacheKey).returns(T.nilable(CachedType))).returns(::TypedCache::Either[Error, T::Array[::TypedCache::Snapshot[CachedType]]]) }
|
43
|
+
def fetch_all(keys, &block); end
|
44
|
+
|
45
|
+
sig { returns(::TypedCache::Namespace) }
|
46
|
+
def namespace; end
|
47
|
+
|
48
|
+
sig { params(ns: T.any(::TypedCache::Namespace, String, T::Array[String])).returns(::TypedCache::Store[CachedType]) }
|
49
|
+
def with_namespace(ns); end
|
50
|
+
|
51
|
+
sig { returns(String) }
|
52
|
+
def store_type; end
|
53
|
+
|
54
|
+
sig { returns(T.self_type) }
|
55
|
+
def clone; end
|
56
|
+
|
57
|
+
sig { params(key: Key).returns(::TypedCache::CacheKey) }
|
58
|
+
def namespaced_key(key); end
|
59
|
+
|
60
|
+
sig { returns(::TypedCache::Instrumenter) }
|
61
|
+
def instrumenter; end
|
62
|
+
|
63
|
+
protected
|
64
|
+
|
65
|
+
sig { params(string: String).returns(String) }
|
66
|
+
def snake_case(string); end
|
67
|
+
|
68
|
+
sig { params(namespace: ::TypedCache::Namespace).returns(::TypedCache::Namespace) }
|
69
|
+
def nested_namespace(namespace); end
|
70
|
+
end
|
71
|
+
end
|
data/rbi/typed_cache.rbi
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# typed: strict
|
2
|
+
|
3
|
+
module TypedCache
|
4
|
+
module Private
|
5
|
+
class Configuration < BasicObject
|
6
|
+
class Instrumentation < BasicObject
|
7
|
+
sig { returns(T::Boolean) }
|
8
|
+
attr_accessor :enabled
|
9
|
+
|
10
|
+
sig { returns(String) }
|
11
|
+
attr_accessor :namespace
|
12
|
+
|
13
|
+
sig { returns(Symbol) }
|
14
|
+
attr_accessor :instrumenter
|
15
|
+
end
|
16
|
+
|
17
|
+
sig { returns(String) }
|
18
|
+
attr_accessor :namespace
|
19
|
+
|
20
|
+
sig { returns(String) }
|
21
|
+
attr_accessor :cache_delimiter
|
22
|
+
|
23
|
+
sig { returns(::TypedCache::Private::Configuration::Instrumentation) }
|
24
|
+
def instrumentation; end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class << self
|
29
|
+
sig { params(block: T.proc.params(config: ::TypedCache::Private::Configuration).void).void }
|
30
|
+
def configure(&block); end
|
31
|
+
|
32
|
+
sig { returns(::TypedCache::Private::Configuration) }
|
33
|
+
def config; end
|
34
|
+
|
35
|
+
sig { returns(::TypedCache::CacheBuilder) }
|
36
|
+
def builder; end
|
37
|
+
|
38
|
+
sig { returns(T.class_of(::TypedCache::Backends)) }
|
39
|
+
def backends; end
|
40
|
+
|
41
|
+
sig { returns(T.class_of(::TypedCache::Decorators)) }
|
42
|
+
def decorators; end
|
43
|
+
|
44
|
+
sig { returns(T.class_of(::TypedCache::Instrumenters)) }
|
45
|
+
def instrumenters; end
|
46
|
+
end
|
47
|
+
|
48
|
+
private_constant :Backends, :Decorators, :Instrumenters
|
49
|
+
end
|
@@ -18,16 +18,28 @@ module TypedCache
|
|
18
18
|
|
19
19
|
# @rbs override
|
20
20
|
# : (cache_key) -> either[Error, Snapshot[V]]
|
21
|
-
def
|
21
|
+
def read: ...
|
22
22
|
|
23
23
|
# @rbs override
|
24
24
|
# : (cache_key, V) -> either[Error, Snapshot[V]]
|
25
|
-
def
|
25
|
+
def write: ...
|
26
|
+
|
27
|
+
# @rbs override
|
28
|
+
# : (Hash[cache_key, V]) -> either[Error, Array[Snapshot[V]]]
|
29
|
+
def write_all: ...
|
26
30
|
|
27
31
|
# @rbs override
|
28
32
|
# : (cache_key) -> either[Error, Snapshot[V]]
|
29
33
|
def delete: ...
|
30
34
|
|
35
|
+
# @rbs override
|
36
|
+
# : (Array[cache_key]) -> either[Error, Array[Snapshot[V]]]
|
37
|
+
def read_all: ...
|
38
|
+
|
39
|
+
# @rbs override
|
40
|
+
# : (Array[cache_key]) { (CacheKey) -> V? } -> either[Error, Array[Snapshot[V]]]
|
41
|
+
def fetch_all: ...
|
42
|
+
|
31
43
|
# @rbs override
|
32
44
|
# : (cache_key) -> bool
|
33
45
|
def key?: ...
|
@@ -55,11 +55,11 @@ module TypedCache
|
|
55
55
|
|
56
56
|
# @rbs override
|
57
57
|
# : (cache_key) -> either[Error, Snapshot[V]]
|
58
|
-
def
|
58
|
+
def read: ...
|
59
59
|
|
60
60
|
# @rbs override
|
61
61
|
# : (cache_key, V) -> either[Error, Snapshot[V]]
|
62
|
-
def
|
62
|
+
def write: ...
|
63
63
|
|
64
64
|
# @rbs override
|
65
65
|
# : (cache_key) -> either[Error, Snapshot[V]]
|
@@ -16,11 +16,11 @@ module TypedCache
|
|
16
16
|
|
17
17
|
# Gets a value from the cache as a snapshot
|
18
18
|
# : -> either[Error, Snapshot[V]]
|
19
|
-
def
|
19
|
+
def read: () -> either[Error, Snapshot[V]]
|
20
20
|
|
21
21
|
# Sets a value in the cache and returns it as an updated snapshot
|
22
22
|
# : (V) -> either[Error, Snapshot[V]]
|
23
|
-
def
|
23
|
+
def write: (V) -> either[Error, Snapshot[V]]
|
24
24
|
|
25
25
|
# Deletes the value from the cache and returns the deleted value as a snapshot
|
26
26
|
# : -> either[Error, Snapshot[V]]
|
@@ -77,8 +77,8 @@ module TypedCache
|
|
77
77
|
def scope: [R] (String) -> CacheRef[R]
|
78
78
|
|
79
79
|
# Pattern matching support for Either[Error, Snapshot[V]] results
|
80
|
-
# : [R] (
|
81
|
-
def fold: (
|
80
|
+
# : [R] (^(Error) -> R, ^(Snapshot[V]) -> R) -> R
|
81
|
+
def fold: [R] (^(Error) -> R, ^(Snapshot[V]) -> R) -> R
|
82
82
|
|
83
83
|
# Convenience method to work with the snapshot directly
|
84
84
|
# : [R] () { (Snapshot[V]) -> R } -> either[Error, R]
|
@@ -20,12 +20,12 @@ module TypedCache
|
|
20
20
|
def initialize: (TypedCache::Store[V], instrumenter: Instrumenter) -> void
|
21
21
|
|
22
22
|
# @rbs override
|
23
|
-
# : ->
|
24
|
-
def
|
23
|
+
# : (self) -> self
|
24
|
+
def initialize_copy: ...
|
25
25
|
|
26
26
|
# @rbs override
|
27
|
-
#
|
28
|
-
def
|
27
|
+
# : -> String
|
28
|
+
def store_type: ...
|
29
29
|
|
30
30
|
# Additional methods that might exist on the wrapped store
|
31
31
|
def respond_to_missing?: (untyped method_name, ?untyped include_private) -> untyped
|
@@ -21,6 +21,10 @@ module TypedCache
|
|
21
21
|
|
22
22
|
def right?: () -> bool
|
23
23
|
|
24
|
+
def right_or_else: (^(E) -> void) -> R
|
25
|
+
|
26
|
+
def right_or_raise!: () -> R
|
27
|
+
|
24
28
|
def map: [T] () { (R) -> T } -> either[E, T]
|
25
29
|
|
26
30
|
def bind: [E2, R2] () { (R) -> either[E2, R2] } -> either[E | E2, R2]
|
@@ -36,6 +40,8 @@ module TypedCache
|
|
36
40
|
|
37
41
|
attr_reader error: E
|
38
42
|
|
43
|
+
alias value error
|
44
|
+
|
39
45
|
# : (E) -> void
|
40
46
|
def initialize: (E) -> void
|
41
47
|
|
@@ -47,6 +53,14 @@ module TypedCache
|
|
47
53
|
# : -> false
|
48
54
|
def right?: ...
|
49
55
|
|
56
|
+
# @rbs override
|
57
|
+
# : (^(E) -> void) -> bot
|
58
|
+
def right_or_else: ...
|
59
|
+
|
60
|
+
# @rbs override
|
61
|
+
# : -> bot
|
62
|
+
def right_or_raise!: ...
|
63
|
+
|
50
64
|
# @rbs override
|
51
65
|
# : [T] () { (R) -> T } -> either[E, T]
|
52
66
|
def map: ...
|
@@ -73,6 +87,8 @@ module TypedCache
|
|
73
87
|
|
74
88
|
attr_reader value: R
|
75
89
|
|
90
|
+
alias result value
|
91
|
+
|
76
92
|
# : (R) -> void
|
77
93
|
def initialize: (R) -> void
|
78
94
|
|
@@ -84,6 +100,14 @@ module TypedCache
|
|
84
100
|
# : -> true
|
85
101
|
def right?: ...
|
86
102
|
|
103
|
+
# @rbs override
|
104
|
+
# : (^(E) -> void) -> R
|
105
|
+
def right_or_else: ...
|
106
|
+
|
107
|
+
# @rbs override
|
108
|
+
# : -> R
|
109
|
+
def right_or_raise!: ...
|
110
|
+
|
87
111
|
# @rbs override
|
88
112
|
# : [T] () { (R) -> T } -> either[E, T]
|
89
113
|
def map: ...
|
@@ -14,17 +14,17 @@ module TypedCache
|
|
14
14
|
# : -> String
|
15
15
|
def namespace: () -> String
|
16
16
|
|
17
|
-
# @rbs (String, String, **untyped) -> Hash[Symbol, untyped]
|
18
|
-
def build_payload: (String, String, **untyped) -> Hash[Symbol, untyped]
|
19
|
-
|
20
17
|
# @rbs () -> bool
|
21
18
|
def enabled?: () -> bool
|
22
19
|
|
20
|
+
private
|
21
|
+
|
22
|
+
# @rbs (String, String, **untyped) -> Hash[Symbol, untyped]
|
23
|
+
def build_payload: (String, String, **untyped) -> Hash[Symbol, untyped]
|
24
|
+
|
23
25
|
# @rbs (String) -> String
|
24
26
|
def event_name: (String) -> String
|
25
27
|
|
26
|
-
private
|
27
|
-
|
28
28
|
# @rbs () -> TypedCache::_TypedCacheInstrumentationConfig
|
29
29
|
def config: () -> TypedCache::_TypedCacheInstrumentationConfig
|
30
30
|
end
|
@@ -24,6 +24,9 @@ module TypedCache
|
|
24
24
|
# @rbs (String) -> maybe[class]
|
25
25
|
def get: (String) -> maybe[class]
|
26
26
|
|
27
|
+
# @rbs () -> void
|
28
|
+
def clear_namespace_cache: () -> void
|
29
|
+
|
27
30
|
# @rbs () -> Concurrent::Map[String, Class[Instrumenter & NamespacedSingleton]]
|
28
31
|
def namespace_cache: () -> Concurrent::Map[String, Class[Instrumenter & NamespacedSingleton]]
|
29
32
|
end
|
@@ -15,6 +15,8 @@ module TypedCache
|
|
15
15
|
# @rbs () -> Registry[Symbol, Class[Instrumenter]]
|
16
16
|
def self.registry: () -> Registry[Symbol, Class[Instrumenter]]
|
17
17
|
|
18
|
+
def register: (Symbol, Class[Instrumenter]) -> void
|
19
|
+
|
18
20
|
def resolve: (Symbol, **untyped) -> either[Error, Instrumenter]
|
19
21
|
|
20
22
|
def available: () -> Array[Symbol]
|