dynamo-store 0.0.1 → 1.0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yaml +42 -0
- data/.gitignore +2 -0
- data/Appraisals +0 -8
- data/CONTRIBUTING.md +6 -0
- data/Changelog.md +21 -0
- data/Gemfile.lock +74 -761
- data/README.md +48 -11
- data/dynamo-store.gemspec +5 -4
- data/gemfiles/active_support_5.1.gemfile.lock +29 -721
- data/gemfiles/active_support_5.2.gemfile.lock +29 -721
- data/gemfiles/aws_sdk_3.gemfile.lock +32 -722
- data/lib/active_support/cache/dynamo_store.rb +9 -5
- data/lib/dynamo-store/version.rb +1 -1
- data/lib/dynamo-store.rb +1 -0
- metadata +35 -25
- data/.circleci/config.yml +0 -76
- data/.travis.yml +0 -7
- data/gemfiles/active_support_5.0.gemfile +0 -7
- data/gemfiles/active_support_5.0.gemfile.lock +0 -809
- data/gemfiles/aws_sdk_2.gemfile +0 -7
- data/gemfiles/aws_sdk_2.gemfile.lock +0 -113
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'active_support'
|
3
4
|
require 'active_support/cache'
|
4
5
|
require 'active_support/notifications'
|
5
6
|
|
@@ -11,10 +12,10 @@ end
|
|
11
12
|
|
12
13
|
module ActiveSupport
|
13
14
|
module Cache
|
14
|
-
class
|
15
|
+
class DynamoStore < Store
|
15
16
|
DEFAULT_HASH_KEY = 'CacheKey'
|
16
17
|
DEFAULT_TTL_KEY = 'TTL'
|
17
|
-
CONTENT_KEY = '
|
18
|
+
CONTENT_KEY = 'b_item_value'
|
18
19
|
|
19
20
|
attr_reader :data, :dynamodb_client, :hash_key, :ttl_key, :table_name
|
20
21
|
|
@@ -53,7 +54,7 @@ module ActiveSupport
|
|
53
54
|
table_name: table_name
|
54
55
|
)
|
55
56
|
|
56
|
-
return if result.item.nil?
|
57
|
+
return if result.item.nil? || result.item[CONTENT_KEY].nil?
|
57
58
|
|
58
59
|
Marshal.load(result.item[CONTENT_KEY]) # rubocop:disable Security/MarshalLoad
|
59
60
|
rescue TypeError
|
@@ -61,7 +62,10 @@ module ActiveSupport
|
|
61
62
|
end
|
62
63
|
|
63
64
|
def write_entry(name, value, _options = nil)
|
64
|
-
item = {
|
65
|
+
item = {
|
66
|
+
hash_key => name,
|
67
|
+
CONTENT_KEY => StringIO.new(Marshal.dump(value))
|
68
|
+
}
|
65
69
|
|
66
70
|
item[ttl_key] = value.expires_at.to_i if value.expires_at
|
67
71
|
|
@@ -70,7 +74,7 @@ module ActiveSupport
|
|
70
74
|
true
|
71
75
|
end
|
72
76
|
|
73
|
-
def delete_entry(name, _options)
|
77
|
+
def delete_entry(name, _options = nil)
|
74
78
|
dynamodb_client.delete_item(
|
75
79
|
key: { hash_key => name },
|
76
80
|
table_name: table_name
|
data/lib/dynamo-store/version.rb
CHANGED
data/lib/dynamo-store.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamo-store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Harkness
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -26,27 +26,27 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '5.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name: aws-sdk
|
29
|
+
name: aws-sdk-dynamodb
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '1.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '1.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: rexml
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
|
-
type: :
|
49
|
+
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
@@ -54,19 +54,19 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: appraisal
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: deep-cover
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,14 +87,14 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
90
|
+
version: '13.0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
97
|
+
version: '13.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rspec
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '3.0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
113
|
+
name: rspec_junit_formatter
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ">="
|
@@ -124,7 +124,7 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: simplecov
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - ">="
|
@@ -138,7 +138,21 @@ dependencies:
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
141
|
+
name: simplecov-lcov
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.8.0
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 0.8.0
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: timecop
|
142
156
|
requirement: !ruby/object:Gem::Requirement
|
143
157
|
requirements:
|
144
158
|
- - ">="
|
@@ -159,11 +173,12 @@ executables: []
|
|
159
173
|
extensions: []
|
160
174
|
extra_rdoc_files: []
|
161
175
|
files:
|
162
|
-
- ".
|
176
|
+
- ".github/workflows/test.yaml"
|
163
177
|
- ".gitignore"
|
164
178
|
- ".rspec"
|
165
|
-
- ".travis.yml"
|
166
179
|
- Appraisals
|
180
|
+
- CONTRIBUTING.md
|
181
|
+
- Changelog.md
|
167
182
|
- Gemfile
|
168
183
|
- Gemfile.lock
|
169
184
|
- LICENSE.txt
|
@@ -173,14 +188,10 @@ files:
|
|
173
188
|
- bin/setup
|
174
189
|
- dynamo-store.gemspec
|
175
190
|
- gemfiles/.bundle/config
|
176
|
-
- gemfiles/active_support_5.0.gemfile
|
177
|
-
- gemfiles/active_support_5.0.gemfile.lock
|
178
191
|
- gemfiles/active_support_5.1.gemfile
|
179
192
|
- gemfiles/active_support_5.1.gemfile.lock
|
180
193
|
- gemfiles/active_support_5.2.gemfile
|
181
194
|
- gemfiles/active_support_5.2.gemfile.lock
|
182
|
-
- gemfiles/aws_sdk_2.gemfile
|
183
|
-
- gemfiles/aws_sdk_2.gemfile.lock
|
184
195
|
- gemfiles/aws_sdk_3.gemfile
|
185
196
|
- gemfiles/aws_sdk_3.gemfile.lock
|
186
197
|
- lib/active_support/cache/dynamo_store.rb
|
@@ -207,8 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
218
|
- !ruby/object:Gem::Version
|
208
219
|
version: '0'
|
209
220
|
requirements: []
|
210
|
-
|
211
|
-
rubygems_version: 2.7.3
|
221
|
+
rubygems_version: 3.1.6
|
212
222
|
signing_key:
|
213
223
|
specification_version: 4
|
214
224
|
summary: ActiveSupport Cache Store for DynamoDb
|
data/.circleci/config.yml
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
# Ruby CircleCI 2.0 configuration file
|
2
|
-
#
|
3
|
-
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
-
#
|
5
|
-
version: 2
|
6
|
-
|
7
|
-
workflows:
|
8
|
-
version: 2
|
9
|
-
commit:
|
10
|
-
jobs:
|
11
|
-
- ruby-2.6
|
12
|
-
- ruby-2.5
|
13
|
-
|
14
|
-
jobs:
|
15
|
-
"ruby-2.6":
|
16
|
-
docker:
|
17
|
-
# specify the version you desire here
|
18
|
-
- image: ruby:2.6
|
19
|
-
- image: amazon/dynamodb-local
|
20
|
-
|
21
|
-
steps:
|
22
|
-
- checkout
|
23
|
-
- restore_cache:
|
24
|
-
keys:
|
25
|
-
- v1-dependencies-2.6-{{ checksum "Gemfile.lock" }}
|
26
|
-
- v1-dependencies-2.6-
|
27
|
-
- run:
|
28
|
-
name: install dependencies
|
29
|
-
command: |
|
30
|
-
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
31
|
-
bundle exec appraisal install
|
32
|
-
- save_cache:
|
33
|
-
paths:
|
34
|
-
- ./vendor/bundle
|
35
|
-
key: v1-dependencies-2.6-{{ checksum "Gemfile.lock" }}
|
36
|
-
# run tests!
|
37
|
-
- run:
|
38
|
-
name: run tests
|
39
|
-
command: bundle exec appraisal rspec
|
40
|
-
# collect reports
|
41
|
-
- store_test_results:
|
42
|
-
path: /tmp/test-results
|
43
|
-
- store_artifacts:
|
44
|
-
path: /tmp/test-results
|
45
|
-
destination: test-results
|
46
|
-
"ruby-2.5":
|
47
|
-
docker:
|
48
|
-
# specify the version you desire here
|
49
|
-
- image: ruby:2.5
|
50
|
-
- image: amazon/dynamodb-local
|
51
|
-
|
52
|
-
steps:
|
53
|
-
- checkout
|
54
|
-
- restore_cache:
|
55
|
-
keys:
|
56
|
-
- v1-dependencies-2.5-{{ checksum "Gemfile.lock" }}
|
57
|
-
- v1-dependencies-2.5-
|
58
|
-
- run:
|
59
|
-
name: install dependencies
|
60
|
-
command: |
|
61
|
-
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
62
|
-
bundle exec appraisal install
|
63
|
-
- save_cache:
|
64
|
-
paths:
|
65
|
-
- ./vendor/bundle
|
66
|
-
key: v1-dependencies-2.5-{{ checksum "Gemfile.lock" }}
|
67
|
-
# run tests!
|
68
|
-
- run:
|
69
|
-
name: run tests
|
70
|
-
command: bundle exec appraisal rspec
|
71
|
-
# collect reports
|
72
|
-
- store_test_results:
|
73
|
-
path: /tmp/test-results
|
74
|
-
- store_artifacts:
|
75
|
-
path: /tmp/test-results
|
76
|
-
destination: test-results
|
data/.travis.yml
DELETED