sequel 3.35.0 → 3.36.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 +78 -0
- data/Rakefile +3 -3
- data/bin/sequel +3 -1
- data/doc/advanced_associations.rdoc +154 -11
- data/doc/migration.rdoc +18 -0
- data/doc/object_model.rdoc +541 -0
- data/doc/opening_databases.rdoc +4 -1
- data/doc/release_notes/3.36.0.txt +245 -0
- data/doc/schema_modification.rdoc +0 -6
- data/lib/sequel/adapters/do/mysql.rb +7 -0
- data/lib/sequel/adapters/jdbc.rb +11 -3
- data/lib/sequel/adapters/jdbc/mysql.rb +3 -5
- data/lib/sequel/adapters/jdbc/postgresql.rb +10 -8
- data/lib/sequel/adapters/jdbc/progress.rb +21 -0
- data/lib/sequel/adapters/mock.rb +2 -6
- data/lib/sequel/adapters/mysql.rb +3 -9
- data/lib/sequel/adapters/mysql2.rb +12 -11
- data/lib/sequel/adapters/postgres.rb +32 -40
- data/lib/sequel/adapters/shared/mssql.rb +15 -11
- data/lib/sequel/adapters/shared/mysql.rb +28 -3
- data/lib/sequel/adapters/shared/oracle.rb +5 -0
- data/lib/sequel/adapters/shared/postgres.rb +59 -5
- data/lib/sequel/adapters/shared/sqlite.rb +3 -13
- data/lib/sequel/adapters/sqlite.rb +0 -7
- data/lib/sequel/adapters/swift/mysql.rb +2 -5
- data/lib/sequel/adapters/tinytds.rb +1 -2
- data/lib/sequel/connection_pool/sharded_threaded.rb +5 -1
- data/lib/sequel/connection_pool/threaded.rb +9 -1
- data/lib/sequel/database/dataset_defaults.rb +3 -1
- data/lib/sequel/database/misc.rb +7 -1
- data/lib/sequel/database/query.rb +11 -3
- data/lib/sequel/database/schema_generator.rb +40 -9
- data/lib/sequel/database/schema_methods.rb +6 -1
- data/lib/sequel/dataset/actions.rb +5 -5
- data/lib/sequel/dataset/prepared_statements.rb +3 -1
- data/lib/sequel/dataset/query.rb +1 -1
- data/lib/sequel/extensions/migration.rb +28 -0
- data/lib/sequel/extensions/pg_auto_parameterize.rb +0 -9
- data/lib/sequel/extensions/pg_inet.rb +89 -0
- data/lib/sequel/extensions/pg_json.rb +178 -0
- data/lib/sequel/extensions/schema_dumper.rb +24 -6
- data/lib/sequel/model/associations.rb +19 -15
- data/lib/sequel/model/base.rb +11 -12
- data/lib/sequel/plugins/composition.rb +1 -2
- data/lib/sequel/plugins/eager_each.rb +59 -0
- data/lib/sequel/plugins/json_serializer.rb +41 -4
- data/lib/sequel/plugins/nested_attributes.rb +72 -52
- data/lib/sequel/plugins/optimistic_locking.rb +8 -0
- data/lib/sequel/plugins/tactical_eager_loading.rb +7 -7
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/postgres_spec.rb +271 -1
- data/spec/adapters/sqlite_spec.rb +11 -0
- data/spec/core/connection_pool_spec.rb +26 -1
- data/spec/core/database_spec.rb +19 -0
- data/spec/core/dataset_spec.rb +45 -5
- data/spec/core/expression_filters_spec.rb +31 -67
- data/spec/core/mock_adapter_spec.rb +4 -0
- data/spec/extensions/core_extensions_spec.rb +83 -0
- data/spec/extensions/eager_each_spec.rb +34 -0
- data/spec/extensions/inflector_spec.rb +0 -4
- data/spec/extensions/json_serializer_spec.rb +32 -1
- data/spec/extensions/migration_spec.rb +28 -0
- data/spec/extensions/nested_attributes_spec.rb +134 -1
- data/spec/extensions/optimistic_locking_spec.rb +15 -1
- data/spec/extensions/pg_hstore_spec.rb +1 -1
- data/spec/extensions/pg_inet_spec.rb +44 -0
- data/spec/extensions/pg_json_spec.rb +101 -0
- data/spec/extensions/prepared_statements_spec.rb +30 -0
- data/spec/extensions/rcte_tree_spec.rb +9 -0
- data/spec/extensions/schema_dumper_spec.rb +195 -7
- data/spec/extensions/serialization_spec.rb +4 -0
- data/spec/extensions/spec_helper.rb +9 -1
- data/spec/extensions/tactical_eager_loading_spec.rb +8 -0
- data/spec/integration/database_test.rb +5 -1
- data/spec/integration/prepared_statement_test.rb +20 -2
- data/spec/model/associations_spec.rb +27 -0
- data/spec/model/base_spec.rb +54 -0
- data/spec/model/model_spec.rb +6 -0
- data/spec/model/record_spec.rb +18 -0
- data/spec/rcov.opts +2 -0
- metadata +14 -3
data/spec/model/model_spec.rb
CHANGED
@@ -571,6 +571,12 @@ describe Sequel::Model, ".[]" do
|
|
571
571
|
MODEL_DB.sqls.should == ["SELECT * FROM items WHERE id = 9999"]
|
572
572
|
end
|
573
573
|
|
574
|
+
it "should have #[] return nil if no rows match" do
|
575
|
+
@c.dataset._fetch = []
|
576
|
+
@c[1].should == nil
|
577
|
+
MODEL_DB.sqls.should == ["SELECT * FROM items WHERE id = 1"]
|
578
|
+
end
|
579
|
+
|
574
580
|
it "should work correctly for custom primary key" do
|
575
581
|
@c.set_primary_key :name
|
576
582
|
@c['sharon'].should == @c.load(:name => 'sharon', :id => 1)
|
data/spec/model/record_spec.rb
CHANGED
@@ -942,6 +942,15 @@ describe Sequel::Model, "#set_fields" do
|
|
942
942
|
@o1.set_fields({:x => 1, :y => 3, :z=>3, :id=>4}, [:x, :y], :missing=>:raise)
|
943
943
|
@o1.values.should == {:x => 1, :y => 3}
|
944
944
|
end
|
945
|
+
|
946
|
+
it "should use default behavior for an unrecognized :missing option" do
|
947
|
+
@o1.set_fields({:x => 1, :y => 2, :z=>3, :id=>4}, [:x, :y], :missing=>:foo)
|
948
|
+
@o1.values.should == {:x => 1, :y => 2}
|
949
|
+
@o1.set_fields({:x => 9, :y => 8, :z=>6, :id=>7}, [:x, :y, :id], :missing=>:foo)
|
950
|
+
@o1.values.should == {:x => 9, :y => 8, :id=>7}
|
951
|
+
MODEL_DB.sqls.should == []
|
952
|
+
end
|
953
|
+
|
945
954
|
end
|
946
955
|
|
947
956
|
describe Sequel::Model, "#update_fields" do
|
@@ -1530,6 +1539,15 @@ describe Sequel::Model, "typecasting" do
|
|
1530
1539
|
proc{@c.new.x = ''}.should raise_error
|
1531
1540
|
end
|
1532
1541
|
|
1542
|
+
specify "should handle typecasting where == raises an error on the object" do
|
1543
|
+
m = @c.new
|
1544
|
+
o = Object.new
|
1545
|
+
def o.==(v) raise ArgumentError end
|
1546
|
+
def o.to_i() 4 end
|
1547
|
+
m.x = o
|
1548
|
+
m.x.should == 4
|
1549
|
+
end
|
1550
|
+
|
1533
1551
|
specify "should not typecast nil if NULLs are allowed" do
|
1534
1552
|
@c.db_schema[:x][:allow_null] = true
|
1535
1553
|
m = @c.new
|
data/spec/rcov.opts
CHANGED
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.36.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: The Database Toolkit for Ruby
|
15
15
|
email: code@jeremyevans.net
|
@@ -41,6 +41,7 @@ extra_rdoc_files:
|
|
41
41
|
- doc/schema_modification.rdoc
|
42
42
|
- doc/transactions.rdoc
|
43
43
|
- doc/thread_safety.rdoc
|
44
|
+
- doc/object_model.rdoc
|
44
45
|
- doc/release_notes/1.0.txt
|
45
46
|
- doc/release_notes/1.1.txt
|
46
47
|
- doc/release_notes/1.3.txt
|
@@ -95,6 +96,7 @@ extra_rdoc_files:
|
|
95
96
|
- doc/release_notes/3.33.0.txt
|
96
97
|
- doc/release_notes/3.34.0.txt
|
97
98
|
- doc/release_notes/3.35.0.txt
|
99
|
+
- doc/release_notes/3.36.0.txt
|
98
100
|
files:
|
99
101
|
- MIT-LICENSE
|
100
102
|
- CHANGELOG
|
@@ -167,6 +169,7 @@ files:
|
|
167
169
|
- doc/release_notes/3.33.0.txt
|
168
170
|
- doc/release_notes/3.34.0.txt
|
169
171
|
- doc/release_notes/3.35.0.txt
|
172
|
+
- doc/release_notes/3.36.0.txt
|
170
173
|
- doc/sharding.rdoc
|
171
174
|
- doc/sql.rdoc
|
172
175
|
- doc/validations.rdoc
|
@@ -176,6 +179,7 @@ files:
|
|
176
179
|
- doc/schema_modification.rdoc
|
177
180
|
- doc/transactions.rdoc
|
178
181
|
- doc/thread_safety.rdoc
|
182
|
+
- doc/object_model.rdoc
|
179
183
|
- spec/adapters/firebird_spec.rb
|
180
184
|
- spec/adapters/informix_spec.rb
|
181
185
|
- spec/adapters/mssql_spec.rb
|
@@ -240,7 +244,7 @@ files:
|
|
240
244
|
- spec/extensions/update_primary_key_spec.rb
|
241
245
|
- spec/extensions/association_pks_spec.rb
|
242
246
|
- spec/extensions/json_serializer_spec.rb
|
243
|
-
- spec/extensions/
|
247
|
+
- spec/extensions/eager_each_spec.rb
|
244
248
|
- spec/extensions/list_spec.rb
|
245
249
|
- spec/extensions/tree_spec.rb
|
246
250
|
- spec/extensions/xml_serializer_spec.rb
|
@@ -269,6 +273,9 @@ files:
|
|
269
273
|
- spec/extensions/static_cache_spec.rb
|
270
274
|
- spec/extensions/query_literals_spec.rb
|
271
275
|
- spec/extensions/dirty_spec.rb
|
276
|
+
- spec/extensions/pg_json_spec.rb
|
277
|
+
- spec/extensions/core_extensions_spec.rb
|
278
|
+
- spec/extensions/pg_inet_spec.rb
|
272
279
|
- spec/extensions/columns_introspection_spec.rb
|
273
280
|
- spec/integration/associations_test.rb
|
274
281
|
- spec/integration/database_test.rb
|
@@ -370,6 +377,7 @@ files:
|
|
370
377
|
- lib/sequel/adapters/jdbc/firebird.rb
|
371
378
|
- lib/sequel/adapters/jdbc/hsqldb.rb
|
372
379
|
- lib/sequel/adapters/jdbc/derby.rb
|
380
|
+
- lib/sequel/adapters/jdbc/progress.rb
|
373
381
|
- lib/sequel/adapters/mysql.rb
|
374
382
|
- lib/sequel/adapters/odbc.rb
|
375
383
|
- lib/sequel/adapters/odbc/mssql.rb
|
@@ -442,6 +450,7 @@ files:
|
|
442
450
|
- lib/sequel/extensions/pg_auto_parameterize.rb
|
443
451
|
- lib/sequel/extensions/pg_statement_cache.rb
|
444
452
|
- lib/sequel/extensions/pg_array.rb
|
453
|
+
- lib/sequel/extensions/pg_json.rb
|
445
454
|
- lib/sequel/extensions/pg_array_ops.rb
|
446
455
|
- lib/sequel/extensions/pg_hstore.rb
|
447
456
|
- lib/sequel/extensions/pg_hstore_ops.rb
|
@@ -452,6 +461,7 @@ files:
|
|
452
461
|
- lib/sequel/extensions/select_remove.rb
|
453
462
|
- lib/sequel/extensions/core_extensions.rb
|
454
463
|
- lib/sequel/extensions/query_literals.rb
|
464
|
+
- lib/sequel/extensions/pg_inet.rb
|
455
465
|
- lib/sequel/metaprogramming.rb
|
456
466
|
- lib/sequel/model.rb
|
457
467
|
- lib/sequel/model/associations.rb
|
@@ -508,6 +518,7 @@ files:
|
|
508
518
|
- lib/sequel/plugins/dataset_associations.rb
|
509
519
|
- lib/sequel/plugins/many_to_one_pk_lookup.rb
|
510
520
|
- lib/sequel/plugins/dirty.rb
|
521
|
+
- lib/sequel/plugins/eager_each.rb
|
511
522
|
- lib/sequel/timezones.rb
|
512
523
|
- lib/sequel/version.rb
|
513
524
|
- lib/sequel/ast_transformer.rb
|