rack-store 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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
-