momento 0.1.0 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.release-please-manifest.json +3 -0
  3. data/.rubocop.yml +26 -1
  4. data/.ruby-version +1 -1
  5. data/.yardopts +2 -0
  6. data/CHANGELOG.md +119 -0
  7. data/CONTRIBUTING.md +6 -7
  8. data/Gemfile +1 -6
  9. data/Gemfile.lock +34 -24
  10. data/README.md +143 -38
  11. data/README.template.md +93 -0
  12. data/examples/.gitignore +1 -0
  13. data/examples/Gemfile +5 -0
  14. data/examples/README.md +34 -0
  15. data/examples/compact.rb +47 -0
  16. data/examples/example.rb +72 -0
  17. data/examples/file.rb +58 -0
  18. data/lib/README-generating-pb.txt +1 -1
  19. data/lib/momento/auth/credential_provider.rb +78 -0
  20. data/lib/momento/cache_client.rb +457 -0
  21. data/lib/momento/collection_ttl.rb +79 -0
  22. data/lib/momento/config/configuration.rb +16 -0
  23. data/lib/momento/config/configurations.rb +17 -0
  24. data/lib/momento/config/transport/grpc_configuration.rb +25 -0
  25. data/lib/momento/config/transport/static_transport_strategy.rb +12 -0
  26. data/lib/momento/config/transport/transport_strategy.rb +16 -0
  27. data/lib/momento/error/grpc_details.rb +38 -0
  28. data/lib/momento/error/transport_details.rb +20 -0
  29. data/lib/momento/error/types.rb +247 -0
  30. data/lib/momento/error.rb +54 -0
  31. data/lib/momento/error_builder.rb +50 -0
  32. data/lib/momento/exceptions.rb +7 -0
  33. data/lib/momento/generated/README.md +16 -0
  34. data/lib/momento/generated/auth_pb.rb +52 -0
  35. data/lib/momento/generated/auth_services_pb.rb +27 -0
  36. data/lib/momento/generated/cacheclient_pb.rb +203 -0
  37. data/lib/momento/generated/cacheclient_services_pb.rb +90 -0
  38. data/lib/momento/generated/cacheping_pb.rb +38 -0
  39. data/lib/momento/generated/cacheping_services_pb.rb +23 -0
  40. data/lib/momento/generated/cachepubsub_pb.rb +48 -0
  41. data/lib/momento/generated/cachepubsub_services_pb.rb +56 -0
  42. data/lib/momento/generated/common_pb.rb +44 -0
  43. data/lib/momento/generated/controlclient_pb.rb +72 -0
  44. data/lib/momento/generated/controlclient_services_pb.rb +35 -0
  45. data/lib/momento/generated/extensions_pb.rb +35 -0
  46. data/lib/momento/generated/generate_protos.sh +47 -0
  47. data/lib/momento/generated/leaderboard_pb.rb +56 -0
  48. data/lib/momento/generated/leaderboard_services_pb.rb +57 -0
  49. data/lib/momento/generated/permissionmessages_pb.rb +48 -0
  50. data/lib/momento/generated/token_pb.rb +43 -0
  51. data/lib/momento/generated/token_services_pb.rb +23 -0
  52. data/lib/momento/generated/webhook_pb.rb +49 -0
  53. data/lib/momento/generated/webhook_services_pb.rb +32 -0
  54. data/lib/momento/{create_cache_response.rb → response/control/create_cache_response.rb} +33 -24
  55. data/lib/momento/{delete_cache_response.rb → response/control/delete_cache_response.rb} +28 -21
  56. data/lib/momento/response/control/list_caches_response.rb +80 -0
  57. data/lib/momento/response/delete_response.rb +45 -0
  58. data/lib/momento/response/error.rb +10 -3
  59. data/lib/momento/response/get_response.rb +107 -0
  60. data/lib/momento/response/response.rb +67 -0
  61. data/lib/momento/response/response_builder.rb +18 -0
  62. data/lib/momento/response/set_response.rb +59 -0
  63. data/lib/momento/response/sort_order.rb +11 -0
  64. data/lib/momento/response/sorted_set/sorted_set_fetch_response.rb +107 -0
  65. data/lib/momento/response/sorted_set/sorted_set_put_element_response.rb +44 -0
  66. data/lib/momento/response/sorted_set/sorted_set_put_elements_response.rb +44 -0
  67. data/lib/momento/ttl.rb +48 -0
  68. data/lib/momento/version.rb +2 -1
  69. data/lib/momento.rb +6 -1
  70. data/momento.gemspec +6 -3
  71. data/release-please-config.json +15 -0
  72. data/sig/momento/auth/credential_provider.rbs +11 -0
  73. data/sig/momento/cache_client.rbs +12 -0
  74. data/sig/momento/collection_ttl.rbs +22 -0
  75. data/sig/momento/config/configuration.rbs +9 -0
  76. data/sig/momento/config/configurations.rbs +9 -0
  77. data/sig/momento/config/transport/grpc_configuration.rbs +7 -0
  78. data/sig/momento/config/transport/transport_strategy.rbs +7 -0
  79. data/sig/momento/list_caches_response.rbs +7 -0
  80. data/sig/momento/sorted_set_fetch_response.rbs +13 -0
  81. data/sig/momento/sorted_set_put_element_response.rbs +5 -0
  82. data/sig/momento/sorted_set_put_elements_response.rbs +5 -0
  83. metadata +127 -28
  84. data/examples/basic.rb +0 -45
  85. data/lib/momento/cacheclient_pb.rb +0 -332
  86. data/lib/momento/cacheclient_services_pb.rb +0 -42
  87. data/lib/momento/controlclient_pb.rb +0 -71
  88. data/lib/momento/controlclient_services_pb.rb +0 -29
  89. data/lib/momento/delete_response.rb +0 -33
  90. data/lib/momento/get_response.rb +0 -80
  91. data/lib/momento/list_caches_response.rb +0 -53
  92. data/lib/momento/response.rb +0 -17
  93. data/lib/momento/set_response.rb +0 -39
  94. data/lib/momento/simple_cache_client.rb +0 -204
@@ -0,0 +1,48 @@
1
+ module Momento
2
+ # Validates and represents a time-to-live.
3
+ #
4
+ # @private
5
+ class Ttl
6
+ class << self
7
+ # Create a Momento::Ttl object.
8
+ #
9
+ # If given a Momento::Ttl it will return it.
10
+ # This means you don't have to check if it's already a Momento::Ttl
11
+ #
12
+ # @example
13
+ # ttl = Momento::Ttl.to_ttl(ttl)
14
+ # @param ttl [Numeric,Momento::Ttl] the TTL in seconds, or an existing Ttl object
15
+ # @return [Momento::Ttl]
16
+ def to_ttl(ttl)
17
+ return ttl if ttl.is_a?(self)
18
+
19
+ raise ArgumentError, "ttl '#{ttl}' is not Numeric" unless ttl.is_a?(Numeric)
20
+ raise ArgumentError, "ttl #{ttl} is less than 0" if ttl.negative?
21
+
22
+ new(ttl)
23
+ end
24
+ end
25
+
26
+ # @return [Numeric] the TTL in seconds
27
+ attr_reader :seconds
28
+
29
+ def initialize(ttl)
30
+ @seconds = ttl
31
+ end
32
+
33
+ # @return [Numeric] the TTL in milliseconds
34
+ def milliseconds
35
+ @seconds * 1_000
36
+ end
37
+
38
+ def ==(other)
39
+ return false unless other.is_a?(Momento::Ttl)
40
+
41
+ milliseconds == other.milliseconds
42
+ end
43
+
44
+ def to_s
45
+ "#{seconds} seconds"
46
+ end
47
+ end
48
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Momento
4
- VERSION = "0.1.0"
4
+ # This gem's version.
5
+ VERSION = "0.4.9"
5
6
  end
data/lib/momento.rb CHANGED
@@ -1,5 +1,10 @@
1
1
  require_relative 'momento/version'
2
- require_relative 'momento/simple_cache_client'
2
+ require_relative 'momento/cache_client'
3
+ require_relative 'momento/collection_ttl'
4
+ require_relative 'momento/auth/credential_provider'
5
+ require_relative 'momento/config/configuration'
6
+ require_relative 'momento/config/configurations'
7
+ require_relative 'momento/response/sort_order'
3
8
 
4
9
  # Top level namespace for all Momento code.
5
10
  module Momento
data/momento.gemspec CHANGED
@@ -32,13 +32,16 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'bundler', "~> 2.3"
33
33
  spec.add_development_dependency 'factory_bot', "~> 6.2.1"
34
34
  spec.add_development_dependency 'faker', "~> 3.0"
35
+ spec.add_development_dependency 'jwt', '~> 2'
36
+ spec.add_development_dependency 'pry-byebug', '~> 3'
37
+ spec.add_development_dependency 'rake', '~> 13.0'
35
38
  spec.add_development_dependency "rspec", "~> 3.12"
36
- spec.add_development_dependency "rubocop", "~> 3.18"
39
+ spec.add_development_dependency "rubocop", "~> 1.38"
37
40
  spec.add_development_dependency 'rubocop-performance', '~> 1.15'
38
41
  spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
39
42
  spec.add_development_dependency 'rubocop-rspec', '~> 2.15'
40
43
  spec.add_development_dependency 'simplecov', '~> 0.21'
44
+ spec.add_development_dependency 'yard', '~> 0.9'
41
45
 
42
- spec.add_dependency "grpc", '~> 1'
43
- spec.add_dependency 'jwt', '~> 2'
46
+ spec.add_dependency "grpc", '~> 1.62'
44
47
  end
@@ -0,0 +1,15 @@
1
+ {
2
+ "packages": {
3
+ ".": {
4
+ "changelog-path": "CHANGELOG.md",
5
+ "release-type": "ruby",
6
+ "bump-minor-pre-major": true,
7
+ "bump-patch-for-minor-pre-major": false,
8
+ "draft": false,
9
+ "prerelease": false,
10
+ "package-name": "momento",
11
+ "bootstrap-sha": "dd1ff65ceee97237bc75f75477cda6243df5c9e8"
12
+ }
13
+ },
14
+ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
15
+ }
@@ -0,0 +1,11 @@
1
+ module Momento
2
+ class CredentialProvider
3
+ def self.from_env_var: -> CredentialProvider
4
+
5
+ def self.from_string: -> CredentialProvider
6
+
7
+ attr_reader api_key: String
8
+ attr_reader cache_endpoint: String
9
+ attr_reader control_endpoint: String
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module Momento
2
+ class CacheClient
3
+
4
+ def sorted_set_fetch_by_score: (cache_name: String, sorted_set_name: String, min_score: Float | nil, max_score: Float | nil, sort_order: Symbol, offset: Integer, count: Integer) -> SortedSetFetchResponse
5
+
6
+ def sorted_set_put_element: (cache_name: String, sorted_set_name: String, value: String, score: Float, collection_ttl: CollectionTtl) -> SortedSetPutElementResponse
7
+
8
+ type value_score_pair = [String, Float]
9
+ type value_score_hash = { value: String, score: Float }
10
+ def sorted_set_put_elements: (cache_name: String, sorted_set_name: String, elements: (Hash[String, Float] | Array[value_score_pair] | Array[value_score_hash]), collection_ttl: CollectionTtl) -> SortedSetPutElementsResponse
11
+ end
12
+ end
@@ -0,0 +1,22 @@
1
+ module Momento
2
+ class CollectionTtl
3
+ def self.from_cache_ttl: -> CollectionTtl
4
+
5
+ def self.of: -> CollectionTtl
6
+
7
+ def self.refresh_ttl_if_provided: -> CollectionTtl
8
+
9
+ attr_reader refresh_ttl: bool
10
+ attr_reader ttl_seconds: (Integer | nil)
11
+
12
+ def initialize: (ttl_seconds: (Integer | nil), refresh_ttl: bool) -> CollectionTtl
13
+
14
+ def ttl_milliseconds: -> (Integer | nil)
15
+
16
+ def with_no_refresh_ttl_on_updates: -> CollectionTtl
17
+
18
+ def with_refresh_ttl_on_updates: -> CollectionTtl
19
+
20
+ def with_ttl_if_absent: -> CollectionTtl
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ module Momento
2
+ module Cache
3
+ class Configuration
4
+ def self.with_transport_strategy: -> Cache::Configuration
5
+
6
+ attr_reader transport_strategy: TransportStrategy
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Momento
2
+ module Cache
3
+ module Configurations
4
+ class Laptop
5
+ self.latest: -> Cache::Configuration
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module Momento
2
+ class GrpcConfiguration
3
+ def self.with_deadline: -> GrpcConfiguration
4
+
5
+ attr_reader deadline: Integer
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Momento
2
+ class TransportStrategy
3
+ def self.with_grpc_configuration: -> TransportStrategy
4
+
5
+ attr_reader grpc_configuration: GrpcConfiguration
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Momento
2
+ class ListCachesResponse
3
+ def success?: -> bool
4
+
5
+ def cache_names: -> (Array[String] | nil)
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ module Momento
2
+ class SortedSetFetchResponse
3
+ def hit?: -> bool
4
+
5
+ def miss?: -> bool
6
+
7
+ alias value value_string_elements
8
+
9
+ def value_bytes_elements: -> (Array[{ value: String, score: Float }] | nil)
10
+
11
+ def value_string_elements: -> (Array[{ value: String, score: Float }] | nil)
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module Momento
2
+ class SortedSetPutElementResponse
3
+ def success?: -> bool
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Momento
2
+ class SortedSetPutElementsResponse
3
+ def success?: -> bool
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: momento
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Momento
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-21 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jwt
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '13.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '13.0'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: rspec
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +114,14 @@ dependencies:
72
114
  requirements:
73
115
  - - "~>"
74
116
  - !ruby/object:Gem::Version
75
- version: '3.18'
117
+ version: '1.38'
76
118
  type: :development
77
119
  prerelease: false
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
122
  - - "~>"
81
123
  - !ruby/object:Gem::Version
82
- version: '3.18'
124
+ version: '1.38'
83
125
  - !ruby/object:Gem::Dependency
84
126
  name: rubocop-performance
85
127
  requirement: !ruby/object:Gem::Requirement
@@ -137,33 +179,33 @@ dependencies:
137
179
  - !ruby/object:Gem::Version
138
180
  version: '0.21'
139
181
  - !ruby/object:Gem::Dependency
140
- name: grpc
182
+ name: yard
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - "~>"
144
186
  - !ruby/object:Gem::Version
145
- version: '1'
146
- type: :runtime
187
+ version: '0.9'
188
+ type: :development
147
189
  prerelease: false
148
190
  version_requirements: !ruby/object:Gem::Requirement
149
191
  requirements:
150
192
  - - "~>"
151
193
  - !ruby/object:Gem::Version
152
- version: '1'
194
+ version: '0.9'
153
195
  - !ruby/object:Gem::Dependency
154
- name: jwt
196
+ name: grpc
155
197
  requirement: !ruby/object:Gem::Requirement
156
198
  requirements:
157
199
  - - "~>"
158
200
  - !ruby/object:Gem::Version
159
- version: '2'
201
+ version: '1.62'
160
202
  type: :runtime
161
203
  prerelease: false
162
204
  version_requirements: !ruby/object:Gem::Requirement
163
205
  requirements:
164
206
  - - "~>"
165
207
  - !ruby/object:Gem::Version
166
- version: '2'
208
+ version: '1.62'
167
209
  description: Momento is a fast, simple, pay-as-you-go caching solution.
168
210
  email:
169
211
  - eng-deveco@momentohq.com
@@ -172,34 +214,91 @@ extensions: []
172
214
  extra_rdoc_files: []
173
215
  files:
174
216
  - ".editorconfig"
217
+ - ".release-please-manifest.json"
175
218
  - ".rspec"
176
219
  - ".rubocop.yml"
177
220
  - ".ruby-version"
221
+ - ".yardopts"
222
+ - CHANGELOG.md
178
223
  - CONTRIBUTING.md
179
224
  - Gemfile
180
225
  - Gemfile.lock
181
226
  - LICENSE.txt
182
227
  - README.md
228
+ - README.template.md
183
229
  - Rakefile
184
- - examples/basic.rb
230
+ - examples/.gitignore
231
+ - examples/Gemfile
232
+ - examples/README.md
233
+ - examples/compact.rb
234
+ - examples/example.rb
235
+ - examples/file.rb
185
236
  - lib/README-generating-pb.txt
186
237
  - lib/momento.rb
187
- - lib/momento/cacheclient_pb.rb
188
- - lib/momento/cacheclient_services_pb.rb
189
- - lib/momento/controlclient_pb.rb
190
- - lib/momento/controlclient_services_pb.rb
191
- - lib/momento/create_cache_response.rb
192
- - lib/momento/delete_cache_response.rb
193
- - lib/momento/delete_response.rb
194
- - lib/momento/get_response.rb
195
- - lib/momento/list_caches_response.rb
196
- - lib/momento/response.rb
238
+ - lib/momento/auth/credential_provider.rb
239
+ - lib/momento/cache_client.rb
240
+ - lib/momento/collection_ttl.rb
241
+ - lib/momento/config/configuration.rb
242
+ - lib/momento/config/configurations.rb
243
+ - lib/momento/config/transport/grpc_configuration.rb
244
+ - lib/momento/config/transport/static_transport_strategy.rb
245
+ - lib/momento/config/transport/transport_strategy.rb
246
+ - lib/momento/error.rb
247
+ - lib/momento/error/grpc_details.rb
248
+ - lib/momento/error/transport_details.rb
249
+ - lib/momento/error/types.rb
250
+ - lib/momento/error_builder.rb
251
+ - lib/momento/exceptions.rb
252
+ - lib/momento/generated/README.md
253
+ - lib/momento/generated/auth_pb.rb
254
+ - lib/momento/generated/auth_services_pb.rb
255
+ - lib/momento/generated/cacheclient_pb.rb
256
+ - lib/momento/generated/cacheclient_services_pb.rb
257
+ - lib/momento/generated/cacheping_pb.rb
258
+ - lib/momento/generated/cacheping_services_pb.rb
259
+ - lib/momento/generated/cachepubsub_pb.rb
260
+ - lib/momento/generated/cachepubsub_services_pb.rb
261
+ - lib/momento/generated/common_pb.rb
262
+ - lib/momento/generated/controlclient_pb.rb
263
+ - lib/momento/generated/controlclient_services_pb.rb
264
+ - lib/momento/generated/extensions_pb.rb
265
+ - lib/momento/generated/generate_protos.sh
266
+ - lib/momento/generated/leaderboard_pb.rb
267
+ - lib/momento/generated/leaderboard_services_pb.rb
268
+ - lib/momento/generated/permissionmessages_pb.rb
269
+ - lib/momento/generated/token_pb.rb
270
+ - lib/momento/generated/token_services_pb.rb
271
+ - lib/momento/generated/webhook_pb.rb
272
+ - lib/momento/generated/webhook_services_pb.rb
273
+ - lib/momento/response/control/create_cache_response.rb
274
+ - lib/momento/response/control/delete_cache_response.rb
275
+ - lib/momento/response/control/list_caches_response.rb
276
+ - lib/momento/response/delete_response.rb
197
277
  - lib/momento/response/error.rb
198
- - lib/momento/set_response.rb
199
- - lib/momento/simple_cache_client.rb
278
+ - lib/momento/response/get_response.rb
279
+ - lib/momento/response/response.rb
280
+ - lib/momento/response/response_builder.rb
281
+ - lib/momento/response/set_response.rb
282
+ - lib/momento/response/sort_order.rb
283
+ - lib/momento/response/sorted_set/sorted_set_fetch_response.rb
284
+ - lib/momento/response/sorted_set/sorted_set_put_element_response.rb
285
+ - lib/momento/response/sorted_set/sorted_set_put_elements_response.rb
286
+ - lib/momento/ttl.rb
200
287
  - lib/momento/version.rb
201
288
  - momento.gemspec
289
+ - release-please-config.json
290
+ - sig/momento/auth/credential_provider.rbs
291
+ - sig/momento/cache_client.rbs
202
292
  - sig/momento/client.rbs
293
+ - sig/momento/collection_ttl.rbs
294
+ - sig/momento/config/configuration.rbs
295
+ - sig/momento/config/configurations.rbs
296
+ - sig/momento/config/transport/grpc_configuration.rbs
297
+ - sig/momento/config/transport/transport_strategy.rbs
298
+ - sig/momento/list_caches_response.rbs
299
+ - sig/momento/sorted_set_fetch_response.rbs
300
+ - sig/momento/sorted_set_put_element_response.rbs
301
+ - sig/momento/sorted_set_put_elements_response.rbs
203
302
  homepage: https://github.com/momentohq/client-sdk-ruby
204
303
  licenses:
205
304
  - Apache-2.0
@@ -207,7 +306,7 @@ metadata:
207
306
  homepage_uri: https://github.com/momentohq/client-sdk-ruby
208
307
  rubygems_mfa_required: 'true'
209
308
  source_code_uri: https://github.com/momentohq/client-sdk-ruby
210
- post_install_message:
309
+ post_install_message:
211
310
  rdoc_options: []
212
311
  require_paths:
213
312
  - lib
@@ -222,8 +321,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
321
  - !ruby/object:Gem::Version
223
322
  version: '0'
224
323
  requirements: []
225
- rubygems_version: 3.3.7
226
- signing_key:
324
+ rubygems_version: 3.5.9
325
+ signing_key:
227
326
  specification_version: 4
228
327
  summary: Client for Momento Serverless Cache
229
328
  test_files: []
data/examples/basic.rb DELETED
@@ -1,45 +0,0 @@
1
- require 'momento'
2
-
3
- # Get your Momento token from an environment variable.
4
- token = ENV.fetch('MOMENTO_AUTH_TOKEN')
5
-
6
- # Cached items will be deleted after 30 seconds.
7
- ttl = 30_000
8
-
9
- # Instantiate a Momento client.
10
- client = Momento::SimpleCacheClient.new(
11
- auth_token: token,
12
- default_ttl: ttl
13
- )
14
-
15
- # Create a cache named "test_cache" to play with.
16
- response = client.create_cache("test_cache")
17
- if response.success? || response.already_exists?
18
- puts "Created the cache, or it already exists."
19
- elsif response.error?
20
- raise "Couldn't create a cache: #{response}"
21
- else
22
- raise
23
- end
24
-
25
- # Put an item in the cache.
26
- response = client.set("test_cache", "key", "You cached something!")
27
- if response.success?
28
- puts "Set an item in the cache."
29
- elsif response.error?
30
- raise "Couldn't set an item in the cache: #{response}"
31
- else
32
- raise
33
- end
34
-
35
- # And get it back.
36
- response = client.get("test_cache", "key")
37
- if response.hit?
38
- puts "Cache returned: #{response.value}"
39
- elsif response.miss?
40
- puts "The item wasn't found in the cache."
41
- elsif response.error?
42
- raise "Couldn't get an item from the cache: #{response}"
43
- else
44
- raise
45
- end