data_objects 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "Yehuda Katz"
9
9
  EMAIL = "wycats@gmail.com"
10
10
  GEM_NAME = "data_objects"
11
11
  GEM_VERSION = DataObjects::VERSION
12
- GEM_DEPENDENCIES = ["addressable", ">=1.0.3"], ["extlib", "=0.9.4"]
12
+ GEM_DEPENDENCIES = ["addressable", ">=1.0.3"], ["extlib", ">=0.9.5"]
13
13
  GEM_CLEAN = "{coverage,doc,log}/", "profile_results.*", "**/.*.sw?", "*.gem", ".config", "**/.DS_Store"
14
14
  GEM_EXTRAS = {}
15
15
 
data/lib/data_objects.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
 
3
- gem 'extlib', '=0.9.4'
3
+ gem 'extlib', '>=0.9.5'
4
4
  require 'extlib'
5
5
 
6
6
  require File.expand_path(File.join(File.dirname(__FILE__), 'data_objects', 'support', 'pooling'))
@@ -9,7 +9,7 @@ class Object
9
9
  # because instances are keeped in memory reused.
10
10
  #
11
11
  # Classes that include Pooling module have re-defined new
12
- # method that returns instances aquired from pool.
12
+ # method that returns instances acquired from pool.
13
13
  #
14
14
  # Term resource is used for any type of poolable objects
15
15
  # and should NOT be thought as DataMapper Resource or
@@ -43,18 +43,18 @@ class Object
43
43
  end
44
44
 
45
45
  # ==== Notes
46
- # Instances of poolable resource are aquired from
46
+ # Instances of poolable resource are acquired from
47
47
  # pool. This quires a new instance from pool and
48
48
  # returns it.
49
49
  #
50
50
  # ==== Returns
51
- # Resource instance aquired from the pool.
51
+ # Resource instance acquired from the pool.
52
52
  #
53
53
  # ==== Raises
54
54
  # ArgumentError:: when pool is exhausted and no instance
55
- # can be aquired.
55
+ # can be acquired.
56
56
  def new
57
- pool.aquire
57
+ pool.acquire
58
58
  end
59
59
 
60
60
  # ==== Notes
@@ -118,20 +118,20 @@ class Object
118
118
  end
119
119
 
120
120
  # ==== Notes
121
- # Indicates if pool has resources to aquire.
121
+ # Indicates if pool has resources to acquire.
122
122
  #
123
123
  # ==== Returns
124
- # <Boolean>:: true if pool has resources can be aquired,
124
+ # <Boolean>:: true if pool has resources can be acquired,
125
125
  # false otherwise.
126
126
  def available?
127
127
  @reserved.size < size_limit
128
128
  end
129
129
 
130
130
  # ==== Notes
131
- # Aquires last used available resource and returns it.
131
+ # Acquires last used available resource and returns it.
132
132
  # If no resources available, current implementation
133
133
  # throws an exception.
134
- def aquire
134
+ def acquire
135
135
  @lock.synchronize do
136
136
  if available?
137
137
  instance = prepair_available_resource
@@ -145,10 +145,10 @@ class Object
145
145
  end
146
146
 
147
147
  # ==== Notes
148
- # Releases previously aquired instance.
148
+ # Releases previously acquired instance.
149
149
  #
150
150
  # ==== Parameters
151
- # instance <Anything>:: previosly aquired instance.
151
+ # instance <Anything>:: previosly acquired instance.
152
152
  #
153
153
  # ==== Raises
154
154
  # RuntimeError:: when given not pooled instance.
@@ -178,12 +178,12 @@ class Object
178
178
  end
179
179
 
180
180
  # ==== Notes
181
- # Check if instance has been aquired from the pool.
181
+ # Check if instance has been acquired from the pool.
182
182
  #
183
183
  # ==== Returns
184
- # <Boolean>:: true if given resource instance has been aquired from pool,
184
+ # <Boolean>:: true if given resource instance has been acquired from pool,
185
185
  # false otherwise.
186
- def aquired?(instance)
186
+ def acquired?(instance)
187
187
  @reserved.include?(instance)
188
188
  end
189
189
 
@@ -208,7 +208,7 @@ class Object
208
208
  # ==== Returns
209
209
  # <Boolean>:: true if instance should be released, false otherwise.
210
210
  def time_to_release?(instance)
211
- (Time.now - instance.instance_variable_get("@__pool_aquire_timestamp")) > @expiration_period
211
+ (Time.now - instance.instance_variable_get("@__pool_acquire_timestamp")) > @expiration_period
212
212
  end
213
213
 
214
214
  protected
@@ -220,13 +220,13 @@ class Object
220
220
  def prepair_available_resource
221
221
  if @available.size > 0
222
222
  res = @available.pop
223
- res.instance_variable_set("@__pool_aquire_timestamp", Time.now)
223
+ res.instance_variable_set("@__pool_acquire_timestamp", Time.now)
224
224
 
225
225
  res
226
226
  else
227
227
  res = @class_of_resources.allocate
228
228
  res.send(:initialize, *@initialization_args)
229
- res.instance_variable_set("@__pool_aquire_timestamp", Time.now)
229
+ res.instance_variable_set("@__pool_acquire_timestamp", Time.now)
230
230
 
231
231
  res
232
232
  end
@@ -1,4 +1,5 @@
1
1
  require 'digest'
2
+ require 'digest/sha2'
2
3
 
3
4
  module DataObjects
4
5
 
@@ -23,7 +24,7 @@ module DataObjects
23
24
  #
24
25
  def initialize(uri)
25
26
  @connection = DataObjects::Connection.new(uri)
26
- @id = Digest::SHA2.hexdigest("#{HOST}:#{$$}:#{Time.now.to_f}:#{@@counter += 1}")
27
+ @id = Digest::SHA256.hexdigest("#{HOST}:#{$$}:#{Time.now.to_f}:#{@@counter += 1}")
27
28
  end
28
29
 
29
30
  def close
@@ -1,3 +1,3 @@
1
1
  module DataObjects
2
- VERSION = "0.9.4" unless defined?(DataObjects::VERSION)
3
- end
2
+ VERSION = "0.9.5" unless defined?(DataObjects::VERSION)
3
+ end
@@ -49,7 +49,7 @@ describe DataObjects::Connection do
49
49
  uri.path.should == '/database'
50
50
  end
51
51
 
52
- it "should accept a conneciton uri as a Addressable::URI" do
52
+ it "should accept a connection uri as a Addressable::URI" do
53
53
  c = DataObjects::Connection.new(Addressable::URI::parse('mock://localhost/database'))
54
54
  # relying on the fact that mock connection sets @uri
55
55
  uri = c.instance_variable_get("@uri")
@@ -58,17 +58,17 @@ describe DataObjects::Connection do
58
58
  uri.to_s.should == 'mock://localhost/database'
59
59
  end
60
60
 
61
- it "should determine which DataObject adapter from the uri scheme" do
61
+ it "should determine which DataObject adapter to use from the uri scheme" do
62
62
  DataObjects::Mock::Connection.should_receive(:__new)
63
63
  DataObjects::Connection.new('mock://localhost/database')
64
64
  end
65
65
 
66
- it "should determine which DataObject adapter from a JDBC URL scheme" do
66
+ it "should determine which DataObject adapter to use from a JDBC URL scheme" do
67
67
  DataObjects::Mock::Connection.should_receive(:__new)
68
68
  DataObjects::Connection.new('jdbc:mock://localhost/database')
69
69
  end
70
70
 
71
- it "should aquire a connection" do
71
+ it "should acquire a connection" do
72
72
  uri = Addressable::URI.parse('mock://localhost/database')
73
73
  DataObjects::Mock::Connection.should_receive(:__new).with(uri)
74
74
 
@@ -33,8 +33,8 @@ describe Object::Pooling::ResourcePool do
33
33
  @pool.should respond_to(:flush!)
34
34
  end
35
35
 
36
- it "responds to aquire" do
37
- @pool.should respond_to(:aquire)
36
+ it "responds to acquire" do
37
+ @pool.should respond_to(:acquire)
38
38
  end
39
39
 
40
40
  it "responds to release" do
@@ -100,7 +100,7 @@ end
100
100
 
101
101
 
102
102
 
103
- describe "Aquire from contant size pool" do
103
+ describe "Acquire from constant size pool" do
104
104
  before :each do
105
105
  DisposableResource.initialize_pool(2)
106
106
  end
@@ -110,53 +110,53 @@ describe "Aquire from contant size pool" do
110
110
  end
111
111
 
112
112
  it "increased size of the pool" do
113
- @time = DisposableResource.pool.aquire
113
+ @time = DisposableResource.pool.acquire
114
114
  DisposableResource.pool.size.should == 1
115
115
  end
116
116
 
117
117
  it "places initialized instance in the reserved set" do
118
- @time = DisposableResource.pool.aquire
118
+ @time = DisposableResource.pool.acquire
119
119
  DisposableResource.pool.instance_variable_get("@reserved").size.should == 1
120
120
  end
121
121
 
122
122
  it "raises an exception when pool size limit is hit" do
123
- @t1 = DisposableResource.pool.aquire
124
- @t2 = DisposableResource.pool.aquire
123
+ @t1 = DisposableResource.pool.acquire
124
+ @t2 = DisposableResource.pool.acquire
125
125
 
126
- lambda { DisposableResource.pool.aquire }.should raise_error(RuntimeError)
126
+ lambda { DisposableResource.pool.acquire }.should raise_error(RuntimeError)
127
127
  end
128
128
 
129
129
  it "returns last released resource" do
130
- @t1 = DisposableResource.pool.aquire
131
- @t2 = DisposableResource.pool.aquire
130
+ @t1 = DisposableResource.pool.acquire
131
+ @t2 = DisposableResource.pool.acquire
132
132
  DisposableResource.pool.release(@t1)
133
133
 
134
- DisposableResource.pool.aquire.should == @t1
134
+ DisposableResource.pool.acquire.should == @t1
135
135
  end
136
136
 
137
137
  it "really truly returns last released resource" do
138
- @t1 = DisposableResource.pool.aquire
138
+ @t1 = DisposableResource.pool.acquire
139
139
  DisposableResource.pool.release(@t1)
140
140
 
141
- @t2 = DisposableResource.pool.aquire
141
+ @t2 = DisposableResource.pool.acquire
142
142
  DisposableResource.pool.release(@t2)
143
143
 
144
- @t3 = DisposableResource.pool.aquire
144
+ @t3 = DisposableResource.pool.acquire
145
145
  DisposableResource.pool.release(@t3)
146
146
 
147
- DisposableResource.pool.aquire.should == @t1
147
+ DisposableResource.pool.acquire.should == @t1
148
148
  @t1.should == @t3
149
149
  end
150
150
 
151
151
  it "sets allocation timestamp on resource instance" do
152
152
  @t1 = DisposableResource.new
153
- @t1.instance_variable_get("@__pool_aquire_timestamp").should be_close(Time.now, 2)
153
+ @t1.instance_variable_get("@__pool_acquire_timestamp").should be_close(Time.now, 2)
154
154
  end
155
155
  end
156
156
 
157
157
 
158
158
 
159
- describe "Releasing from contant size pool" do
159
+ describe "Releasing from constant size pool" do
160
160
  before :each do
161
161
  DisposableResource.initialize_pool(2)
162
162
  end
@@ -166,8 +166,8 @@ describe "Releasing from contant size pool" do
166
166
  end
167
167
 
168
168
  it "decreases size of the pool" do
169
- @t1 = DisposableResource.pool.aquire
170
- @t2 = DisposableResource.pool.aquire
169
+ @t1 = DisposableResource.pool.acquire
170
+ @t2 = DisposableResource.pool.acquire
171
171
  DisposableResource.pool.release(@t1)
172
172
 
173
173
  DisposableResource.pool.size.should == 1
@@ -182,14 +182,14 @@ describe "Releasing from contant size pool" do
182
182
  end
183
183
 
184
184
  it "disposes released object" do
185
- @t1 = DisposableResource.pool.aquire
185
+ @t1 = DisposableResource.pool.acquire
186
186
 
187
187
  @t1.should_receive(:dispose)
188
188
  DisposableResource.pool.release(@t1)
189
189
  end
190
190
 
191
191
  it "removes released object from reserved set" do
192
- @t1 = DisposableResource.pool.aquire
192
+ @t1 = DisposableResource.pool.acquire
193
193
 
194
194
  lambda {
195
195
  DisposableResource.pool.release(@t1)
@@ -197,27 +197,27 @@ describe "Releasing from contant size pool" do
197
197
  end
198
198
 
199
199
  it "returns released object back to available set" do
200
- @t1 = DisposableResource.pool.aquire
200
+ @t1 = DisposableResource.pool.acquire
201
201
 
202
202
  lambda {
203
203
  DisposableResource.pool.release(@t1)
204
204
  }.should change(DisposableResource.pool.instance_variable_get("@available"), :size).by(1)
205
205
  end
206
206
 
207
- it "updates aquire timestamp on already allocated resource instance" do
208
- # aquire it once
207
+ it "updates acquire timestamp on already allocated resource instance" do
208
+ # acquire it once
209
209
  @t1 = DisposableResource.new
210
210
  # wait a bit
211
211
  sleep 3
212
212
 
213
213
  # check old timestamp
214
- @t1.instance_variable_get("@__pool_aquire_timestamp").should be_close(Time.now, 4)
214
+ @t1.instance_variable_get("@__pool_acquire_timestamp").should be_close(Time.now, 4)
215
215
 
216
- # re-aquire
216
+ # re-acquire
217
217
  DisposableResource.pool.release(@t1)
218
218
  @t1 = DisposableResource.new
219
219
  # see timestamp is updated
220
- @t1.instance_variable_get("@__pool_aquire_timestamp").should be_close(Time.now, 2)
220
+ @t1.instance_variable_get("@__pool_acquire_timestamp").should be_close(Time.now, 2)
221
221
  end
222
222
  end
223
223
 
@@ -238,7 +238,7 @@ describe Object::Pooling::ResourcePool, "#available?" do
238
238
  end
239
239
 
240
240
  it "returns false when pool is exhausted" do
241
- # aquires the last available resource
241
+ # acquires the last available resource
242
242
  DisposableResource.new
243
243
  DisposableResource.pool.should_not be_available
244
244
  end
@@ -246,7 +246,7 @@ end
246
246
 
247
247
 
248
248
 
249
- describe "Flushing of contant size pool" do
249
+ describe "Flushing of constant size pool" do
250
250
  before :each do
251
251
  DisposableResource.initialize_pool(2)
252
252
 
@@ -291,10 +291,10 @@ describe "Poolable resource class" do
291
291
  DisposableResource.instance_variable_set("@__pool", nil)
292
292
  end
293
293
 
294
- it "aquires new instances from pool" do
294
+ it "acquires new instances from pool" do
295
295
  @instance_one = DisposableResource.new
296
296
 
297
- DisposableResource.pool.aquired?(@instance_one).should be(true)
297
+ DisposableResource.pool.acquired?(@instance_one).should be(true)
298
298
  end
299
299
 
300
300
  it "flushed existing pool on re-initialization" do
@@ -344,7 +344,7 @@ describe Object::Pooling::ResourcePool, "#time_to_dispose?" do
344
344
  DisposableResource.instance_variable_set("@__pool", nil)
345
345
  end
346
346
 
347
- it "returns true when object's last aquisition time is greater than limit" do
347
+ it "returns true when object's last acquisition time is greater than limit" do
348
348
  @t1 = DisposableResource.new
349
349
  DisposableResource.pool.time_to_release?(@t1).should be(false)
350
350
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yehuda Katz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-21 00:00:00 -05:00
12
+ date: 2008-08-26 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -28,9 +28,9 @@ dependencies:
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "="
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.4
33
+ version: 0.9.5
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: hoe