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.
@@ -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 Dynamo < Store
15
+ class DynamoStore < Store
15
16
  DEFAULT_HASH_KEY = 'CacheKey'
16
17
  DEFAULT_TTL_KEY = 'TTL'
17
- CONTENT_KEY = 'item_value'
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 = { hash_key => name, CONTENT_KEY => Marshal.dump(value) }
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DynamoStore
4
- VERSION = '0.0.1'
4
+ VERSION = '1.0.2.1'
5
5
  end
data/lib/dynamo-store.rb CHANGED
@@ -1 +1,2 @@
1
+ require 'active_support'
1
2
  require 'active_support/cache/dynamo_store'
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: 0.0.1
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: 2019-04-08 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
41
+ version: '1.0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: appraisal
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: :development
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: bundler
57
+ name: appraisal
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "~>"
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '2.0'
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: '2.0'
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: '10.0'
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: '10.0'
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: simplecov
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: timecop
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: rspec_junit_formatter
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
- - ".circleci/config.yml"
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
- rubyforge_project:
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
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.3
7
- before_install: gem install bundler -v 2.0.1
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activesupport", "~> 5.0.0"
6
-
7
- gemspec path: "../"