typed_cache 0.1.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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/LICENSE +201 -0
  4. data/README.md +168 -0
  5. data/examples.md +190 -0
  6. data/lib/typed_cache/backend.rb +16 -0
  7. data/lib/typed_cache/backends/active_support.rb +113 -0
  8. data/lib/typed_cache/backends/memory.rb +166 -0
  9. data/lib/typed_cache/backends.rb +34 -0
  10. data/lib/typed_cache/cache_builder.rb +77 -0
  11. data/lib/typed_cache/cache_key.rb +45 -0
  12. data/lib/typed_cache/cache_ref.rb +155 -0
  13. data/lib/typed_cache/clock.rb +23 -0
  14. data/lib/typed_cache/decorator.rb +12 -0
  15. data/lib/typed_cache/decorators.rb +35 -0
  16. data/lib/typed_cache/either.rb +121 -0
  17. data/lib/typed_cache/errors.rb +64 -0
  18. data/lib/typed_cache/instrumentation.rb +112 -0
  19. data/lib/typed_cache/maybe.rb +92 -0
  20. data/lib/typed_cache/namespace.rb +162 -0
  21. data/lib/typed_cache/registry.rb +55 -0
  22. data/lib/typed_cache/snapshot.rb +72 -0
  23. data/lib/typed_cache/store/instrumented.rb +83 -0
  24. data/lib/typed_cache/store.rb +152 -0
  25. data/lib/typed_cache/version.rb +5 -0
  26. data/lib/typed_cache.rb +58 -0
  27. data/sig/generated/typed_cache/backend.rbs +17 -0
  28. data/sig/generated/typed_cache/backends/active_support.rbs +56 -0
  29. data/sig/generated/typed_cache/backends/memory.rbs +95 -0
  30. data/sig/generated/typed_cache/backends.rbs +21 -0
  31. data/sig/generated/typed_cache/cache_builder.rbs +37 -0
  32. data/sig/generated/typed_cache/cache_key.rbs +33 -0
  33. data/sig/generated/typed_cache/cache_ref.rbs +91 -0
  34. data/sig/generated/typed_cache/clock.rbs +15 -0
  35. data/sig/generated/typed_cache/decorator.rbs +14 -0
  36. data/sig/generated/typed_cache/decorators.rbs +25 -0
  37. data/sig/generated/typed_cache/either.rbs +106 -0
  38. data/sig/generated/typed_cache/errors.rbs +51 -0
  39. data/sig/generated/typed_cache/instrumentation.rbs +30 -0
  40. data/sig/generated/typed_cache/maybe.rbs +85 -0
  41. data/sig/generated/typed_cache/namespace.rbs +130 -0
  42. data/sig/generated/typed_cache/registry.rbs +25 -0
  43. data/sig/generated/typed_cache/snapshot.rbs +50 -0
  44. data/sig/generated/typed_cache/store/instrumented.rbs +37 -0
  45. data/sig/generated/typed_cache/store.rbs +104 -0
  46. data/sig/generated/typed_cache/version.rbs +5 -0
  47. data/sig/generated/typed_cache.rbs +34 -0
  48. data/sig/handwritten/gems/zeitwerk/2.7/zeitwerk.rbs +9 -0
  49. data/typed_cache.gemspec +42 -0
  50. data.tar.gz.sig +0 -0
  51. metadata +228 -0
  52. metadata.gz.sig +0 -0
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/typed_cache/version.rb'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'typed_cache'
7
+ spec.version = TypedCache::VERSION
8
+ spec.authors = ['Autumn Winter']
9
+ spec.email = ['glossawy@sphorb.email']
10
+ spec.homepage = 'https://github.com/glossawy/typed_cache'
11
+ spec.summary = 'A robust, type-safe caching library that provides explicit, predictable cache interactions with rich, context-aware results'
12
+ spec.description = <<~DESCRIPTION
13
+ TypedCache is a Ruby caching library designed to eliminate common caching pitfalls by providing a monadic, type-safe API that makes cache operations explicit and predictable. Cache interactions are first-class operations with
14
+ comprehensive error handling and transparent state management. The library supports wrapping other caching libraries via custom backends and ActiveSupport::Cache is supported out of the box.
15
+ DESCRIPTION
16
+ spec.license = 'Apache-2.0'
17
+
18
+ spec.metadata = {
19
+ 'issue_tracker_uri' => 'https://github.com/glossawy/typed_cache/issues',
20
+ 'changelog_uri' => "https://github.com/glossawy/typed_cache/blob/main/VERSIONS.adoc##{TypedCache::VERSION.delete(".")}",
21
+ 'license_uri' => 'https://github.com/glossawy/typed_cache/blob/main/LICENSE',
22
+ 'label' => 'caching',
23
+ 'labels' => ['typed_cache', 'ruby', 'caching', 'type-safety', 'rails', 'rbs'].join(','),
24
+ 'rubygems_mfa_required' => 'true',
25
+ 'source_code_uri' => 'https://github.com/glossawy/typed_cache',
26
+ }
27
+
28
+ spec.signing_key = Gem.default_key_path
29
+ spec.cert_chain = [Gem.default_cert_path]
30
+
31
+ spec.required_ruby_version = '>= 3.2.0'
32
+ spec.add_dependency('concurrent-ruby', '~> 1.3.5')
33
+ spec.add_dependency('concurrent-ruby-edge', '~>0.7.2')
34
+ spec.add_dependency('dry-configurable', '~> 1.0')
35
+ spec.add_dependency('dry-struct', '~> 1.0')
36
+ spec.add_dependency('dry-types', '~>1.0')
37
+ spec.add_dependency('multi_json', '~> 1.17')
38
+ spec.add_dependency('zeitwerk', '~> 2.7')
39
+
40
+ spec.extra_rdoc_files = Dir['README*', 'LICENSE*', 'examples*']
41
+ spec.files = Dir['*.gemspec', 'lib/**/*', 'sig/**/*']
42
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: typed_cache
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Autumn Winter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEfDCCAuSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMREwDwYDVQQDDAhnbG9z
14
+ c2F3eTEWMBQGCgmSJomT8ixkARkWBnNwaG9yYjEVMBMGCgmSJomT8ixkARkWBWVt
15
+ YWlsMB4XDTI1MDcyMTE4MDcxNFoXDTI2MDcyMTE4MDcxNFowQjERMA8GA1UEAwwI
16
+ Z2xvc3Nhd3kxFjAUBgoJkiaJk/IsZAEZFgZzcGhvcmIxFTATBgoJkiaJk/IsZAEZ
17
+ FgVlbWFpbDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAIV0CQvrRsQK
18
+ igtzC01P6ZS724kzwjsQayvG5AVAYmdoViVYzy2QCrj5IwCd/XpU8qPCUiOc3Eiz
19
+ ronHK4+0TOKg35sjlTQapBdOzDbGsbIgZZPe+ySKHnz5yev9Nn5XS9BGrJWLVm5O
20
+ NWh5zzkxCgALKFNwr1zNbmTDlbRDYRTFhNGOq0DI/aWpDKbGF44rDxNW82cVzVrt
21
+ sLkIjZNmoMiC5PCqcoLqB9TD6Ucilw4sQOObCmRGAaQZw4uiJCwj37qsIh9E8nBh
22
+ 3HBA2f35uov5XIB2+lx8g8m4yVlYQvO5Ur7feEOr/HsFvEjfAEosdYP7/E5Um+5h
23
+ pa/2ZUL1ifLVW2fCu5K114a6Vjs7XLER2arSg0vi9aYSVlUYdJhmLC1xOt2NqFps
24
+ WX3X883QbCQHOp3Amy4Vf/N5dNvUS3EltBQGv3GZQmgJstr8wOxE8PdePVnPx3Nm
25
+ Ed6ypD0QYQCGxtIICxTajpbc5z8F+acyBjUFP9kztsT8AOo40nhU1QIDAQABo30w
26
+ ezAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUlS22glqe5pGJ47eh
27
+ 9VmYtzFNqBowIAYDVR0RBBkwF4EVZ2xvc3Nhd3lAc3Bob3JiLmVtYWlsMCAGA1Ud
28
+ EgQZMBeBFWdsb3NzYXd5QHNwaG9yYi5lbWFpbDANBgkqhkiG9w0BAQsFAAOCAYEA
29
+ SjzJasS4Ol22zRRTHlXZfBrNlL0n3g7lxcDW6xNA/xqkh0xUTM3NCMhCEVTwanOB
30
+ iaxC8TaX7mDDfoYmwzcZfm14GE0F6nUXgAgiDPrvJsola1rpdCcqBC4iGbVWFbEb
31
+ 4Aus3JF1Isdy6A+KMSS9/2GasD7Hyq/yA3/lA7GhLsPJiN0+txhIB+JbKce/tdc8
32
+ M7JmrJjHQP5Ac0IIUszVaXmV8+6+SL7YD6XTtkDpeqUkNgD5HFzjxjZkNmKXi044
33
+ kn+ALUplkpDcyKVNr6vqYy1AmItXnhstDTxNJltcO4XbwRVppY/hF50K7Z95NaeZ
34
+ UAcrhCENRLMhFGEEIntWC0L/w5seHWmDggf9JeB37oBcVw2sPorK6OAwvqk9a7Bt
35
+ uuhUq525FXA3gYeLAfnCSHNm7D1H7whsXYd3z+gKvEhSEQPb3mSBQ+31TDFmA5k7
36
+ q7YL3dwhxKPXtnAboI+30XBImpdizFG9Nyqgzgj/kD0QwVzL0QsVdVWnNTJXrm4n
37
+ -----END CERTIFICATE-----
38
+ date: 2025-07-21 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: concurrent-ruby
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 1.3.5
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.5
54
+ - !ruby/object:Gem::Dependency
55
+ name: concurrent-ruby-edge
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.7.2
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.7.2
68
+ - !ruby/object:Gem::Dependency
69
+ name: dry-configurable
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: dry-struct
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: dry-types
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: multi_json
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.17'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.17'
124
+ - !ruby/object:Gem::Dependency
125
+ name: zeitwerk
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.7'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.7'
138
+ description: |
139
+ TypedCache is a Ruby caching library designed to eliminate common caching pitfalls by providing a monadic, type-safe API that makes cache operations explicit and predictable. Cache interactions are first-class operations with
140
+ comprehensive error handling and transparent state management. The library supports wrapping other caching libraries via custom backends and ActiveSupport::Cache is supported out of the box.
141
+ email:
142
+ - glossawy@sphorb.email
143
+ executables: []
144
+ extensions: []
145
+ extra_rdoc_files:
146
+ - README.md
147
+ - LICENSE
148
+ - examples.md
149
+ files:
150
+ - LICENSE
151
+ - README.md
152
+ - examples.md
153
+ - lib/typed_cache.rb
154
+ - lib/typed_cache/backend.rb
155
+ - lib/typed_cache/backends.rb
156
+ - lib/typed_cache/backends/active_support.rb
157
+ - lib/typed_cache/backends/memory.rb
158
+ - lib/typed_cache/cache_builder.rb
159
+ - lib/typed_cache/cache_key.rb
160
+ - lib/typed_cache/cache_ref.rb
161
+ - lib/typed_cache/clock.rb
162
+ - lib/typed_cache/decorator.rb
163
+ - lib/typed_cache/decorators.rb
164
+ - lib/typed_cache/either.rb
165
+ - lib/typed_cache/errors.rb
166
+ - lib/typed_cache/instrumentation.rb
167
+ - lib/typed_cache/maybe.rb
168
+ - lib/typed_cache/namespace.rb
169
+ - lib/typed_cache/registry.rb
170
+ - lib/typed_cache/snapshot.rb
171
+ - lib/typed_cache/store.rb
172
+ - lib/typed_cache/store/instrumented.rb
173
+ - lib/typed_cache/version.rb
174
+ - sig/generated/typed_cache.rbs
175
+ - sig/generated/typed_cache/backend.rbs
176
+ - sig/generated/typed_cache/backends.rbs
177
+ - sig/generated/typed_cache/backends/active_support.rbs
178
+ - sig/generated/typed_cache/backends/memory.rbs
179
+ - sig/generated/typed_cache/cache_builder.rbs
180
+ - sig/generated/typed_cache/cache_key.rbs
181
+ - sig/generated/typed_cache/cache_ref.rbs
182
+ - sig/generated/typed_cache/clock.rbs
183
+ - sig/generated/typed_cache/decorator.rbs
184
+ - sig/generated/typed_cache/decorators.rbs
185
+ - sig/generated/typed_cache/either.rbs
186
+ - sig/generated/typed_cache/errors.rbs
187
+ - sig/generated/typed_cache/instrumentation.rbs
188
+ - sig/generated/typed_cache/maybe.rbs
189
+ - sig/generated/typed_cache/namespace.rbs
190
+ - sig/generated/typed_cache/registry.rbs
191
+ - sig/generated/typed_cache/snapshot.rbs
192
+ - sig/generated/typed_cache/store.rbs
193
+ - sig/generated/typed_cache/store/instrumented.rbs
194
+ - sig/generated/typed_cache/version.rbs
195
+ - sig/handwritten/gems/zeitwerk/2.7/zeitwerk.rbs
196
+ - typed_cache.gemspec
197
+ homepage: https://github.com/glossawy/typed_cache
198
+ licenses:
199
+ - Apache-2.0
200
+ metadata:
201
+ issue_tracker_uri: https://github.com/glossawy/typed_cache/issues
202
+ changelog_uri: https://github.com/glossawy/typed_cache/blob/main/VERSIONS.adoc#011
203
+ license_uri: https://github.com/glossawy/typed_cache/blob/main/LICENSE
204
+ label: caching
205
+ labels: typed_cache,ruby,caching,type-safety,rails,rbs
206
+ rubygems_mfa_required: 'true'
207
+ source_code_uri: https://github.com/glossawy/typed_cache
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: 3.2.0
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubygems_version: 3.5.22
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: A robust, type-safe caching library that provides explicit, predictable cache
227
+ interactions with rich, context-aware results
228
+ test_files: []
metadata.gz.sig ADDED
Binary file