rack-store 0.0.3 → 0.0.4

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.
Files changed (2) hide show
  1. data/lib/rack/store.rb +11 -2
  2. metadata +44 -62
@@ -17,11 +17,20 @@ module Rack
17
17
 
18
18
  def env=(env)
19
19
  @env ||= {}
20
- unless @env.has_key?(Thread.current.object_id)
21
- ObjectSpace.define_finalizer Thread.current, lambda {|thread_id| @env.delete thread_id }
20
+ if !@env.has_key?(Thread.current.object_id) && Thread.current != Thread.main
21
+ ObjectSpace.define_finalizer(Thread.current) do
22
+ @env.delete thread_id
23
+ end
22
24
  end
23
25
  @env[Thread.current.object_id] = env
24
26
  end
27
+
28
+ def cleanup_garbage_keys
29
+ living_thread_ids = Thread.list.map(&:object_id)
30
+ @env.delete_if do |thread_id, value|
31
+ !living_thread_ids.include?(thread_id)
32
+ end
33
+ end
25
34
  end
26
35
  end
27
36
  end
metadata CHANGED
@@ -1,96 +1,78 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack-store
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Issei Naruta
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-11-20 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rack
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 31
29
- segments:
30
- - 1
31
- - 2
32
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.2.0
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rspec
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 15
45
- segments:
46
- - 2
47
- - 0
48
- - 0
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
49
37
  version: 2.0.0
50
38
  type: :development
51
- version_requirements: *id002
52
- description: Rack::Store is a Rack middleware what makes the env accessible anywhere while a request
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.0
46
+ description: Rack::Store is a Rack middleware what makes the env accessible anywhere
47
+ while a request
53
48
  email: naruta@cookpad.com
54
49
  executables: []
55
-
56
50
  extensions: []
57
-
58
51
  extra_rdoc_files: []
59
-
60
- files:
52
+ files:
61
53
  - lib/rack/store.rb
62
54
  homepage: https://github.com/mirakui/rack-store
63
55
  licenses: []
64
-
65
56
  post_install_message:
66
57
  rdoc_options: []
67
-
68
- require_paths:
58
+ require_paths:
69
59
  - lib
70
- required_ruby_version: !ruby/object:Gem::Requirement
60
+ required_ruby_version: !ruby/object:Gem::Requirement
71
61
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 3
76
- segments:
77
- - 0
78
- version: "0"
79
- required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
67
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
88
72
  requirements: []
89
-
90
73
  rubyforge_project:
91
74
  rubygems_version: 1.8.24
92
75
  signing_key:
93
76
  specification_version: 3
94
77
  summary: A Rack middleware what makes the env accessible anywhere while a request
95
78
  test_files: []
96
-