rpbertp13-dm-core 0.9.11.1 → 0.9.11.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/History.txt +1 -1
- data/dm-core.gemspec +7 -7
- data/lib/dm-core.rb +1 -1
- data/lib/dm-core/adapters/data_objects_adapter.rb +2 -2
- data/lib/dm-core/adapters/mysql_adapter.rb +1 -3
- data/lib/dm-core/adapters/postgres_adapter.rb +4 -4
- data/lib/dm-core/adapters/sqlite3_adapter.rb +1 -1
- data/lib/dm-core/associations/relationship.rb +38 -31
- data/lib/dm-core/transaction.rb +19 -4
- data/lib/dm-core/version.rb +1 -1
- data/spec/integration/auto_migrations_spec.rb +5 -5
- data/spec/integration/transaction_spec.rb +15 -0
- data/spec/unit/transaction_spec.rb +26 -2
- metadata +3 -3
data/History.txt
CHANGED
data/dm-core.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{dm-core}
|
5
|
-
s.version = "0.9.11.
|
5
|
+
s.version = "0.9.11.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Dan Kubb"]
|
@@ -24,17 +24,17 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.specification_version = 2
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
-
s.add_runtime_dependency(%q<data_objects>, ["~> 0.
|
27
|
+
s.add_runtime_dependency(%q<data_objects>, ["~> 0.9.11"])
|
28
28
|
s.add_runtime_dependency(%q<extlib>, ["~> 0.9.11"])
|
29
|
-
s.add_runtime_dependency(%q<addressable>, ["~> 2.0"])
|
29
|
+
s.add_runtime_dependency(%q<addressable>, ["~> 2.0.2"])
|
30
30
|
else
|
31
|
-
s.add_dependency(%q<data_objects>, ["~> 0.
|
31
|
+
s.add_dependency(%q<data_objects>, ["~> 0.9.11"])
|
32
32
|
s.add_dependency(%q<extlib>, ["~> 0.9.11"])
|
33
|
-
s.add_dependency(%q<addressable>, ["~> 2.0"])
|
33
|
+
s.add_dependency(%q<addressable>, ["~> 2.0.2"])
|
34
34
|
end
|
35
35
|
else
|
36
|
-
s.add_dependency(%q<data_objects>, ["~> 0.
|
36
|
+
s.add_dependency(%q<data_objects>, ["~> 0.9.11"])
|
37
37
|
s.add_dependency(%q<extlib>, ["~> 0.9.11"])
|
38
|
-
s.add_dependency(%q<addressable>, ["~> 2.0"])
|
38
|
+
s.add_dependency(%q<addressable>, ["~> 2.0.2"])
|
39
39
|
end
|
40
40
|
end
|
data/lib/dm-core.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
gem 'data_objects', '~>0.
|
1
|
+
gem 'data_objects', '~>0.9.11'
|
2
2
|
require 'data_objects'
|
3
3
|
|
4
4
|
module DataMapper
|
@@ -615,7 +615,7 @@ module DataMapper
|
|
615
615
|
tm.map(DM::Discriminator).to('VARCHAR').with(:size => Property::DEFAULT_LENGTH)
|
616
616
|
tm.map(BigDecimal).to('DECIMAL').with(:precision => Property::DEFAULT_PRECISION, :scale => Property::DEFAULT_SCALE_BIGDECIMAL)
|
617
617
|
tm.map(Float).to('FLOAT').with(:precision => Property::DEFAULT_PRECISION)
|
618
|
-
tm.map(DateTime).to('
|
618
|
+
tm.map(DateTime).to('DATETIME')
|
619
619
|
tm.map(Date).to('DATE')
|
620
620
|
tm.map(Time).to('TIMESTAMP')
|
621
621
|
tm.map(TrueClass).to('BOOLEAN')
|
@@ -1,4 +1,4 @@
|
|
1
|
-
gem 'do_mysql', '~>0.
|
1
|
+
gem 'do_mysql', '~>0.9.11'
|
2
2
|
require 'do_mysql'
|
3
3
|
|
4
4
|
module DataMapper
|
@@ -124,8 +124,6 @@ module DataMapper
|
|
124
124
|
tm.map(Integer).to('INT').with(:size => 11)
|
125
125
|
tm.map(TrueClass).to('TINYINT').with(:size => 1) # TODO: map this to a BIT or CHAR(0) field?
|
126
126
|
tm.map(Object).to('TEXT')
|
127
|
-
tm.map(DateTime).to('DATETIME')
|
128
|
-
tm.map(Time).to('DATETIME')
|
129
127
|
end
|
130
128
|
end
|
131
129
|
end # module ClassMethods
|
@@ -1,4 +1,4 @@
|
|
1
|
-
gem 'do_postgres', '~>0.
|
1
|
+
gem 'do_postgres', '~>0.9.11'
|
2
2
|
require 'do_postgres'
|
3
3
|
|
4
4
|
module DataMapper
|
@@ -174,9 +174,9 @@ module DataMapper
|
|
174
174
|
# TODO: move to dm-more/dm-migrations
|
175
175
|
def type_map
|
176
176
|
@type_map ||= TypeMap.new(super) do |tm|
|
177
|
-
tm.map(
|
178
|
-
tm.map(
|
179
|
-
tm.map(Float).to('
|
177
|
+
tm.map(DateTime).to('TIMESTAMP')
|
178
|
+
tm.map(Integer).to('INT4')
|
179
|
+
tm.map(Float).to('FLOAT8')
|
180
180
|
end
|
181
181
|
end
|
182
182
|
end # module ClassMethods
|
@@ -8,47 +8,54 @@ module DataMapper
|
|
8
8
|
# @api private
|
9
9
|
attr_reader :name, :options, :query
|
10
10
|
|
11
|
+
# @api private
|
11
12
|
def child_key
|
12
|
-
child_key
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
13
|
+
@child_key ||= begin
|
14
|
+
child_key = nil
|
15
|
+
child_model.repository.scope do |r|
|
16
|
+
model_properties = child_model.properties(r.name)
|
17
|
+
|
18
|
+
child_key = parent_key.zip(@child_properties || []).map do |parent_property,property_name|
|
19
|
+
# TODO: use something similar to DM::NamingConventions to determine the property name
|
20
|
+
parent_name = Extlib::Inflection.underscore(Extlib::Inflection.demodulize(parent_model.base_model.name))
|
21
|
+
property_name ||= "#{parent_name}_#{parent_property.name}".to_sym
|
22
|
+
|
23
|
+
if model_properties.has_property?(property_name)
|
24
|
+
model_properties[property_name]
|
25
|
+
else
|
26
|
+
options = {}
|
27
|
+
|
28
|
+
[ :length, :precision, :scale ].each do |option|
|
29
|
+
options[option] = parent_property.send(option)
|
30
|
+
end
|
31
|
+
|
32
|
+
# NOTE: hack to make each many to many child_key a true key,
|
33
|
+
# until I can figure out a better place for this check
|
34
|
+
if child_model.respond_to?(:many_to_many)
|
35
|
+
options[:key] = true
|
36
|
+
end
|
37
|
+
|
38
|
+
child_model.property(property_name, parent_property.primitive, options)
|
27
39
|
end
|
28
|
-
|
29
|
-
# NOTE: hack to make each many to many child_key a true key,
|
30
|
-
# until I can figure out a better place for this check
|
31
|
-
if child_model.respond_to?(:many_to_many)
|
32
|
-
options[:key] = true
|
33
|
-
end
|
34
|
-
|
35
|
-
child_model.property(property_name, parent_property.primitive, options)
|
36
40
|
end
|
37
41
|
end
|
42
|
+
PropertySet.new(child_key)
|
38
43
|
end
|
39
|
-
@child_key = PropertySet.new(child_key)
|
40
44
|
end
|
41
45
|
|
42
46
|
# @api private
|
43
47
|
def parent_key
|
44
|
-
parent_key
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
@parent_key ||= begin
|
49
|
+
parent_key = nil
|
50
|
+
parent_model.repository.scope do |r|
|
51
|
+
parent_key = if @parent_properties
|
52
|
+
parent_model.properties(r.name).slice(*@parent_properties)
|
53
|
+
else
|
54
|
+
parent_model.key
|
55
|
+
end
|
49
56
|
end
|
57
|
+
PropertySet.new(parent_key)
|
50
58
|
end
|
51
|
-
@parent_key = PropertySet.new(parent_key)
|
52
59
|
end
|
53
60
|
|
54
61
|
# @api private
|
@@ -87,7 +94,7 @@ module DataMapper
|
|
87
94
|
grouped_collection = {}
|
88
95
|
collection.each do |resource|
|
89
96
|
child_value = child_key.get(resource)
|
90
|
-
|
97
|
+
parent_obj = parent_identity_map[child_value]
|
91
98
|
grouped_collection[parent_obj] ||= []
|
92
99
|
grouped_collection[parent_obj] << resource
|
93
100
|
end
|
data/lib/dm-core/transaction.rb
CHANGED
@@ -97,6 +97,7 @@ module DataMapper
|
|
97
97
|
end
|
98
98
|
else
|
99
99
|
raise "Illegal state for commit without block: #{@state}" unless @state == :begin
|
100
|
+
each_adapter(:prepare_adapter, [:rollback_and_close_adapter_if_begin, :rollback_prepared_and_close_adapter_if_prepare])
|
100
101
|
each_adapter(:commit_adapter, [:log_fatal_transaction_breakage])
|
101
102
|
each_adapter(:close_adapter, [:log_fatal_transaction_breakage])
|
102
103
|
@state = :commit
|
@@ -111,6 +112,7 @@ module DataMapper
|
|
111
112
|
def rollback
|
112
113
|
raise "Illegal state for rollback: #{@state}" unless @state == :begin
|
113
114
|
each_adapter(:rollback_adapter_if_begin, [:rollback_and_close_adapter_if_begin, :close_adapter_if_none])
|
115
|
+
each_adapter(:rollback_prepared_adapter_if_prepare, [:rollback_prepared_and_close_adapter_if_begin, :close_adapter_if_none])
|
114
116
|
each_adapter(:close_adapter_if_open, [:log_fatal_transaction_breakage])
|
115
117
|
@state = :rollback
|
116
118
|
end
|
@@ -143,13 +145,13 @@ module DataMapper
|
|
143
145
|
|
144
146
|
def method_missing(meth, *args, &block)
|
145
147
|
if args.size == 1 && args.first.is_a?(DataMapper::Adapters::AbstractAdapter)
|
146
|
-
if (match = meth.to_s.match(/^(.*)_if_(none|begin|rollback|commit)$/))
|
148
|
+
if (match = meth.to_s.match(/^(.*)_if_(none|begin|prepare|rollback|commit)$/))
|
147
149
|
if self.respond_to?(match[1], true)
|
148
150
|
self.send(match[1], args.first) if state_for(args.first).to_s == match[2]
|
149
151
|
else
|
150
152
|
super
|
151
153
|
end
|
152
|
-
elsif (match = meth.to_s.match(/^(.*)_unless_(none|begin|rollback|commit)$/))
|
154
|
+
elsif (match = meth.to_s.match(/^(.*)_unless_(none|begin|prepare|rollback|commit)$/))
|
153
155
|
if self.respond_to?(match[1], true)
|
154
156
|
self.send(match[1], args.first) unless state_for(args.first).to_s == match[2]
|
155
157
|
else
|
@@ -172,7 +174,7 @@ module DataMapper
|
|
172
174
|
private
|
173
175
|
|
174
176
|
def validate_primitive(primitive)
|
175
|
-
[:close, :begin, :rollback, :commit].each do |meth|
|
177
|
+
[:close, :begin, :prepare, :rollback, :rollback_prepared, :commit].each do |meth|
|
176
178
|
raise "Invalid primitive #{primitive}: doesnt respond_to?(#{meth.inspect})" unless primitive.respond_to?(meth)
|
177
179
|
end
|
178
180
|
return primitive
|
@@ -235,14 +237,27 @@ module DataMapper
|
|
235
237
|
do_adapter(adapter, :begin, :none)
|
236
238
|
end
|
237
239
|
|
240
|
+
def prepare_adapter(adapter)
|
241
|
+
do_adapter(adapter, :prepare, :begin);
|
242
|
+
end
|
243
|
+
|
238
244
|
def commit_adapter(adapter)
|
239
|
-
do_adapter(adapter, :commit, :
|
245
|
+
do_adapter(adapter, :commit, :prepare)
|
240
246
|
end
|
241
247
|
|
242
248
|
def rollback_adapter(adapter)
|
243
249
|
do_adapter(adapter, :rollback, :begin)
|
244
250
|
end
|
245
251
|
|
252
|
+
def rollback_prepared_adapter(adapter)
|
253
|
+
do_adapter(adapter, :rollback_prepared, :prepare)
|
254
|
+
end
|
255
|
+
|
256
|
+
def rollback_prepared_and_close_adapter(adapter)
|
257
|
+
rollback_prepared_adapter(adapter)
|
258
|
+
close_adapter(adapter)
|
259
|
+
end
|
260
|
+
|
246
261
|
def rollback_and_close_adapter(adapter)
|
247
262
|
rollback_adapter(adapter)
|
248
263
|
close_adapter(adapter)
|
data/lib/dm-core/version.rb
CHANGED
@@ -105,7 +105,7 @@ if HAS_SQLITE3
|
|
105
105
|
# :class => [ Class, 'VARCHAR(50)', false, 'Class', 'Class', false ],
|
106
106
|
:big_decimal => [ BigDecimal, 'DECIMAL(2,1)', false, '1.1', BigDecimal('1.1'), false ],
|
107
107
|
:float => [ Float, 'FLOAT(2,1)', false, '1.1', 1.1, false ],
|
108
|
-
:date_time => [ DateTime, '
|
108
|
+
:date_time => [ DateTime, 'DATETIME', false, NOW.strftime('%Y-%m-%d %H:%M:%S'), NOW, false ],
|
109
109
|
:time_1 => [ Time, 'TIMESTAMP', false, TIME_STRING_1, TIME_1, false ],
|
110
110
|
#SQLite pads out the microseconds to the full 6 digits no matter what the value is - we simply pad up the zeros needed
|
111
111
|
:time_2 => [ Time, 'TIMESTAMP', false, TIME_STRING_2.dup << '00000', TIME_2, false ],
|
@@ -219,10 +219,10 @@ if HAS_MYSQL
|
|
219
219
|
:big_decimal => [ BigDecimal, 'DECIMAL(2,1)', false, '1.1', BigDecimal('1.1'), false ],
|
220
220
|
:float => [ Float, 'FLOAT(2,1)', false, '1.1', 1.1, false ],
|
221
221
|
:date_time => [ DateTime, 'DATETIME', false, NOW.strftime('%Y-%m-%d %H:%M:%S'), NOW, false ],
|
222
|
-
:time_1 => [ Time, '
|
223
|
-
:time_2 => [ Time, '
|
224
|
-
:time_3 => [ Time, '
|
225
|
-
:time_4 => [ Time, '
|
222
|
+
:time_1 => [ Time, 'TIMESTAMP', false, TIME_1.strftime('%Y-%m-%d %H:%M:%S'), TIME_1, false ],
|
223
|
+
:time_2 => [ Time, 'TIMESTAMP', false, TIME_2.strftime('%Y-%m-%d %H:%M:%S'), TIME_2, false ],
|
224
|
+
:time_3 => [ Time, 'TIMESTAMP', false, TIME_3.strftime('%Y-%m-%d %H:%M:%S'), TIME_3 , false ],
|
225
|
+
:time_4 => [ Time, 'TIMESTAMP', false, TIME_4.strftime('%Y-%m-%d %H:%M:%S'), TIME_4 , false ],
|
226
226
|
:object => [ Object, 'TEXT', true, nil, nil, false ],
|
227
227
|
:discriminator => [ DM::Discriminator, 'VARCHAR(50)', false, nil, EveryType, false ],
|
228
228
|
}
|
@@ -56,5 +56,20 @@ if ADAPTERS.any?
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
it "should not commit any changes if any of the adapters doesnt prepare properly" do
|
60
|
+
lambda do
|
61
|
+
DataMapper::Transaction.new(*@repositories) do |transaction|
|
62
|
+
ADAPTERS.each do |name|
|
63
|
+
repository(name) { Sputnik.create(:name => 'hepp') }
|
64
|
+
end
|
65
|
+
|
66
|
+
transaction.primitive_for(@repositories.last.adapter).should_receive(:prepare).and_throw(Exception.new("I am the famous test exception"))
|
67
|
+
end
|
68
|
+
end.should raise_error(Exception, /I am the famous test exception/)
|
69
|
+
|
70
|
+
ADAPTERS.each do |name|
|
71
|
+
repository(name) { Sputnik.all.size.should == 0 }
|
72
|
+
end
|
73
|
+
end
|
59
74
|
end
|
60
75
|
end
|
@@ -30,11 +30,15 @@ describe DataMapper::Transaction do
|
|
30
30
|
@repository_adapter.should_receive(:transaction_primitive).any_number_of_times.and_return(@repository_transaction_primitive)
|
31
31
|
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:close).and_return(true)
|
32
32
|
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:begin).and_return(true)
|
33
|
+
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:prepare).and_return(true)
|
33
34
|
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:rollback).and_return(true)
|
35
|
+
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:rollback_prepared).and_return(true)
|
34
36
|
@transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:commit).and_return(true)
|
35
37
|
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:close).and_return(true)
|
36
38
|
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:begin).and_return(true)
|
39
|
+
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:prepare).and_return(true)
|
37
40
|
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:rollback).and_return(true)
|
41
|
+
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:rollback_prepared).and_return(true)
|
38
42
|
@repository_transaction_primitive.should_receive(:respond_to?).any_number_of_times.with(:commit).and_return(true)
|
39
43
|
end
|
40
44
|
|
@@ -135,6 +139,7 @@ describe DataMapper::Transaction do
|
|
135
139
|
@transaction.should_receive(:each_adapter).with(:begin_adapter, [:rollback_and_close_adapter_if_begin, :close_adapter_if_none])
|
136
140
|
@transaction.should_receive(:each_adapter).with(:rollback_adapter_if_begin, [:rollback_and_close_adapter_if_begin, :close_adapter_if_none])
|
137
141
|
@transaction.should_receive(:each_adapter).with(:close_adapter_if_open, [:log_fatal_transaction_breakage])
|
142
|
+
@transaction.should_receive(:each_adapter).with(:rollback_prepared_adapter_if_prepare, [:rollback_prepared_and_close_adapter_if_begin, :close_adapter_if_none])
|
138
143
|
@transaction.begin
|
139
144
|
@transaction.rollback
|
140
145
|
end
|
@@ -185,6 +190,7 @@ describe DataMapper::Transaction do
|
|
185
190
|
it "should try to prepare each adapter (or rollback and close), then commit each adapter (or log fatal error), then close (or log fatal error)" do
|
186
191
|
@transaction.should_receive(:each_adapter).with(:connect_adapter, [:log_fatal_transaction_breakage])
|
187
192
|
@transaction.should_receive(:each_adapter).with(:begin_adapter, [:rollback_and_close_adapter_if_begin, :close_adapter_if_none])
|
193
|
+
@transaction.should_receive(:each_adapter).with(:prepare_adapter, [:rollback_and_close_adapter_if_begin, :rollback_prepared_and_close_adapter_if_prepare])
|
188
194
|
@transaction.should_receive(:each_adapter).with(:commit_adapter, [:log_fatal_transaction_breakage])
|
189
195
|
@transaction.should_receive(:each_adapter).with(:close_adapter, [:log_fatal_transaction_breakage])
|
190
196
|
@transaction.begin
|
@@ -216,9 +222,11 @@ describe DataMapper::Transaction do
|
|
216
222
|
end
|
217
223
|
it "should begin, yield and commit if the block raises no exception" do
|
218
224
|
@repository_transaction_primitive.should_receive(:begin)
|
225
|
+
@repository_transaction_primitive.should_receive(:prepare)
|
219
226
|
@repository_transaction_primitive.should_receive(:commit)
|
220
227
|
@repository_transaction_primitive.should_receive(:close)
|
221
228
|
@transaction_primitive.should_receive(:begin)
|
229
|
+
@transaction_primitive.should_receive(:prepare)
|
222
230
|
@transaction_primitive.should_receive(:commit)
|
223
231
|
@transaction_primitive.should_receive(:close)
|
224
232
|
p = Proc.new do end
|
@@ -449,9 +457,14 @@ describe DataMapper::Transaction do
|
|
449
457
|
@transaction.should_receive(:do_adapter).with(@other_adapter, :begin, :none)
|
450
458
|
@transaction.instance_eval do begin_adapter(a1) end
|
451
459
|
end
|
452
|
-
it "should only allow adapters in state :begin to
|
460
|
+
it "should only allow adapters in state :begin to prepare" do
|
453
461
|
a1 = @other_adapter
|
454
|
-
@transaction.should_receive(:do_adapter).with(@other_adapter, :
|
462
|
+
@transaction.should_receive(:do_adapter).with(@other_adapter, :prepare, :begin)
|
463
|
+
@transaction.instance_eval do prepare_adapter(a1) end
|
464
|
+
end
|
465
|
+
it "should only allow adapters in state :prepare to commit" do
|
466
|
+
a1 = @other_adapter
|
467
|
+
@transaction.should_receive(:do_adapter).with(@other_adapter, :commit, :prepare)
|
455
468
|
@transaction.instance_eval do commit_adapter(a1) end
|
456
469
|
end
|
457
470
|
it "should only allow adapters in state :begin to rollback" do
|
@@ -459,11 +472,22 @@ describe DataMapper::Transaction do
|
|
459
472
|
@transaction.should_receive(:do_adapter).with(@other_adapter, :rollback, :begin)
|
460
473
|
@transaction.instance_eval do rollback_adapter(a1) end
|
461
474
|
end
|
475
|
+
it "should only allow adapters in state :prepare to rollback_prepared" do
|
476
|
+
a1 = @other_adapter
|
477
|
+
@transaction.should_receive(:do_adapter).with(@other_adapter, :rollback_prepared, :prepare)
|
478
|
+
@transaction.instance_eval do rollback_prepared_adapter(a1) end
|
479
|
+
end
|
462
480
|
it "should do delegate properly for rollback_and_close" do
|
463
481
|
a1 = @other_adapter
|
464
482
|
@transaction.should_receive(:rollback_adapter).with(@other_adapter)
|
465
483
|
@transaction.should_receive(:close_adapter).with(@other_adapter)
|
466
484
|
@transaction.instance_eval do rollback_and_close_adapter(a1) end
|
467
485
|
end
|
486
|
+
it "should do delegate properly for rollback_prepared_and_close" do
|
487
|
+
a1 = @other_adapter
|
488
|
+
@transaction.should_receive(:rollback_prepared_adapter).with(@other_adapter)
|
489
|
+
@transaction.should_receive(:close_adapter).with(@other_adapter)
|
490
|
+
@transaction.instance_eval do rollback_prepared_and_close_adapter(a1) end
|
491
|
+
end
|
468
492
|
end
|
469
493
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rpbertp13-dm-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.11.
|
4
|
+
version: 0.9.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Kubb
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.
|
23
|
+
version: 0.9.11
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: extlib
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
43
|
+
version: 2.0.2
|
44
44
|
version:
|
45
45
|
description: Faster, Better, Simpler.
|
46
46
|
email:
|