aws-sessionstore-dynamodb 2.0.1 → 2.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2ab82b0ba3f3fe80387b77624bfba8681349783c2a8d037978da81cd1734d3f
4
- data.tar.gz: dd3c0cf4d028059dc241c4b5a37e109b761da5cfca41111c583182ea0bfad4b1
3
+ metadata.gz: ee27fa01f65650a13304791dc345e3ee4b0c9ae10b734a54f57acb72706f4963
4
+ data.tar.gz: 269c66dbd952cd68d76fc3e1fcec8559fc945f4c745cc4987fb33e42c3c0bd1c
5
5
  SHA512:
6
- metadata.gz: e15b931dd2adda127b74c2d5fa0a60c7fb0a111f40354ff20975ea27d2a190b57c5a0f349184bc8cd48c12aa2f9adc01b0ac3801335c67aba9e308127da96947
7
- data.tar.gz: ddf87deb6796ff6c3d5c62187744e73f88adfe36fff0f512a798c7eaaea36091191ada8e948154053694cd830abb8da983ebb2365e7c9204b1ba11006c411281
6
+ metadata.gz: 68ff2d325413b24ef06bfe8a40f83f209afc93858af6322c648f4f82daac0096b90f7b2521bc5eac4e0d562636db2eea30d7931f97990d69b1f346866005506c
7
+ data.tar.gz: 5653d32a3a00b7bfbfaee3ddd9449d9a92cb3c369dd31a7fc887194f5a3b12dea141ac6d12f82db552ee82087956c8c0b88803f9bf25c460ea8fc894a58bd0fc
@@ -0,0 +1,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ pull_request:
9
+ branches:
10
+ - main
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby: [2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, jruby-9.2, jruby-9.3, jruby-9.4]
19
+ env: [RACK2, RACK3]
20
+
21
+ steps:
22
+ - name: Setup Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby }}
26
+
27
+ - uses: actions/checkout@v4
28
+
29
+ - name: Setup environment
30
+ run: |
31
+ echo "${{ matrix.env }}=1" >> $GITHUB_ENV
32
+
33
+ - name: Install gems
34
+ run: |
35
+ bundle config set --local without 'docs'
36
+ bundle install
37
+
38
+ - name: Tests
39
+ run: bundle exec rake spec
data/.gitignore CHANGED
@@ -1,5 +1,12 @@
1
- doc
2
- coverage
3
- .yardoc
4
- Gemfile.lock
5
- .release
1
+ .DS_Store
2
+
3
+ /.byebug_history
4
+ /.bundle
5
+ /.yardoc
6
+ /doc
7
+ /Gemfile.lock
8
+ /coverage
9
+ *.gem
10
+ /.release
11
+
12
+ .idea/
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ 2.2.0 (2024-01-25)
2
+ ------------------
3
+
4
+ * Feature - Drop support for Ruby 2.3 and 2.4.
5
+
6
+ * Issue - Relax `rack` dependency to allow version 3. Adds `rack-session` to the gemspec.
7
+
8
+ 2.1.0 (2023-06-02)
9
+ ------------------
10
+
11
+ * Feature - Improve User-Agent tracking and bump minimum DynamoDB version.
12
+
1
13
  2.0.1 (2020-11-16)
2
14
  ------------------
3
15
 
data/Gemfile CHANGED
@@ -1,5 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ if ENV['RACK2']
4
+ gem 'rack', '~> 2'
5
+ end
6
+
3
7
  gemspec
4
8
 
5
9
  gem 'rake', require: false
@@ -11,6 +15,10 @@ end
11
15
 
12
16
  group :test do
13
17
  gem 'rspec'
14
- gem 'simplecov', require: false
15
18
  gem 'rack-test'
19
+ gem 'simplecov'
20
+
21
+ if RUBY_VERSION >= '3.0'
22
+ gem 'rexml'
23
+ end
16
24
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.1
1
+ 2.2.0
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
4
4
  spec.name = "aws-sessionstore-dynamodb"
5
5
  spec.version = version
6
6
  spec.authors = ["Amazon Web Services"]
7
- spec.email = ["mamuller@amazon.com", "alexwoo@amazon.com"]
7
+ spec.email = ["aws-dr-rubygems@amazon.com"]
8
8
 
9
9
  spec.summary = "The Amazon DynamoDB Session Store handles sessions " +
10
10
  "for Ruby web applications using a DynamoDB backend."
@@ -15,6 +15,10 @@ Gem::Specification.new do |spec|
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ["lib"]
17
17
 
18
- spec.add_dependency 'aws-sdk-dynamodb', '~> 1'
19
- spec.add_dependency 'rack', '~> 2'
18
+ # Require 1.85.0 for user_agent_frameworks config
19
+ spec.add_dependency 'aws-sdk-dynamodb', '~> 1', '>= 1.85.0'
20
+ spec.add_dependency 'rack', '>= 2', '< 4'
21
+ spec.add_dependency 'rack-session', '>= 1', '< 3'
22
+
23
+ spec.required_ruby_version = '>= 2.5'
20
24
  end
@@ -4,7 +4,3 @@
4
4
  <%= YARD::VERSION %> (ruby-<%= RUBY_VERSION %>).
5
5
  <div id="awsdocs-legal-zone-copyright"></div>
6
6
  </div>
7
-
8
- <!-- Gitter chat -->
9
- <script>((window.gitter = {}).chat = {}).options = { room: 'aws/aws-sdk-ruby' };</script>
10
- <script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
@@ -192,9 +192,9 @@ module Aws::SessionStore::DynamoDB
192
192
 
193
193
  # @return [Hash] DDB client.
194
194
  def gen_dynamo_db_client
195
- client_opts = { user_agent_suffix: " aws-sessionstore/#{VERSION}" }
196
- client = Aws::DynamoDB::Client
197
- dynamo_db_client = @options[:dynamo_db_client] || client.new(client_opts)
195
+ dynamo_db_client = @options[:dynamo_db_client] || Aws::DynamoDB::Client.new
196
+ # this used to be aws-sessionstore/version on user_agent_suffix
197
+ dynamo_db_client.config.user_agent_frameworks << "aws-sessionstore-dynamodb"
198
198
  {:dynamo_db_client => dynamo_db_client}
199
199
  end
200
200
 
@@ -26,7 +26,7 @@ describe Aws::SessionStore::DynamoDB do
26
26
 
27
27
  let(:base_app) { MultiplierApplication.new }
28
28
  let(:app) { Aws::SessionStore::DynamoDB::RackMiddleware.new(base_app, @options) }
29
- let(:client) { double('Aws::DynamoDB::Client') }
29
+ let(:client) { double('Aws::DynamoDB::Client', config: double(user_agent_frameworks: [])) }
30
30
 
31
31
  context 'Error handling for Rack Middleware with default error handler' do
32
32
  it 'raises error for missing secret key' do
@@ -124,9 +124,9 @@ describe Aws::SessionStore::DynamoDB::GarbageCollection do
124
124
  expect(dynamo_db_client).to receive(:scan).
125
125
  exactly(1).times.and_return(scan_resp3)
126
126
  expect(dynamo_db_client).to receive(:batch_write_item).ordered.
127
- with(request_items: { 'sessions' => format_scan_result }).
127
+ with({request_items: { 'sessions' => format_scan_result }}).
128
128
  and_return(write_resp2)
129
- expect(dynamo_db_client).to receive(:batch_write_item).ordered.with(
129
+ expect(dynamo_db_client).to receive(:batch_write_item).ordered.with({
130
130
  request_items: {
131
131
  'sessions' => [
132
132
  {
@@ -151,7 +151,7 @@ describe Aws::SessionStore::DynamoDB::GarbageCollection do
151
151
  }
152
152
  ]
153
153
  }
154
- ).and_return(write_resp1)
154
+ }).and_return(write_resp1)
155
155
  collect_garbage
156
156
  end
157
157
  end
@@ -53,7 +53,8 @@ module Aws
53
53
  delete_item: 'Deleted',
54
54
  list_tables: { table_names: ['Sessions'] },
55
55
  get_item: { item: { 'data' => sample_packed_data } },
56
- update_item: { attributes: { created_at: 'now' } }
56
+ update_item: { attributes: { created_at: 'now' } },
57
+ config: double(user_agent_frameworks: [])
57
58
  )
58
59
  end
59
60
 
data/spec/spec_helper.rb CHANGED
@@ -13,13 +13,8 @@
13
13
  # ANY KIND, either express or implied. See the License for the specific
14
14
  # language governing permissions and limitations under the License.
15
15
 
16
- begin
17
- if ENV['COVERAGE']
18
- require 'simplecov'
19
- SimpleCov.start { add_filter 'spec' }
20
- end
21
- rescue LoadError
22
- end
16
+ require 'simplecov'
17
+ SimpleCov.start { add_filter 'spec' }
23
18
 
24
19
  $LOAD_PATH << File.join(File.dirname(File.dirname(__FILE__)), 'lib')
25
20
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sessionstore-dynamodb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-16 00:00:00.000000000 Z
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-dynamodb
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.85.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,32 +27,60 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.85.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rack
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: '2'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
49
  version: '2'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '4'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rack-session
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '1'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '3'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '1'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '3'
41
73
  description:
42
74
  email:
43
- - mamuller@amazon.com
44
- - alexwoo@amazon.com
75
+ - aws-dr-rubygems@amazon.com
45
76
  executables: []
46
77
  extensions: []
47
78
  extra_rdoc_files: []
48
79
  files:
49
80
  - ".github/PULL_REQUEST_TEMPLATE.md"
81
+ - ".github/workflows/ci.yml"
50
82
  - ".gitignore"
51
83
  - ".gitmodules"
52
- - ".travis.yml"
53
84
  - ".yardopts"
54
85
  - CHANGELOG.md
55
86
  - CODE_OF_CONDUCT.md
@@ -97,14 +128,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
128
  requirements:
98
129
  - - ">="
99
130
  - !ruby/object:Gem::Version
100
- version: '0'
131
+ version: '2.5'
101
132
  required_rubygems_version: !ruby/object:Gem::Requirement
102
133
  requirements:
103
134
  - - ">="
104
135
  - !ruby/object:Gem::Version
105
136
  version: '0'
106
137
  requirements: []
107
- rubygems_version: 3.0.3
138
+ rubygems_version: 3.5.5
108
139
  signing_key:
109
140
  specification_version: 4
110
141
  summary: The Amazon DynamoDB Session Store handles sessions for Ruby web applications
data/.travis.yml DELETED
@@ -1,26 +0,0 @@
1
- branches:
2
- only:
3
- - master
4
-
5
- language: ruby
6
-
7
- rvm:
8
- - 2.0
9
- - 2.1
10
- - 2.2
11
- - 2.3
12
- - 2.4
13
- - 2.5
14
- - 2.6
15
- - 2.7
16
- - jruby-9.1
17
- - jruby-9.2
18
-
19
- sudo: false
20
-
21
- env:
22
- - AWS_REGION=us-west-2
23
-
24
- script: bundle exec rake spec
25
-
26
- bundler_args: --without docs release repl