rpbertp13-dm-core 0.9.11.1 → 0.9.11.2
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|