xamplr 1.9.9 → 1.9.10
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/lib/xamplr/persistence.rb +51 -50
- data/lib/xamplr/xampl-persisted-object.rb +6 -2
- data/xamplr.gemspec +2 -2
- metadata +2 -2
data/VERSION.yml
CHANGED
data/lib/xamplr/persistence.rb
CHANGED
@@ -324,57 +324,58 @@ module Xampl
|
|
324
324
|
end
|
325
325
|
|
326
326
|
def Xampl.read_only(target_persister)
|
327
|
-
|
328
|
-
|
327
|
+
@@xampl_lock.synchronize(:EX) do
|
328
|
+
name = target_persister.name
|
329
329
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
330
|
+
if block_given? then
|
331
|
+
initial_persister = @@persister
|
332
|
+
Xampl.enable_persister(name, target_persister.kind, target_persister.format)
|
333
|
+
|
334
|
+
rollback = true
|
335
|
+
original_automatic = @@persister.automatic
|
336
|
+
original_changed = @changed
|
337
|
+
@changed = {}
|
338
|
+
begin
|
339
|
+
Xampl.auto_persistence(false)
|
340
|
+
#Xampl.block_future_changes(true)
|
341
|
+
|
342
|
+
yield
|
343
|
+
rollback = false
|
344
|
+
ensure
|
345
|
+
#### Xampl.auto_persistence(original_automatic)
|
346
|
+
#### #Xampl.block_future_changes(false)
|
347
|
+
####
|
348
|
+
#### if 0 < @changed.size then
|
349
|
+
#### puts "CHANGED COUNT: #{@changed.size}"
|
350
|
+
#### raise BlockedChange.new(target_persister)
|
351
|
+
#### end
|
352
|
+
####
|
353
|
+
#### @changed = original_changed
|
354
|
+
####
|
355
|
+
#### puts "ROLLBACK(#{__LINE__})" if rollback
|
356
|
+
#### Xampl.rollback if rollback
|
357
|
+
#### @@persister = initial_persister
|
358
|
+
|
359
|
+
Xampl.auto_persistence(original_automatic)
|
360
|
+
#Xampl.block_future_changes(false)
|
361
|
+
|
362
|
+
if 0 == @changed.size then
|
363
|
+
@changed = original_changed
|
364
|
+
|
365
|
+
#puts "ROLLBACK(#{__LINE__})" if rollback
|
366
|
+
Xampl.rollback if rollback
|
367
|
+
@@persister = initial_persister
|
368
|
+
else
|
369
|
+
#puts "CHANGED COUNT: #{@changed.size}"
|
370
|
+
@changed = original_changed
|
371
|
+
|
372
|
+
#puts "ROLLBACK(#{__LINE__})" if rollback
|
373
|
+
Xampl.rollback
|
374
|
+
|
375
|
+
@@persister = initial_persister
|
376
|
+
|
377
|
+
raise BlockedChange.new(target_persister)
|
378
|
+
end
|
378
379
|
end
|
379
380
|
end
|
380
381
|
end
|
@@ -36,12 +36,16 @@ module Xampl
|
|
36
36
|
raise MixedPersisters.new(@persister, self)
|
37
37
|
elsif Xampl.persister == @persister then
|
38
38
|
if not @persister.syncing then
|
39
|
-
Xampl.
|
39
|
+
Xampl.read_only(@persister) do
|
40
|
+
Xampl.lazy_load(self)
|
41
|
+
end
|
40
42
|
else
|
41
43
|
puts "LOAD NEEDED(3): BAD IDEA, but load anyway (persister: #{@persister.name})"
|
42
44
|
puts " #{self.class.name}"
|
43
45
|
puts " pid: #{self.get_the_index}"
|
44
|
-
Xampl.
|
46
|
+
Xampl.read_only(@persister) do
|
47
|
+
Xampl.lazy_load(self)
|
48
|
+
end
|
45
49
|
# puts "LOAD NEEDED(3): REFUSED (persister: #{@persister.name})"
|
46
50
|
# puts " #{self.class.name}"
|
47
51
|
# puts " pid: #{self.get_the_index}"
|
data/xamplr.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{xamplr}
|
8
|
-
s.version = "1.9.
|
8
|
+
s.version = "1.9.10"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bob Hutchison"]
|
12
|
-
s.date = %q{2010-03-
|
12
|
+
s.date = %q{2010-03-18}
|
13
13
|
s.description = %q{xamplr is the ruby version of xampl.}
|
14
14
|
s.email = %q{hutch@recursive.ca}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xamplr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Hutchison
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-18 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|