sequel 3.4.0 → 3.5.0
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/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
|
|