sequel 2.10.0 → 2.11.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 +51 -1
- data/README.rdoc +2 -2
- data/Rakefile +2 -2
- data/doc/advanced_associations.rdoc +6 -18
- data/doc/release_notes/1.0.txt +38 -0
- data/doc/release_notes/1.1.txt +143 -0
- data/doc/release_notes/1.3.txt +101 -0
- data/doc/release_notes/1.4.0.txt +53 -0
- data/doc/release_notes/1.5.0.txt +155 -0
- data/doc/release_notes/2.0.0.txt +298 -0
- data/doc/release_notes/2.1.0.txt +271 -0
- data/doc/release_notes/2.10.0.txt +328 -0
- data/doc/release_notes/2.11.0.txt +215 -0
- data/doc/release_notes/2.2.0.txt +253 -0
- data/doc/release_notes/2.3.0.txt +88 -0
- data/doc/release_notes/2.4.0.txt +106 -0
- data/doc/release_notes/2.5.0.txt +137 -0
- data/doc/release_notes/2.6.0.txt +157 -0
- data/doc/release_notes/2.7.0.txt +166 -0
- data/doc/release_notes/2.8.0.txt +171 -0
- data/doc/release_notes/2.9.0.txt +97 -0
- data/lib/sequel_core/adapters/ado.rb +3 -0
- data/lib/sequel_core/adapters/db2.rb +0 -11
- data/lib/sequel_core/adapters/dbi.rb +0 -11
- data/lib/sequel_core/adapters/do.rb +0 -12
- data/lib/sequel_core/adapters/firebird.rb +21 -16
- data/lib/sequel_core/adapters/informix.rb +1 -11
- data/lib/sequel_core/adapters/jdbc.rb +1 -13
- data/lib/sequel_core/adapters/jdbc/h2.rb +3 -11
- data/lib/sequel_core/adapters/jdbc/mysql.rb +0 -17
- data/lib/sequel_core/adapters/jdbc/postgresql.rb +3 -15
- data/lib/sequel_core/adapters/mysql.rb +31 -27
- data/lib/sequel_core/adapters/odbc.rb +34 -28
- data/lib/sequel_core/adapters/openbase.rb +0 -11
- data/lib/sequel_core/adapters/oracle.rb +11 -9
- data/lib/sequel_core/adapters/postgres.rb +14 -17
- data/lib/sequel_core/adapters/shared/mssql.rb +6 -15
- data/lib/sequel_core/adapters/shared/mysql.rb +29 -14
- data/lib/sequel_core/adapters/shared/oracle.rb +4 -0
- data/lib/sequel_core/adapters/shared/postgres.rb +30 -35
- data/lib/sequel_core/adapters/shared/progress.rb +4 -0
- data/lib/sequel_core/adapters/shared/sqlite.rb +73 -13
- data/lib/sequel_core/adapters/sqlite.rb +8 -18
- data/lib/sequel_core/adapters/utils/date_format.rb +21 -0
- data/lib/sequel_core/{dataset → adapters/utils}/stored_procedures.rb +0 -0
- data/lib/sequel_core/{dataset → adapters/utils}/unsupported.rb +0 -0
- data/lib/sequel_core/core_ext.rb +1 -1
- data/lib/sequel_core/core_sql.rb +9 -4
- data/lib/sequel_core/database.rb +63 -62
- data/lib/sequel_core/dataset.rb +9 -4
- data/lib/sequel_core/dataset/convenience.rb +10 -9
- data/lib/sequel_core/dataset/prepared_statements.rb +1 -1
- data/lib/sequel_core/dataset/sql.rb +130 -36
- data/lib/sequel_core/schema/sql.rb +2 -2
- data/lib/sequel_core/sql.rb +44 -51
- data/lib/sequel_core/version.rb +1 -1
- data/lib/sequel_model/associations.rb +25 -17
- data/lib/sequel_model/base.rb +35 -7
- data/lib/sequel_model/caching.rb +1 -6
- data/lib/sequel_model/record.rb +23 -5
- data/lib/sequel_model/validations.rb +20 -5
- data/spec/adapters/firebird_spec.rb +6 -1
- data/spec/adapters/mysql_spec.rb +12 -0
- data/spec/adapters/postgres_spec.rb +2 -2
- data/spec/adapters/sqlite_spec.rb +81 -2
- data/spec/integration/dataset_test.rb +2 -2
- data/spec/integration/type_test.rb +12 -2
- data/spec/sequel_core/core_sql_spec.rb +46 -12
- data/spec/sequel_core/database_spec.rb +24 -12
- data/spec/sequel_core/dataset_spec.rb +82 -32
- data/spec/sequel_core/schema_spec.rb +16 -0
- data/spec/sequel_model/associations_spec.rb +89 -0
- data/spec/sequel_model/base_spec.rb +66 -0
- data/spec/sequel_model/eager_loading_spec.rb +32 -0
- data/spec/sequel_model/record_spec.rb +9 -9
- data/spec/sequel_model/spec_helper.rb +3 -0
- data/spec/sequel_model/validations_spec.rb +63 -3
- metadata +41 -4
@@ -968,7 +968,7 @@ describe Sequel::Model, "typecasting" do
|
|
968
968
|
|
969
969
|
specify "should raise an error if invalid data is used in an integer field" do
|
970
970
|
@c.instance_variable_set(:@db_schema, {:x=>{:type=>:integer}})
|
971
|
-
proc{@c.new.x = 'a'}.should raise_error
|
971
|
+
proc{@c.new.x = 'a'}.should raise_error(Sequel::Error::InvalidValue)
|
972
972
|
end
|
973
973
|
|
974
974
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid integer" do
|
@@ -992,7 +992,7 @@ describe Sequel::Model, "typecasting" do
|
|
992
992
|
|
993
993
|
specify "should raise an error if invalid data is used in an float field" do
|
994
994
|
@c.instance_variable_set(:@db_schema, {:x=>{:type=>:float}})
|
995
|
-
proc{@c.new.x = 'a'}.should raise_error
|
995
|
+
proc{@c.new.x = 'a'}.should raise_error(Sequel::Error::InvalidValue)
|
996
996
|
end
|
997
997
|
|
998
998
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid float" do
|
@@ -1019,7 +1019,7 @@ describe Sequel::Model, "typecasting" do
|
|
1019
1019
|
|
1020
1020
|
specify "should raise an error if invalid data is used in an decimal field" do
|
1021
1021
|
@c.instance_variable_set(:@db_schema, {:x=>{:type=>:decimal}})
|
1022
|
-
proc{@c.new.x = Date.today}.should raise_error
|
1022
|
+
proc{@c.new.x = Date.today}.should raise_error(Sequel::Error::InvalidValue)
|
1023
1023
|
end
|
1024
1024
|
|
1025
1025
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid decimal" do
|
@@ -1095,8 +1095,8 @@ describe Sequel::Model, "typecasting" do
|
|
1095
1095
|
|
1096
1096
|
specify "should raise an error if invalid data is used in a date field" do
|
1097
1097
|
@c.instance_variable_set(:@db_schema, {:x=>{:type=>:date}})
|
1098
|
-
proc{@c.new.x = 'a'}.should raise_error
|
1099
|
-
proc{@c.new.x = 100}.should raise_error
|
1098
|
+
proc{@c.new.x = 'a'}.should raise_error(Sequel::Error::InvalidValue)
|
1099
|
+
proc{@c.new.x = 100}.should raise_error(Sequel::Error::InvalidValue)
|
1100
1100
|
end
|
1101
1101
|
|
1102
1102
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid date" do
|
@@ -1122,8 +1122,8 @@ describe Sequel::Model, "typecasting" do
|
|
1122
1122
|
@c.instance_variable_set(:@db_schema, {:x=>{:type=>:time}})
|
1123
1123
|
proc{@c.new.x = '0000'}.should raise_error
|
1124
1124
|
proc{@c.new.x = 'a'}.should_not raise_error # Valid Time
|
1125
|
-
proc{@c.new.x = '2008-10-21'.to_date}.should raise_error
|
1126
|
-
proc{@c.new.x = '2008-10-21'.to_datetime}.should raise_error
|
1125
|
+
proc{@c.new.x = '2008-10-21'.to_date}.should raise_error(Sequel::Error::InvalidValue)
|
1126
|
+
proc{@c.new.x = '2008-10-21'.to_datetime}.should raise_error(Sequel::Error::InvalidValue)
|
1127
1127
|
end
|
1128
1128
|
|
1129
1129
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid time" do
|
@@ -1164,8 +1164,8 @@ describe Sequel::Model, "typecasting" do
|
|
1164
1164
|
proc{@c.new.x = '0000'}.should raise_error(Sequel::Error::InvalidValue)
|
1165
1165
|
proc{@c.new.x = 'a'}.should_not raise_error # Valid Time
|
1166
1166
|
Sequel.datetime_class = DateTime
|
1167
|
-
proc{@c.new.x = '0000'}.should raise_error
|
1168
|
-
proc{@c.new.x = 'a'}.should raise_error
|
1167
|
+
proc{@c.new.x = '0000'}.should raise_error(Sequel::Error::InvalidValue)
|
1168
|
+
proc{@c.new.x = 'a'}.should raise_error(Sequel::Error::InvalidValue)
|
1169
1169
|
end
|
1170
1170
|
|
1171
1171
|
specify "should assign value if raise_on_typecast_failure is off and assigning invalid datetime" do
|
@@ -540,6 +540,50 @@ describe Sequel::Model do
|
|
540
540
|
@m.value = false
|
541
541
|
@m.should be_valid
|
542
542
|
end
|
543
|
+
|
544
|
+
specify "should validate inclusion_of with an array" do
|
545
|
+
@c.validates_inclusion_of :value, :in => [1,2]
|
546
|
+
@m.should_not be_valid
|
547
|
+
@m.value = 1
|
548
|
+
@m.should be_valid
|
549
|
+
@m.value = 1.5
|
550
|
+
@m.should_not be_valid
|
551
|
+
@m.value = 2
|
552
|
+
@m.should be_valid
|
553
|
+
@m.value = 3
|
554
|
+
@m.should_not be_valid
|
555
|
+
end
|
556
|
+
|
557
|
+
specify "should validate inclusion_of with a range" do
|
558
|
+
@c.validates_inclusion_of :value, :in => 1..4
|
559
|
+
@m.should_not be_valid
|
560
|
+
@m.value = 1
|
561
|
+
@m.should be_valid
|
562
|
+
@m.value = 1.5
|
563
|
+
@m.should be_valid
|
564
|
+
@m.value = 0
|
565
|
+
@m.should_not be_valid
|
566
|
+
@m.value = 5
|
567
|
+
@m.should_not be_valid
|
568
|
+
end
|
569
|
+
|
570
|
+
specify "should raise an error if inclusion_of doesn't receive a valid :in option" do
|
571
|
+
lambda {
|
572
|
+
@c.validates_inclusion_of :value
|
573
|
+
}.should raise_error(ArgumentError)
|
574
|
+
|
575
|
+
lambda {
|
576
|
+
@c.validates_inclusion_of :value, :in => 1
|
577
|
+
}.should raise_error(ArgumentError)
|
578
|
+
end
|
579
|
+
|
580
|
+
specify "should raise an error if inclusion_of handles :allow_nil too" do
|
581
|
+
@c.validates_inclusion_of :value, :in => 1..4, :allow_nil => true
|
582
|
+
@m.value = nil
|
583
|
+
@m.should be_valid
|
584
|
+
@m.value = 0
|
585
|
+
@m.should_not be_valid
|
586
|
+
end
|
543
587
|
|
544
588
|
specify "should validate presence_of with if => true" do
|
545
589
|
@c.validates_presence_of :value, :if => :dont_skip
|
@@ -750,21 +794,37 @@ describe Sequel::Model, "Validations" do
|
|
750
794
|
it "should validate that a column doesn't have a string value" do
|
751
795
|
p = Class.new(Sequel::Model)
|
752
796
|
p.class_eval do
|
753
|
-
columns :age
|
797
|
+
columns :age, :price, :confirmed
|
754
798
|
self.raise_on_typecast_failure = false
|
755
799
|
validates_not_string :age
|
800
|
+
validates_not_string :confirmed
|
801
|
+
validates_not_string :price, :message=>'is not valid'
|
756
802
|
@db_schema = {:age=>{:type=>:integer}}
|
757
803
|
end
|
758
804
|
|
759
|
-
@person = p.new
|
805
|
+
@person = p.new
|
806
|
+
@person.should be_valid
|
807
|
+
|
808
|
+
@person.confirmed = 't'
|
809
|
+
@person.should_not be_valid
|
810
|
+
@person.errors.full_messages.should == ['confirmed is a string']
|
811
|
+
@person.confirmed = true
|
812
|
+
@person.should be_valid
|
813
|
+
|
814
|
+
@person.age = 'a'
|
760
815
|
@person.should_not be_valid
|
761
816
|
@person.errors.full_messages.should == ['age is not a valid integer']
|
762
817
|
@person.db_schema[:age][:type] = :datetime
|
763
818
|
@person.should_not be_valid
|
764
819
|
@person.errors.full_messages.should == ['age is not a valid datetime']
|
765
|
-
|
766
820
|
@person.age = 20
|
767
821
|
@person.should be_valid
|
822
|
+
|
823
|
+
@person.price = 'a'
|
824
|
+
@person.should_not be_valid
|
825
|
+
@person.errors.full_messages.should == ['price is not valid']
|
826
|
+
@person.price = 20
|
827
|
+
@person.should be_valid
|
768
828
|
end
|
769
829
|
|
770
830
|
it "should validate numericality of column" 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: 2.
|
4
|
+
version: 2.11.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-02
|
12
|
+
date: 2009-03-02 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -29,6 +29,23 @@ extra_rdoc_files:
|
|
29
29
|
- doc/prepared_statements.rdoc
|
30
30
|
- doc/schema.rdoc
|
31
31
|
- doc/sharding.rdoc
|
32
|
+
- doc/release_notes/2.10.0.txt
|
33
|
+
- doc/release_notes/2.9.0.txt
|
34
|
+
- doc/release_notes/2.8.0.txt
|
35
|
+
- doc/release_notes/2.7.0.txt
|
36
|
+
- doc/release_notes/2.6.0.txt
|
37
|
+
- doc/release_notes/2.5.0.txt
|
38
|
+
- doc/release_notes/2.4.0.txt
|
39
|
+
- doc/release_notes/2.3.0.txt
|
40
|
+
- doc/release_notes/2.2.0.txt
|
41
|
+
- doc/release_notes/2.1.0.txt
|
42
|
+
- doc/release_notes/2.0.0.txt
|
43
|
+
- doc/release_notes/1.5.0.txt
|
44
|
+
- doc/release_notes/1.4.0.txt
|
45
|
+
- doc/release_notes/1.1.txt
|
46
|
+
- doc/release_notes/1.3.txt
|
47
|
+
- doc/release_notes/1.0.txt
|
48
|
+
- doc/release_notes/2.11.0.txt
|
32
49
|
files:
|
33
50
|
- COPYING
|
34
51
|
- CHANGELOG
|
@@ -41,6 +58,24 @@ files:
|
|
41
58
|
- doc/prepared_statements.rdoc
|
42
59
|
- doc/schema.rdoc
|
43
60
|
- doc/sharding.rdoc
|
61
|
+
- doc/release_notes
|
62
|
+
- doc/release_notes/2.10.0.txt
|
63
|
+
- doc/release_notes/2.9.0.txt
|
64
|
+
- doc/release_notes/2.8.0.txt
|
65
|
+
- doc/release_notes/2.7.0.txt
|
66
|
+
- doc/release_notes/2.6.0.txt
|
67
|
+
- doc/release_notes/2.5.0.txt
|
68
|
+
- doc/release_notes/2.4.0.txt
|
69
|
+
- doc/release_notes/2.3.0.txt
|
70
|
+
- doc/release_notes/2.2.0.txt
|
71
|
+
- doc/release_notes/2.1.0.txt
|
72
|
+
- doc/release_notes/2.0.0.txt
|
73
|
+
- doc/release_notes/1.5.0.txt
|
74
|
+
- doc/release_notes/1.4.0.txt
|
75
|
+
- doc/release_notes/1.1.txt
|
76
|
+
- doc/release_notes/1.3.txt
|
77
|
+
- doc/release_notes/1.0.txt
|
78
|
+
- doc/release_notes/2.11.0.txt
|
44
79
|
- spec/adapters
|
45
80
|
- spec/adapters/ado_spec.rb
|
46
81
|
- spec/adapters/informix_spec.rb
|
@@ -124,6 +159,10 @@ files:
|
|
124
159
|
- lib/sequel_core/adapters/do/postgres.rb
|
125
160
|
- lib/sequel_core/adapters/do/sqlite.rb
|
126
161
|
- lib/sequel_core/adapters/firebird.rb
|
162
|
+
- lib/sequel_core/adapters/utils
|
163
|
+
- lib/sequel_core/adapters/utils/date_format.rb
|
164
|
+
- lib/sequel_core/adapters/utils/stored_procedures.rb
|
165
|
+
- lib/sequel_core/adapters/utils/unsupported.rb
|
127
166
|
- lib/sequel_core/connection_pool.rb
|
128
167
|
- lib/sequel_core/core_ext.rb
|
129
168
|
- lib/sequel_core/core_sql.rb
|
@@ -139,8 +178,6 @@ files:
|
|
139
178
|
- lib/sequel_core/dataset/query.rb
|
140
179
|
- lib/sequel_core/dataset/schema.rb
|
141
180
|
- lib/sequel_core/dataset/sql.rb
|
142
|
-
- lib/sequel_core/dataset/unsupported.rb
|
143
|
-
- lib/sequel_core/dataset/stored_procedures.rb
|
144
181
|
- lib/sequel_core/deprecated.rb
|
145
182
|
- lib/sequel_core/exceptions.rb
|
146
183
|
- lib/sequel_core/migration.rb
|