rack 1.6.12 → 1.6.13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rack might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f95a801d50bb534494f0a7c7bbddb845d4e3448e65041642e6dea7102ca1c3d
4
- data.tar.gz: 41df2cb86bafdb3ea49aa84382700982451396babe777cd33331b8cf0373a413
3
+ metadata.gz: 1284c246863ad0e0c1472c12dc028993a5c84223a53deb943183f396c21f05ec
4
+ data.tar.gz: 6aba4634a7f953dff80b391f999eae11404516f22158d6b2931f8fc7d65aa02b
5
5
  SHA512:
6
- metadata.gz: af0085562b2835171e9fd23d746c91c036d2031966f16f81c7c16cc82410d5414f9215b3e40a89021b5dfd1c1c76344afd22a966cbba4fc8d22ba61ae49b22cf
7
- data.tar.gz: e992b79e53e683527b06d7129ff07faa0c1b0754287b3f485673de13f231a83628168dde620e89a897bb4fd407d5c0c6fc329962c62b8c845fb54a2ff1359d29
6
+ metadata.gz: 81f24112cf528aa9f672dede1598fe9527a7d3aa5578e11fe6d6064a96d3091f0afae7f9d4bf453f1eff8c9a3d2ce4bb57991e5a45d41abfdc1948a62c8f65e2
7
+ data.tar.gz: bfde816a21a1293b1b8be7e7f3fd583887e854c57c96afc2d9b823cf16eb40938ef563294bb323389ab241322cfd3add5503e69e3e0ce8678739988d4990e43d
@@ -20,7 +20,7 @@ module Rack
20
20
 
21
21
  # Return the Rack release as a dotted string.
22
22
  def self.release
23
- "1.6.12"
23
+ "1.6.13"
24
24
  end
25
25
  PATH_INFO = 'PATH_INFO'.freeze
26
26
  REQUEST_METHOD = 'REQUEST_METHOD'.freeze
@@ -29,9 +29,9 @@ module Rack
29
29
  end
30
30
 
31
31
  alias :cookie_value :public_id
32
+ alias :to_s :public_id
32
33
 
33
34
  def empty?; false; end
34
- def to_s; raise; end
35
35
  def inspect; public_id.inspect; end
36
36
 
37
37
  private
@@ -431,7 +431,7 @@ module Rack
431
431
  def [](key)
432
432
  if key == "session_id"
433
433
  load_for_read!
434
- id.public_id
434
+ id.public_id if id
435
435
  else
436
436
  super
437
437
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rack"
3
- s.version = "1.6.12"
3
+ s.version = "1.6.13"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.summary = "a modular Ruby webserver interface"
6
6
  s.license = "MIT"
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest/global_expectations/autorun'
4
+ require 'rack/session/abstract/id'
5
+
6
+ describe Rack::Session::Abstract::PersistedSecure::SecureSessionHash do
7
+ attr_reader :hash
8
+
9
+ def setup
10
+ super
11
+ @store = Class.new do
12
+ def load_session(req)
13
+ [Rack::Session::SessionId.new("id"), { foo: :bar, baz: :qux }]
14
+ end
15
+ def session_exists?(req)
16
+ true
17
+ end
18
+ end
19
+ @hash = Rack::Session::Abstract::PersistedSecure::SecureSessionHash.new(@store.new, nil)
20
+ end
21
+
22
+ it "returns keys" do
23
+ assert_equal ["foo", "baz"], hash.keys
24
+ end
25
+
26
+ it "returns values" do
27
+ assert_equal [:bar, :qux], hash.values
28
+ end
29
+
30
+ describe "#[]" do
31
+ it "returns value for a matching key" do
32
+ assert_equal :bar, hash[:foo]
33
+ end
34
+
35
+ it "returns value for a 'session_id' key" do
36
+ assert_equal "id", hash['session_id']
37
+ end
38
+
39
+ it "returns nil value for missing 'session_id' key" do
40
+ store = @store.new
41
+ def store.load_session(req)
42
+ [nil, {}]
43
+ end
44
+ @hash = Rack::Session::Abstract::PersistedSecure::SecureSessionHash.new(store, nil)
45
+ assert_nil hash['session_id']
46
+ end
47
+ end
48
+
49
+ describe "#fetch" do
50
+ it "returns value for a matching key" do
51
+ assert_equal :bar, hash.fetch(:foo)
52
+ end
53
+
54
+ it "works with a default value" do
55
+ assert_equal :default, hash.fetch(:unknown, :default)
56
+ end
57
+
58
+ it "works with a block" do
59
+ assert_equal :default, hash.fetch(:unkown) { :default }
60
+ end
61
+
62
+ it "it raises when fetching unknown keys without defaults" do
63
+ lambda { hash.fetch(:unknown) }.must_raise KeyError
64
+ end
65
+ end
66
+
67
+ describe "#stringify_keys" do
68
+ it "returns hash or session hash with keys stringified" do
69
+ assert_equal({ "foo" => :bar, "baz" => :qux }, hash.send(:stringify_keys, hash).to_h)
70
+ end
71
+ end
72
+ end
73
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.12
4
+ version: 1.6.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Neukirchen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-18 00:00:00.000000000 Z
11
+ date: 2020-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bacon
@@ -221,6 +221,7 @@ files:
221
221
  - test/spec_session_abstract_id.rb
222
222
  - test/spec_session_cookie.rb
223
223
  - test/spec_session_memcache.rb
224
+ - test/spec_session_persisted_secure_secure_session_hash.rb
224
225
  - test/spec_session_pool.rb
225
226
  - test/spec_showexceptions.rb
226
227
  - test/spec_showstatus.rb
@@ -255,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
256
  - !ruby/object:Gem::Version
256
257
  version: '0'
257
258
  requirements: []
258
- rubygems_version: 3.0.3
259
+ rubygems_version: 3.1.2
259
260
  signing_key:
260
261
  specification_version: 4
261
262
  summary: a modular Ruby webserver interface
@@ -281,6 +282,7 @@ test_files:
281
282
  - test/spec_showstatus.rb
282
283
  - test/spec_chunked.rb
283
284
  - test/spec_runtime.rb
285
+ - test/spec_session_persisted_secure_secure_session_hash.rb
284
286
  - test/spec_fastcgi.rb
285
287
  - test/spec_builder.rb
286
288
  - test/spec_config.rb