resource_pool 0.1.1 → 0.1.2
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.
- data/VERSION +1 -1
- data/lib/resource_pool.rb +3 -2
- data/resource_pool.gemspec +59 -0
- data/spec/resource_pool_spec.rb +1 -1
- metadata +56 -85
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/resource_pool.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class ResourcePool
|
2
2
|
class ResourcePoolError < RuntimeError; end
|
3
|
-
class
|
3
|
+
class ResourceNotAvailable < ResourcePoolError; end
|
4
4
|
class BadResource < ResourcePoolError; end
|
5
5
|
class InvalidCreateProc < ResourcePoolError; end
|
6
6
|
|
@@ -37,12 +37,13 @@ class ResourcePool
|
|
37
37
|
end
|
38
38
|
begin
|
39
39
|
unless res = acquire(t)
|
40
|
+
raise ResourceNotAvailable if @timeout == 0
|
40
41
|
time = Time.now
|
41
42
|
timeout = time + @timeout
|
42
43
|
sleep_time = @sleep_time
|
43
44
|
sleep sleep_time
|
44
45
|
until res = acquire(t)
|
45
|
-
raise
|
46
|
+
raise ResourceNotAvailable if Time.now > timeout
|
46
47
|
sleep sleep_time
|
47
48
|
end
|
48
49
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{resource_pool}
|
8
|
+
s.version = "0.1.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Aaron Qian}]
|
12
|
+
s.date = %q{2011-10-13}
|
13
|
+
s.description = %q{A gem for generic connection pooling / resource pooling. The code is mostly taken from Sequel gem's ThreadedConnectionPool class, and adapted for more general use.}
|
14
|
+
s.email = %q{aq1018@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rspec",
|
22
|
+
"Gemfile",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"lib/resource_pool.rb",
|
28
|
+
"resource_pool.gemspec",
|
29
|
+
"spec/resource_pool_spec.rb",
|
30
|
+
"spec/spec_helper.rb"
|
31
|
+
]
|
32
|
+
s.homepage = %q{http://github.com/aq1018/resource_pool}
|
33
|
+
s.licenses = [%q{MIT}]
|
34
|
+
s.require_paths = [%q{lib}]
|
35
|
+
s.rubygems_version = %q{1.8.6}
|
36
|
+
s.summary = %q{A gem for generic connection pooling / resource pooling.}
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
s.specification_version = 3
|
40
|
+
|
41
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
43
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
44
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
45
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
46
|
+
else
|
47
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
48
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
49
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
50
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
51
|
+
end
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
54
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
56
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
data/spec/resource_pool_spec.rb
CHANGED
@@ -279,7 +279,7 @@ describe "ResourcePool" do
|
|
279
279
|
start = Time.now
|
280
280
|
lambda {
|
281
281
|
@pool.hold{ |res| res.should == @res }
|
282
|
-
}.should raise_error(ResourcePool::
|
282
|
+
}.should raise_error(ResourcePool::ResourceNotAvailable)
|
283
283
|
|
284
284
|
delta = Time.now - start
|
285
285
|
delta.should be_between(1.99, 2.01)
|
metadata
CHANGED
@@ -1,94 +1,70 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: resource_pool
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Aaron Qian
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
requirement: &
|
12
|
+
date: 2011-10-13 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &14549840 !ruby/object:Gem::Requirement
|
22
17
|
none: false
|
23
|
-
requirements:
|
18
|
+
requirements:
|
24
19
|
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 3
|
27
|
-
segments:
|
28
|
-
- 2
|
29
|
-
- 3
|
30
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
31
21
|
version: 2.3.0
|
32
|
-
version_requirements: *id001
|
33
|
-
name: rspec
|
34
|
-
prerelease: false
|
35
22
|
type: :development
|
36
|
-
|
37
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *14549840
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: bundler
|
27
|
+
requirement: &15026640 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
29
|
+
requirements:
|
40
30
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
hash: 23
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 0
|
46
|
-
- 0
|
31
|
+
- !ruby/object:Gem::Version
|
47
32
|
version: 1.0.0
|
48
|
-
version_requirements: *id002
|
49
|
-
name: bundler
|
50
|
-
prerelease: false
|
51
33
|
type: :development
|
52
|
-
|
53
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *15026640
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: jeweler
|
38
|
+
requirement: &15057820 !ruby/object:Gem::Requirement
|
54
39
|
none: false
|
55
|
-
requirements:
|
40
|
+
requirements:
|
56
41
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 7
|
59
|
-
segments:
|
60
|
-
- 1
|
61
|
-
- 6
|
62
|
-
- 4
|
42
|
+
- !ruby/object:Gem::Version
|
63
43
|
version: 1.6.4
|
64
|
-
version_requirements: *id003
|
65
|
-
name: jeweler
|
66
|
-
prerelease: false
|
67
44
|
type: :development
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 3
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
version: "0"
|
78
|
-
version_requirements: *id004
|
79
|
-
name: rcov
|
80
45
|
prerelease: false
|
46
|
+
version_requirements: *15057820
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rcov
|
49
|
+
requirement: &15060420 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
81
55
|
type: :development
|
82
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *15060420
|
58
|
+
description: A gem for generic connection pooling / resource pooling. The code is
|
59
|
+
mostly taken from Sequel gem's ThreadedConnectionPool class, and adapted for more
|
60
|
+
general use.
|
83
61
|
email: aq1018@gmail.com
|
84
62
|
executables: []
|
85
|
-
|
86
63
|
extensions: []
|
87
|
-
|
88
|
-
extra_rdoc_files:
|
64
|
+
extra_rdoc_files:
|
89
65
|
- LICENSE.txt
|
90
66
|
- README.rdoc
|
91
|
-
files:
|
67
|
+
files:
|
92
68
|
- .document
|
93
69
|
- .rspec
|
94
70
|
- Gemfile
|
@@ -97,40 +73,35 @@ files:
|
|
97
73
|
- Rakefile
|
98
74
|
- VERSION
|
99
75
|
- lib/resource_pool.rb
|
76
|
+
- resource_pool.gemspec
|
100
77
|
- spec/resource_pool_spec.rb
|
101
78
|
- spec/spec_helper.rb
|
102
79
|
homepage: http://github.com/aq1018/resource_pool
|
103
|
-
licenses:
|
80
|
+
licenses:
|
104
81
|
- MIT
|
105
82
|
post_install_message:
|
106
83
|
rdoc_options: []
|
107
|
-
|
108
|
-
require_paths:
|
84
|
+
require_paths:
|
109
85
|
- lib
|
110
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
87
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
segments:
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
segments:
|
117
93
|
- 0
|
118
|
-
|
119
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
hash: -2898749747760156030
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
96
|
none: false
|
121
|
-
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
|
125
|
-
segments:
|
126
|
-
- 0
|
127
|
-
version: "0"
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
128
101
|
requirements: []
|
129
|
-
|
130
102
|
rubyforge_project:
|
131
103
|
rubygems_version: 1.8.6
|
132
104
|
signing_key:
|
133
105
|
specification_version: 3
|
134
106
|
summary: A gem for generic connection pooling / resource pooling.
|
135
107
|
test_files: []
|
136
|
-
|