dynamo-store 0.0.1 → 1.0.2.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/.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