data_objects 0.9.4 → 0.9.5

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/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