sequel 3.4.0 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +84 -0
- data/Rakefile +1 -1
- data/doc/cheat_sheet.rdoc +5 -2
- data/doc/opening_databases.rdoc +2 -0
- data/doc/release_notes/3.5.0.txt +510 -0
- data/lib/sequel/adapters/ado.rb +3 -1
- data/lib/sequel/adapters/ado/mssql.rb +2 -2
- data/lib/sequel/adapters/do.rb +2 -11
- data/lib/sequel/adapters/do/mysql.rb +7 -0
- data/lib/sequel/adapters/do/postgres.rb +2 -2
- data/lib/sequel/adapters/firebird.rb +3 -3
- data/lib/sequel/adapters/informix.rb +3 -3
- data/lib/sequel/adapters/jdbc/h2.rb +3 -3
- data/lib/sequel/adapters/jdbc/mssql.rb +7 -0
- data/lib/sequel/adapters/mysql.rb +60 -21
- data/lib/sequel/adapters/odbc.rb +1 -1
- data/lib/sequel/adapters/openbase.rb +3 -3
- data/lib/sequel/adapters/oracle.rb +1 -5
- data/lib/sequel/adapters/postgres.rb +3 -3
- data/lib/sequel/adapters/shared/mssql.rb +142 -33
- data/lib/sequel/adapters/shared/mysql.rb +54 -31
- data/lib/sequel/adapters/shared/oracle.rb +17 -6
- data/lib/sequel/adapters/shared/postgres.rb +7 -7
- data/lib/sequel/adapters/shared/progress.rb +3 -3
- data/lib/sequel/adapters/shared/sqlite.rb +3 -17
- data/lib/sequel/connection_pool.rb +4 -6
- data/lib/sequel/core.rb +29 -113
- data/lib/sequel/database.rb +14 -12
- data/lib/sequel/dataset.rb +8 -21
- data/lib/sequel/dataset/convenience.rb +1 -1
- data/lib/sequel/dataset/graph.rb +9 -2
- data/lib/sequel/dataset/sql.rb +170 -104
- data/lib/sequel/exceptions.rb +3 -0
- data/lib/sequel/extensions/looser_typecasting.rb +21 -0
- data/lib/sequel/extensions/named_timezones.rb +61 -0
- data/lib/sequel/extensions/schema_dumper.rb +7 -1
- data/lib/sequel/extensions/sql_expr.rb +122 -0
- data/lib/sequel/extensions/string_date_time.rb +4 -4
- data/lib/sequel/extensions/thread_local_timezones.rb +48 -0
- data/lib/sequel/model/associations.rb +105 -45
- data/lib/sequel/model/base.rb +37 -28
- data/lib/sequel/plugins/active_model.rb +35 -0
- data/lib/sequel/plugins/association_dependencies.rb +96 -0
- data/lib/sequel/plugins/class_table_inheritance.rb +214 -0
- data/lib/sequel/plugins/force_encoding.rb +61 -0
- data/lib/sequel/plugins/many_through_many.rb +32 -11
- data/lib/sequel/plugins/nested_attributes.rb +7 -2
- data/lib/sequel/plugins/subclasses.rb +45 -0
- data/lib/sequel/plugins/touch.rb +118 -0
- data/lib/sequel/plugins/typecast_on_load.rb +61 -0
- data/lib/sequel/sql.rb +31 -30
- data/lib/sequel/timezones.rb +161 -0
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/mssql_spec.rb +262 -0
- data/spec/adapters/mysql_spec.rb +46 -8
- data/spec/adapters/postgres_spec.rb +6 -3
- data/spec/adapters/spec_helper.rb +21 -0
- data/spec/adapters/sqlite_spec.rb +1 -1
- data/spec/core/connection_pool_spec.rb +1 -1
- data/spec/core/database_spec.rb +27 -1
- data/spec/core/dataset_spec.rb +63 -1
- data/spec/core/object_graph_spec.rb +1 -1
- data/spec/core/schema_spec.rb +1 -0
- data/spec/extensions/active_model_spec.rb +47 -0
- data/spec/extensions/association_dependencies_spec.rb +108 -0
- data/spec/extensions/class_table_inheritance_spec.rb +252 -0
- data/spec/extensions/force_encoding_spec.rb +75 -0
- data/spec/extensions/looser_typecasting_spec.rb +39 -0
- data/spec/extensions/many_through_many_spec.rb +60 -2
- data/spec/extensions/named_timezones_spec.rb +72 -0
- data/spec/extensions/nested_attributes_spec.rb +29 -1
- data/spec/extensions/schema_dumper_spec.rb +10 -0
- data/spec/extensions/spec_helper.rb +1 -1
- data/spec/extensions/sql_expr_spec.rb +89 -0
- data/spec/extensions/subclasses_spec.rb +52 -0
- data/spec/extensions/thread_local_timezones_spec.rb +45 -0
- data/spec/extensions/touch_spec.rb +155 -0
- data/spec/extensions/typecast_on_load_spec.rb +60 -0
- data/spec/integration/database_test.rb +8 -0
- data/spec/integration/dataset_test.rb +9 -9
- data/spec/integration/plugin_test.rb +139 -0
- data/spec/integration/schema_test.rb +7 -7
- data/spec/integration/spec_helper.rb +32 -1
- data/spec/integration/timezone_test.rb +3 -3
- data/spec/integration/transaction_test.rb +1 -1
- data/spec/integration/type_test.rb +6 -6
- data/spec/model/association_reflection_spec.rb +18 -0
- data/spec/model/associations_spec.rb +169 -9
- data/spec/model/base_spec.rb +2 -0
- data/spec/model/eager_loading_spec.rb +82 -2
- data/spec/model/model_spec.rb +8 -1
- data/spec/model/record_spec.rb +52 -9
- metadata +33 -23
data/spec/model/base_spec.rb
CHANGED
@@ -350,6 +350,8 @@ describe Sequel::Model, ".[] optimization" do
|
|
350
350
|
@c.simple_pk.should == nil
|
351
351
|
@c.set_primary_key :b, :a
|
352
352
|
@c.simple_pk.should == nil
|
353
|
+
@c.set_primary_key [:b, :a]
|
354
|
+
@c.simple_pk.should == nil
|
353
355
|
end
|
354
356
|
|
355
357
|
it "should have simple table set if passed a Symbol to set_dataset" do
|
@@ -314,7 +314,7 @@ describe Sequel::Model, "#eager" do
|
|
314
314
|
a = EagerBand.eager(:graph_members).all
|
315
315
|
a.should == [EagerBand.load(:id=>2)]
|
316
316
|
MODEL_DB.sqls.should == ['SELECT * FROM bands',
|
317
|
-
'SELECT members.id, bands.id AS bands_id, bands.p_k, bm.band_id AS x_foreign_key_x FROM members INNER JOIN bm ON ((bm.member_id = members.id) AND (bm.band_id IN (2))) LEFT OUTER JOIN bm AS bm_0 ON (bm_0.member_id = members.id) LEFT OUTER JOIN bands ON (bands.id = bm_0.band_id) ORDER BY bands.id']
|
317
|
+
'SELECT members.id, bands.id AS bands_id, bands.p_k, bm.band_id AS x_foreign_key_x FROM (SELECT members.* FROM members INNER JOIN bm ON ((bm.member_id = members.id) AND (bm.band_id IN (2)))) AS members LEFT OUTER JOIN bm AS bm_0 ON (bm_0.member_id = members.id) LEFT OUTER JOIN bands ON (bands.id = bm_0.band_id) ORDER BY bands.id']
|
318
318
|
a = a.first
|
319
319
|
a.graph_members.should == [EagerBandMember.load(:id=>5)]
|
320
320
|
a.graph_members.first.bands.should == [EagerBand.load(:id=>2, :p_k=>6), EagerBand.load(:id=>3, :p_k=>6)]
|
@@ -363,7 +363,7 @@ describe Sequel::Model, "#eager" do
|
|
363
363
|
})
|
364
364
|
a = EagerBand.load(:id=>2)
|
365
365
|
a.graph_members.should == [EagerBandMember.load(:id=>5)]
|
366
|
-
MODEL_DB.sqls.should == ['SELECT members.id, bands.id AS bands_id, bands.p_k FROM members INNER JOIN bm ON ((bm.member_id = members.id) AND (bm.band_id = 2)) LEFT OUTER JOIN bm AS bm_0 ON (bm_0.member_id = members.id) LEFT OUTER JOIN bands ON (bands.id = bm_0.band_id) ORDER BY bands.id']
|
366
|
+
MODEL_DB.sqls.should == ['SELECT members.id, bands.id AS bands_id, bands.p_k FROM (SELECT members.* FROM members INNER JOIN bm ON ((bm.member_id = members.id) AND (bm.band_id = 2))) AS members LEFT OUTER JOIN bm AS bm_0 ON (bm_0.member_id = members.id) LEFT OUTER JOIN bands ON (bands.id = bm_0.band_id) ORDER BY bands.id']
|
367
367
|
a.graph_members.first.bands.should == [EagerBand.load(:id=>2, :p_k=>6), EagerBand.load(:id=>3, :p_k=>6)]
|
368
368
|
MODEL_DB.sqls.length.should == 1
|
369
369
|
end
|
@@ -504,7 +504,50 @@ describe Sequel::Model, "#eager" do
|
|
504
504
|
as.length.should == 1
|
505
505
|
as.first.special_tracks.should == [EagerTrack.load(:album_id=>2, :id=>1)]
|
506
506
|
end
|
507
|
+
|
508
|
+
it "should respect the many_to_one association's composite keys" do
|
509
|
+
EagerAlbum.many_to_one :special_band, :class=>:EagerBand, :primary_key=>[:id, :p_k], :key=>[:band_id, :id]
|
510
|
+
EagerBand.dataset.extend(Module.new {
|
511
|
+
def fetch_rows(sql)
|
512
|
+
MODEL_DB.sqls << sql
|
513
|
+
yield({:p_k=>1, :id=>2})
|
514
|
+
end
|
515
|
+
})
|
516
|
+
as = EagerAlbum.eager(:special_band).all
|
517
|
+
MODEL_DB.sqls.should == ['SELECT * FROM albums', "SELECT * FROM bands WHERE ((bands.id, bands.p_k) IN ((2, 1)))"]
|
518
|
+
as.length.should == 1
|
519
|
+
as.first.special_band.should == EagerBand.load(:p_k=>1, :id=>2)
|
520
|
+
end
|
521
|
+
|
522
|
+
it "should respect the one_to_many association's composite keys" do
|
523
|
+
EagerAlbum.one_to_many :special_tracks, :class=>:EagerTrack, :primary_key=>[:band_id, :id], :key=>[:id, :album_id]
|
524
|
+
EagerTrack.dataset.extend(Module.new {
|
525
|
+
def fetch_rows(sql)
|
526
|
+
MODEL_DB.sqls << sql
|
527
|
+
yield({:album_id=>1, :id=>2})
|
528
|
+
end
|
529
|
+
})
|
530
|
+
as = EagerAlbum.eager(:special_tracks).all
|
531
|
+
MODEL_DB.sqls.should == ['SELECT * FROM albums', "SELECT * FROM tracks WHERE ((tracks.id, tracks.album_id) IN ((2, 1)))"]
|
532
|
+
as.length.should == 1
|
533
|
+
as.first.special_tracks.should == [EagerTrack.load(:album_id=>1, :id=>2)]
|
534
|
+
end
|
507
535
|
|
536
|
+
it "should respect many_to_many association's composite keys" do
|
537
|
+
EagerAlbum.many_to_many :special_genres, :class=>:EagerGenre, :left_primary_key=>[:band_id, :id], :left_key=>[:l1, :l2], :right_primary_key=>[:xxx, :id], :right_key=>[:r1, :r2], :join_table=>:ag
|
538
|
+
EagerGenre.dataset.extend(Module.new {
|
539
|
+
def fetch_rows(sql)
|
540
|
+
MODEL_DB.sqls << sql
|
541
|
+
yield({:x_foreign_key_0_x=>2, :x_foreign_key_1_x=>1, :id=>5})
|
542
|
+
yield({:x_foreign_key_0_x=>2, :x_foreign_key_1_x=>1, :id=>6})
|
543
|
+
end
|
544
|
+
})
|
545
|
+
as = EagerAlbum.eager(:special_genres).all
|
546
|
+
MODEL_DB.sqls.should == ['SELECT * FROM albums', "SELECT genres.*, ag.l1 AS x_foreign_key_0_x, ag.l2 AS x_foreign_key_1_x FROM genres INNER JOIN ag ON ((ag.r1 = genres.xxx) AND (ag.r2 = genres.id) AND ((ag.l1, ag.l2) IN ((2, 1))))"]
|
547
|
+
as.length.should == 1
|
548
|
+
as.first.special_genres.should == [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
|
549
|
+
end
|
550
|
+
|
508
551
|
it "should respect many_to_many association's :left_primary_key and :right_primary_key options" do
|
509
552
|
EagerAlbum.many_to_many :special_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_primary_key=>:xxx, :right_key=>:genre_id, :join_table=>:ag
|
510
553
|
EagerGenre.dataset.extend(Module.new {
|
@@ -1059,6 +1102,43 @@ describe Sequel::Model, "#eager_graph" do
|
|
1059
1102
|
as.should == [GraphAlbum.load(:id=>3, :band_id=>2)]
|
1060
1103
|
as.first.right_tracks.should == [GraphTrack.load(:id=>5, :album_id=>2), GraphTrack.load(:id=>6, :album_id=>2)]
|
1061
1104
|
end
|
1105
|
+
|
1106
|
+
it "should respect many_to_one association's composite keys" do
|
1107
|
+
GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>[:band_id, :id], :primary_key=>[:vocalist_id, :id]
|
1108
|
+
ds = GraphAlbum.eager_graph(:inner_band)
|
1109
|
+
ds.sql.should == 'SELECT albums.id, albums.band_id, inner_band.id AS inner_band_id, inner_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS inner_band ON ((inner_band.vocalist_id = albums.band_id) AND (inner_band.id = albums.id))'
|
1110
|
+
def ds.fetch_rows(sql, &block)
|
1111
|
+
yield({:id=>3, :band_id=>2, :inner_band_id=>3, :vocalist_id=>2})
|
1112
|
+
end
|
1113
|
+
as = ds.all
|
1114
|
+
as.should == [GraphAlbum.load(:id=>3, :band_id=>2)]
|
1115
|
+
as.first.inner_band.should == GraphBand.load(:id=>3, :vocalist_id=>2)
|
1116
|
+
end
|
1117
|
+
|
1118
|
+
it "should respect one_to_many association's composite keys" do
|
1119
|
+
GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>[:album_id, :id], :primary_key=>[:band_id, :id]
|
1120
|
+
ds = GraphAlbum.eager_graph(:right_tracks)
|
1121
|
+
ds.sql.should == 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON ((right_tracks.album_id = albums.band_id) AND (right_tracks.id = albums.id))'
|
1122
|
+
def ds.fetch_rows(sql, &block)
|
1123
|
+
yield({:id=>3, :band_id=>2, :right_tracks_id=>3, :album_id=>2})
|
1124
|
+
end
|
1125
|
+
as = ds.all
|
1126
|
+
as.should == [GraphAlbum.load(:id=>3, :band_id=>2)]
|
1127
|
+
as.first.right_tracks.should == [GraphTrack.load(:id=>3, :album_id=>2)]
|
1128
|
+
end
|
1129
|
+
|
1130
|
+
it "should respect many_to_many association's composite keys" do
|
1131
|
+
GraphAlbum.many_to_many :sbands, :class=>'GraphBand', :left_key=>[:l1, :l2], :left_primary_key=>[:band_id, :id], :right_key=>[:r1, :r2], :right_primary_key=>[:vocalist_id, :id], :join_table=>:b
|
1132
|
+
ds = GraphAlbum.eager_graph(:sbands)
|
1133
|
+
ds.sql.should == 'SELECT albums.id, albums.band_id, sbands.id AS sbands_id, sbands.vocalist_id FROM albums LEFT OUTER JOIN b ON ((b.l1 = albums.band_id) AND (b.l2 = albums.id)) LEFT OUTER JOIN bands AS sbands ON ((sbands.vocalist_id = b.r1) AND (sbands.id = b.r2))'
|
1134
|
+
def ds.fetch_rows(sql, &block)
|
1135
|
+
yield({:id=>3, :band_id=>2, :sbands_id=>5, :vocalist_id=>6})
|
1136
|
+
yield({:id=>3, :band_id=>2, :sbands_id=>6, :vocalist_id=>22})
|
1137
|
+
end
|
1138
|
+
as = ds.all
|
1139
|
+
as.should == [GraphAlbum.load(:id=>3, :band_id=>2)]
|
1140
|
+
as.first.sbands.should == [GraphBand.load(:id=>5, :vocalist_id=>6), GraphBand.load(:id=>6, :vocalist_id=>22)]
|
1141
|
+
end
|
1062
1142
|
|
1063
1143
|
it "should respect many_to_many association's :left_primary_key and :right_primary_key options" do
|
1064
1144
|
GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :left_primary_key=>:band_id, :right_key=>:genre_id, :right_primary_key=>:xxx, :join_table=>:ag
|
data/spec/model/model_spec.rb
CHANGED
@@ -436,12 +436,19 @@ describe Sequel::Model, ".[]" do
|
|
436
436
|
$sqls.last.should == "SELECT * FROM items WHERE (name = 'sharon') LIMIT 1"
|
437
437
|
end
|
438
438
|
|
439
|
-
it "should work correctly for composite primary key" do
|
439
|
+
it "should work correctly for composite primary key specified as array" do
|
440
440
|
@c.set_primary_key [:node_id, :kind]
|
441
441
|
@c[3921, 201].should be_a_kind_of(@c)
|
442
442
|
$sqls.last.should =~ \
|
443
443
|
/^SELECT \* FROM items WHERE \((\(node_id = 3921\) AND \(kind = 201\))|(\(kind = 201\) AND \(node_id = 3921\))\) LIMIT 1$/
|
444
444
|
end
|
445
|
+
|
446
|
+
it "should work correctly for composite primary key specified as separate arguments" do
|
447
|
+
@c.set_primary_key :node_id, :kind
|
448
|
+
@c[3921, 201].should be_a_kind_of(@c)
|
449
|
+
$sqls.last.should =~ \
|
450
|
+
/^SELECT \* FROM items WHERE \((\(node_id = 3921\) AND \(kind = 201\))|(\(kind = 201\) AND \(node_id = 3921\))\) LIMIT 1$/
|
451
|
+
end
|
445
452
|
end
|
446
453
|
|
447
454
|
context "Model#inspect" do
|
data/spec/model/record_spec.rb
CHANGED
@@ -192,27 +192,70 @@ describe "Model#save" do
|
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
|
-
describe "Model#
|
196
|
-
|
197
|
-
|
195
|
+
describe "Model#modified?" do
|
196
|
+
before do
|
197
|
+
@c = Class.new(Sequel::Model(:items))
|
198
|
+
@c.class_eval do
|
199
|
+
columns :id, :x
|
200
|
+
@db_schema = {:x => {:type => :integer}}
|
201
|
+
end
|
198
202
|
MODEL_DB.reset
|
203
|
+
end
|
204
|
+
|
205
|
+
it "should be true if the object is new" do
|
206
|
+
@c.new.modified?.should == true
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should be false if the object has not been modified" do
|
210
|
+
@c.load(:id=>1).modified?.should == false
|
211
|
+
end
|
212
|
+
|
213
|
+
it "should be true if the object has been modified" do
|
214
|
+
o = @c.load(:id=>1, :x=>2)
|
215
|
+
o.x = 3
|
216
|
+
o.modified?.should == true
|
217
|
+
end
|
218
|
+
|
219
|
+
it "should be false if a column value is set that is the same as the current value after typecasting" do
|
220
|
+
o = @c.load(:id=>1, :x=>2)
|
221
|
+
o.x = '2'
|
222
|
+
o.modified?.should == false
|
223
|
+
end
|
224
|
+
|
225
|
+
it "should be true if a column value is set that is the different as the current value after typecasting" do
|
226
|
+
o = @c.load(:id=>1, :x=>'2')
|
227
|
+
o.x = '2'
|
228
|
+
o.modified?.should == true
|
229
|
+
end
|
230
|
+
end
|
199
231
|
|
232
|
+
describe "Model#save_changes" do
|
233
|
+
|
234
|
+
before do
|
200
235
|
@c = Class.new(Sequel::Model(:items)) do
|
201
236
|
unrestrict_primary_key
|
202
237
|
columns :id, :x, :y
|
203
238
|
end
|
239
|
+
MODEL_DB.reset
|
204
240
|
end
|
205
241
|
|
206
|
-
it "should
|
207
|
-
o = @c.new(:
|
242
|
+
it "should always save if the object is new" do
|
243
|
+
o = @c.new(:x => 1)
|
208
244
|
o.save_changes
|
209
|
-
|
210
|
-
|
245
|
+
MODEL_DB.sqls.first.should == "INSERT INTO items (x) VALUES (1)"
|
246
|
+
end
|
211
247
|
|
248
|
+
it "should do nothing if no changed columns" do
|
212
249
|
o = @c.load(:id => 3, :x => 1, :y => nil)
|
213
250
|
o.save_changes
|
214
|
-
|
215
|
-
|
251
|
+
MODEL_DB.sqls.should == []
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should do nothing if modified? is false" do
|
255
|
+
o = @c.load(:id => 3, :x => 1, :y => nil)
|
256
|
+
def o.modified?; false; end
|
257
|
+
o.save_changes
|
258
|
+
MODEL_DB.sqls.should == []
|
216
259
|
end
|
217
260
|
|
218
261
|
it "should update only changed columns" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-01 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -55,6 +55,7 @@ extra_rdoc_files:
|
|
55
55
|
- doc/release_notes/3.2.0.txt
|
56
56
|
- doc/release_notes/3.3.0.txt
|
57
57
|
- doc/release_notes/3.4.0.txt
|
58
|
+
- doc/release_notes/3.5.0.txt
|
58
59
|
files:
|
59
60
|
- COPYING
|
60
61
|
- CHANGELOG
|
@@ -67,7 +68,6 @@ files:
|
|
67
68
|
- doc/opening_databases.rdoc
|
68
69
|
- doc/prepared_statements.rdoc
|
69
70
|
- doc/reflection.rdoc
|
70
|
-
- doc/release_notes
|
71
71
|
- doc/release_notes/1.0.txt
|
72
72
|
- doc/release_notes/1.1.txt
|
73
73
|
- doc/release_notes/1.3.txt
|
@@ -91,10 +91,10 @@ files:
|
|
91
91
|
- doc/release_notes/3.2.0.txt
|
92
92
|
- doc/release_notes/3.3.0.txt
|
93
93
|
- doc/release_notes/3.4.0.txt
|
94
|
+
- doc/release_notes/3.5.0.txt
|
94
95
|
- doc/schema.rdoc
|
95
96
|
- doc/sharding.rdoc
|
96
97
|
- doc/virtual_rows.rdoc
|
97
|
-
- spec/adapters
|
98
98
|
- spec/adapters/firebird_spec.rb
|
99
99
|
- spec/adapters/informix_spec.rb
|
100
100
|
- spec/adapters/mysql_spec.rb
|
@@ -102,7 +102,7 @@ files:
|
|
102
102
|
- spec/adapters/postgres_spec.rb
|
103
103
|
- spec/adapters/spec_helper.rb
|
104
104
|
- spec/adapters/sqlite_spec.rb
|
105
|
-
- spec/
|
105
|
+
- spec/adapters/mssql_spec.rb
|
106
106
|
- spec/core/connection_pool_spec.rb
|
107
107
|
- spec/core/core_sql_spec.rb
|
108
108
|
- spec/core/database_spec.rb
|
@@ -113,7 +113,6 @@ files:
|
|
113
113
|
- spec/core/schema_spec.rb
|
114
114
|
- spec/core/spec_helper.rb
|
115
115
|
- spec/core/version_spec.rb
|
116
|
-
- spec/extensions
|
117
116
|
- spec/extensions/blank_spec.rb
|
118
117
|
- spec/extensions/caching_spec.rb
|
119
118
|
- spec/extensions/hook_class_methods_spec.rb
|
@@ -139,7 +138,17 @@ files:
|
|
139
138
|
- spec/extensions/instance_hooks_spec.rb
|
140
139
|
- spec/extensions/boolean_readers_spec.rb
|
141
140
|
- spec/extensions/nested_attributes_spec.rb
|
142
|
-
- spec/
|
141
|
+
- spec/extensions/looser_typecasting_spec.rb
|
142
|
+
- spec/extensions/typecast_on_load_spec.rb
|
143
|
+
- spec/extensions/subclasses_spec.rb
|
144
|
+
- spec/extensions/active_model_spec.rb
|
145
|
+
- spec/extensions/association_dependencies_spec.rb
|
146
|
+
- spec/extensions/sql_expr_spec.rb
|
147
|
+
- spec/extensions/touch_spec.rb
|
148
|
+
- spec/extensions/named_timezones_spec.rb
|
149
|
+
- spec/extensions/thread_local_timezones_spec.rb
|
150
|
+
- spec/extensions/force_encoding_spec.rb
|
151
|
+
- spec/extensions/class_table_inheritance_spec.rb
|
143
152
|
- spec/integration/database_test.rb
|
144
153
|
- spec/integration/dataset_test.rb
|
145
154
|
- spec/integration/eager_loader_test.rb
|
@@ -149,7 +158,7 @@ files:
|
|
149
158
|
- spec/integration/transaction_test.rb
|
150
159
|
- spec/integration/type_test.rb
|
151
160
|
- spec/integration/timezone_test.rb
|
152
|
-
- spec/
|
161
|
+
- spec/integration/plugin_test.rb
|
153
162
|
- spec/model/association_reflection_spec.rb
|
154
163
|
- spec/model/associations_spec.rb
|
155
164
|
- spec/model/base_spec.rb
|
@@ -167,21 +176,17 @@ files:
|
|
167
176
|
- spec/spec_config.rb
|
168
177
|
- spec/spec_config.rb.example
|
169
178
|
- lib/sequel.rb
|
170
|
-
- lib/sequel
|
171
|
-
- lib/sequel/adapters
|
172
179
|
- lib/sequel/adapters/ado.rb
|
173
180
|
- lib/sequel/adapters/amalgalite.rb
|
174
181
|
- lib/sequel/adapters/db2.rb
|
175
182
|
- lib/sequel/adapters/dbi.rb
|
176
183
|
- lib/sequel/adapters/do.rb
|
177
|
-
- lib/sequel/adapters/do
|
178
184
|
- lib/sequel/adapters/do/mysql.rb
|
179
185
|
- lib/sequel/adapters/do/postgres.rb
|
180
186
|
- lib/sequel/adapters/do/sqlite.rb
|
181
187
|
- lib/sequel/adapters/firebird.rb
|
182
188
|
- lib/sequel/adapters/informix.rb
|
183
189
|
- lib/sequel/adapters/jdbc.rb
|
184
|
-
- lib/sequel/adapters/jdbc
|
185
190
|
- lib/sequel/adapters/jdbc/h2.rb
|
186
191
|
- lib/sequel/adapters/jdbc/mysql.rb
|
187
192
|
- lib/sequel/adapters/jdbc/oracle.rb
|
@@ -193,7 +198,6 @@ files:
|
|
193
198
|
- lib/sequel/adapters/openbase.rb
|
194
199
|
- lib/sequel/adapters/oracle.rb
|
195
200
|
- lib/sequel/adapters/postgres.rb
|
196
|
-
- lib/sequel/adapters/shared
|
197
201
|
- lib/sequel/adapters/shared/mssql.rb
|
198
202
|
- lib/sequel/adapters/shared/mysql.rb
|
199
203
|
- lib/sequel/adapters/shared/oracle.rb
|
@@ -201,28 +205,22 @@ files:
|
|
201
205
|
- lib/sequel/adapters/shared/progress.rb
|
202
206
|
- lib/sequel/adapters/shared/sqlite.rb
|
203
207
|
- lib/sequel/adapters/sqlite.rb
|
204
|
-
- lib/sequel/adapters/utils
|
205
208
|
- lib/sequel/adapters/utils/stored_procedures.rb
|
206
|
-
- lib/sequel/adapters/ado
|
207
209
|
- lib/sequel/adapters/ado/mssql.rb
|
208
|
-
- lib/sequel/adapters/odbc
|
209
210
|
- lib/sequel/adapters/odbc/mssql.rb
|
210
211
|
- lib/sequel/connection_pool.rb
|
211
212
|
- lib/sequel/core.rb
|
212
213
|
- lib/sequel/core_sql.rb
|
213
214
|
- lib/sequel/database.rb
|
214
|
-
- lib/sequel/database
|
215
215
|
- lib/sequel/database/schema_generator.rb
|
216
216
|
- lib/sequel/database/schema_methods.rb
|
217
217
|
- lib/sequel/database/schema_sql.rb
|
218
218
|
- lib/sequel/dataset.rb
|
219
|
-
- lib/sequel/dataset
|
220
219
|
- lib/sequel/dataset/convenience.rb
|
221
220
|
- lib/sequel/dataset/graph.rb
|
222
221
|
- lib/sequel/dataset/prepared_statements.rb
|
223
222
|
- lib/sequel/dataset/sql.rb
|
224
223
|
- lib/sequel/exceptions.rb
|
225
|
-
- lib/sequel/extensions
|
226
224
|
- lib/sequel/extensions/blank.rb
|
227
225
|
- lib/sequel/extensions/inflector.rb
|
228
226
|
- lib/sequel/extensions/migration.rb
|
@@ -231,9 +229,12 @@ files:
|
|
231
229
|
- lib/sequel/extensions/query.rb
|
232
230
|
- lib/sequel/extensions/schema_dumper.rb
|
233
231
|
- lib/sequel/extensions/string_date_time.rb
|
232
|
+
- lib/sequel/extensions/looser_typecasting.rb
|
233
|
+
- lib/sequel/extensions/sql_expr.rb
|
234
|
+
- lib/sequel/extensions/named_timezones.rb
|
235
|
+
- lib/sequel/extensions/thread_local_timezones.rb
|
234
236
|
- lib/sequel/metaprogramming.rb
|
235
237
|
- lib/sequel/model.rb
|
236
|
-
- lib/sequel/model
|
237
238
|
- lib/sequel/model/associations.rb
|
238
239
|
- lib/sequel/model/base.rb
|
239
240
|
- lib/sequel/model/errors.rb
|
@@ -241,7 +242,6 @@ files:
|
|
241
242
|
- lib/sequel/model/inflections.rb
|
242
243
|
- lib/sequel/model/plugins.rb
|
243
244
|
- lib/sequel/model/default_inflections.rb
|
244
|
-
- lib/sequel/plugins
|
245
245
|
- lib/sequel/plugins/caching.rb
|
246
246
|
- lib/sequel/plugins/hook_class_methods.rb
|
247
247
|
- lib/sequel/plugins/identity_map.rb
|
@@ -258,12 +258,22 @@ files:
|
|
258
258
|
- lib/sequel/plugins/boolean_readers.rb
|
259
259
|
- lib/sequel/plugins/instance_hooks.rb
|
260
260
|
- lib/sequel/plugins/nested_attributes.rb
|
261
|
+
- lib/sequel/plugins/touch.rb
|
262
|
+
- lib/sequel/plugins/typecast_on_load.rb
|
263
|
+
- lib/sequel/plugins/subclasses.rb
|
264
|
+
- lib/sequel/plugins/active_model.rb
|
265
|
+
- lib/sequel/plugins/association_dependencies.rb
|
266
|
+
- lib/sequel/plugins/force_encoding.rb
|
267
|
+
- lib/sequel/plugins/class_table_inheritance.rb
|
261
268
|
- lib/sequel/sql.rb
|
262
269
|
- lib/sequel/version.rb
|
270
|
+
- lib/sequel/timezones.rb
|
263
271
|
- lib/sequel_core.rb
|
264
272
|
- lib/sequel_model.rb
|
265
273
|
has_rdoc: true
|
266
274
|
homepage: http://sequel.rubyforge.org
|
275
|
+
licenses: []
|
276
|
+
|
267
277
|
post_install_message:
|
268
278
|
rdoc_options:
|
269
279
|
- --quiet
|
@@ -290,9 +300,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
300
|
requirements: []
|
291
301
|
|
292
302
|
rubyforge_project: sequel
|
293
|
-
rubygems_version: 1.3.
|
303
|
+
rubygems_version: 1.3.5
|
294
304
|
signing_key:
|
295
|
-
specification_version:
|
305
|
+
specification_version: 3
|
296
306
|
summary: The Database Toolkit for Ruby
|
297
307
|
test_files: []
|
298
308
|
|