sequel 0.4.4.1 → 0.4.4.2

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.
Files changed (45) hide show
  1. data/CHANGELOG +10 -0
  2. data/Rakefile +161 -159
  3. data/lib/sequel.rb +14 -10
  4. data/lib/sequel/adapters/adapter_skeleton.rb +2 -1
  5. data/lib/sequel/adapters/ado.rb +2 -1
  6. data/lib/sequel/adapters/db2.rb +5 -3
  7. data/lib/sequel/adapters/dbi.rb +2 -1
  8. data/lib/sequel/adapters/informix.rb +2 -1
  9. data/lib/sequel/adapters/jdbc.rb +3 -2
  10. data/lib/sequel/adapters/mysql.rb +268 -264
  11. data/lib/sequel/adapters/odbc.rb +7 -2
  12. data/lib/sequel/adapters/odbc_mssql.rb +1 -1
  13. data/lib/sequel/adapters/openbase.rb +2 -1
  14. data/lib/sequel/adapters/oracle.rb +2 -1
  15. data/lib/sequel/adapters/postgres.rb +32 -16
  16. data/lib/sequel/adapters/sqlite.rb +7 -6
  17. data/lib/sequel/array_keys.rb +295 -295
  18. data/lib/sequel/connection_pool.rb +1 -1
  19. data/lib/sequel/core_sql.rb +14 -5
  20. data/lib/sequel/database.rb +4 -4
  21. data/lib/sequel/dataset.rb +12 -10
  22. data/lib/sequel/dataset/convenience.rb +10 -8
  23. data/lib/sequel/dataset/sequelizer.rb +19 -16
  24. data/lib/sequel/dataset/sql.rb +43 -30
  25. data/lib/sequel/exceptions.rb +45 -0
  26. data/lib/sequel/migration.rb +7 -5
  27. data/lib/sequel/model.rb +1 -1
  28. data/lib/sequel/model/base.rb +3 -3
  29. data/lib/sequel/model/hooks.rb +0 -4
  30. data/lib/sequel/model/record.rb +9 -9
  31. data/lib/sequel/model/relations.rb +2 -2
  32. data/lib/sequel/pretty_table.rb +6 -3
  33. data/lib/sequel/schema/schema_sql.rb +11 -6
  34. data/lib/sequel/worker.rb +8 -7
  35. data/spec/adapters/sqlite_spec.rb +3 -3
  36. data/spec/array_keys_spec.rb +543 -543
  37. data/spec/connection_pool_spec.rb +6 -3
  38. data/spec/database_spec.rb +4 -4
  39. data/spec/dataset_spec.rb +25 -25
  40. data/spec/migration_spec.rb +1 -1
  41. data/spec/model_spec.rb +16 -16
  42. data/spec/sequelizer_spec.rb +7 -7
  43. data/spec/spec.opts +8 -0
  44. metadata +5 -5
  45. data/lib/sequel/error.rb +0 -22
@@ -283,7 +283,8 @@ context "ConnectionPool#disconnect" do
283
283
  sleep 0.2
284
284
  end
285
285
  stop = true
286
- sleep 0.2
286
+ sleep 1
287
+ threads.each {|t| t.join}
287
288
 
288
289
  @pool.size.should == 5
289
290
  @pool.available_connections.size.should == 5
@@ -301,7 +302,8 @@ context "ConnectionPool#disconnect" do
301
302
  sleep 0.2
302
303
  end
303
304
  stop = true
304
- sleep 0.2
305
+ sleep 1
306
+ threads.each {|t| t.join}
305
307
 
306
308
  @pool.size.should == 5
307
309
  @pool.disconnect
@@ -316,7 +318,8 @@ context "ConnectionPool#disconnect" do
316
318
  sleep 0.2
317
319
  end
318
320
  stop = true
319
- sleep 0.2
321
+ sleep 1
322
+ threads.each {|t| t.join}
320
323
 
321
324
  @pool.size.should == 5
322
325
 
@@ -29,13 +29,13 @@ context "A new Database" do
29
29
  end
30
30
 
31
31
  context "Database#connect" do
32
- specify "should raise NotImplementedError" do
32
+ specify "should raise Sequel::Error::NotImplemented" do
33
33
  proc {Sequel::Database.new.connect}.should raise_error(NotImplementedError)
34
34
  end
35
35
  end
36
36
 
37
37
  context "Database#disconnect" do
38
- specify "should raise NotImplementedError" do
38
+ specify "should raise Sequel::Error::NotImplemented" do
39
39
  proc {Sequel::Database.new.disconnect}.should raise_error(NotImplementedError)
40
40
  end
41
41
  end
@@ -102,7 +102,7 @@ context "Database#dataset" do
102
102
  end
103
103
 
104
104
  context "Database#execute" do
105
- specify "should raise NotImplementedError" do
105
+ specify "should raise Sequel::Error::NotImplemented" do
106
106
  proc {Sequel::Database.new.execute('blah blah')}.should raise_error(NotImplementedError)
107
107
  proc {Sequel::Database.new << 'blah blah'}.should raise_error(NotImplementedError)
108
108
  end
@@ -502,7 +502,7 @@ context "A Database adapter with a scheme" do
502
502
 
503
503
  specify "should be accessible through Sequel.<adapter>" do
504
504
  # invalid parameters
505
- proc {Sequel.ccc('abc', 'def')}.should raise_error(SequelError)
505
+ proc {Sequel.ccc('abc', 'def')}.should raise_error(Sequel::Error)
506
506
 
507
507
  c = Sequel.ccc('mydb')
508
508
  c.should be_a_kind_of(CCC)
data/spec/dataset_spec.rb CHANGED
@@ -48,7 +48,7 @@ context "Dataset" do
48
48
  Sequel::Dataset.included_modules.should include(Enumerable)
49
49
  end
50
50
 
51
- specify "should raise NotImplementedError for the dataset interface methods" do
51
+ specify "should raise ImplementedError for the dataset interface methods" do
52
52
  proc {@dataset.fetch_rows('abc')}.should raise_error(NotImplementedError)
53
53
  proc {@dataset.insert(1, 2, 3)}.should raise_error(NotImplementedError)
54
54
  proc {@dataset.update(:name => 'abc')}.should raise_error(NotImplementedError)
@@ -368,8 +368,8 @@ context "Dataset#where" do
368
368
  # the result of erroneous use of comparison not in a block
369
369
  # so instead of filter{:x == y} someone writes filter(:x == y)
370
370
 
371
- proc {@dataset.filter(:a == 1)}.should raise_error(SequelError)
372
- proc {@dataset.filter(:a != 1)}.should raise_error(SequelError)
371
+ proc {@dataset.filter(:a == 1)}.should raise_error(Sequel::Error::InvalidFilter)
372
+ proc {@dataset.filter(:a != 1)}.should raise_error(Sequel::Error::InvalidFilter)
373
373
  end
374
374
  end
375
375
 
@@ -380,7 +380,7 @@ context "Dataset#or" do
380
380
  end
381
381
 
382
382
  specify "should raise if no filter exists" do
383
- proc {@dataset.or(:a => 1)}.should raise_error(SequelError)
383
+ proc {@dataset.or(:a => 1)}.should raise_error(Sequel::Error)
384
384
  end
385
385
 
386
386
  specify "should add an alternative expression to the where clause" do
@@ -413,7 +413,7 @@ context "Dataset#and" do
413
413
  end
414
414
 
415
415
  specify "should raise if no filter exists" do
416
- proc {@dataset.and(:a => 1)}.should raise_error(SequelError)
416
+ proc {@dataset.and(:a => 1)}.should raise_error(Sequel::Error)
417
417
  end
418
418
 
419
419
  specify "should add an alternative expression to the where clause" do
@@ -642,7 +642,7 @@ context "Dataset#from" do
642
642
  end
643
643
 
644
644
  specify "should raise if no source is given" do
645
- proc {@dataset.from(@dataset.from).select_sql}.should raise_error(SequelError)
645
+ proc {@dataset.from(@dataset.from).select_sql}.should raise_error(Sequel::Error)
646
646
  end
647
647
  end
648
648
 
@@ -1044,7 +1044,7 @@ context "Dataset#join_table" do
1044
1044
  end
1045
1045
 
1046
1046
  specify "should raise if an invalid join type is specified" do
1047
- proc {@d.join_table(:invalid, :a, :b)}.should raise_error(SequelError)
1047
+ proc {@d.join_table(:invalid, :a, :b)}.should raise_error(Sequel::Error)
1048
1048
  end
1049
1049
 
1050
1050
  specify "should treat aliased tables correctly" do
@@ -1312,8 +1312,8 @@ context "Dataset#last" do
1312
1312
  end
1313
1313
 
1314
1314
  specify "should raise if no order is given" do
1315
- proc {@d.last}.should raise_error(SequelError)
1316
- proc {@d.last(2)}.should raise_error(SequelError)
1315
+ proc {@d.last}.should raise_error(Sequel::Error)
1316
+ proc {@d.last(2)}.should raise_error(Sequel::Error)
1317
1317
  proc {@d.order(:a).last}.should_not raise_error
1318
1318
  proc {@d.order(:a).last(2)}.should_not raise_error
1319
1319
  end
@@ -1580,9 +1580,9 @@ context "Dataset#set_model" do
1580
1580
  end
1581
1581
 
1582
1582
  specify "should raise for invalid parameters" do
1583
- proc {@dataset.set_model('kind')}.should raise_error(SequelError)
1584
- proc {@dataset.set_model(0)}.should raise_error(SequelError)
1585
- proc {@dataset.set_model(:kind)}.should raise_error(SequelError) # no hash given
1583
+ proc {@dataset.set_model('kind')}.should raise_error(ArgumentError)
1584
+ proc {@dataset.set_model(0)}.should raise_error(ArgumentError)
1585
+ proc {@dataset.set_model(:kind)}.should raise_error(ArgumentError) # no hash given
1586
1586
  end
1587
1587
  end
1588
1588
 
@@ -1693,10 +1693,10 @@ context "A polymorphic model dataset" do
1693
1693
  #...
1694
1694
  end
1695
1695
 
1696
- specify "should raise SequelError if no suitable class is found in the polymorphic hash" do
1696
+ specify "should raise Sequel::Error if no suitable class is found in the polymorphic hash" do
1697
1697
  @m2 = Class.new(@m)
1698
1698
  @dataset.set_model(:bit, 1 => @m2)
1699
- proc {@dataset.all}.should raise_error(SequelError)
1699
+ proc {@dataset.all}.should raise_error(Sequel::Error)
1700
1700
  end
1701
1701
 
1702
1702
  specify "should supply naked records if the naked option is specified" do
@@ -1974,14 +1974,14 @@ context "Dataset#query" do
1974
1974
  end
1975
1975
 
1976
1976
  specify "should raise on non-chainable method calls" do
1977
- proc {@d.query {count}}.should raise_error(SequelError)
1977
+ proc {@d.query {count}}.should raise_error(Sequel::Error)
1978
1978
  end
1979
1979
 
1980
1980
  specify "should raise on each, insert, update, delete" do
1981
- proc {@d.query {each}}.should raise_error(SequelError)
1982
- proc {@d.query {insert(:x => 1)}}.should raise_error(SequelError)
1983
- proc {@d.query {update(:x => 1)}}.should raise_error(SequelError)
1984
- proc {@d.query {delete}}.should raise_error(SequelError)
1981
+ proc {@d.query {each}}.should raise_error(Sequel::Error)
1982
+ proc {@d.query {insert(:x => 1)}}.should raise_error(Sequel::Error)
1983
+ proc {@d.query {update(:x => 1)}}.should raise_error(Sequel::Error)
1984
+ proc {@d.query {delete}}.should raise_error(Sequel::Error)
1985
1985
  end
1986
1986
  end
1987
1987
 
@@ -2120,12 +2120,12 @@ context "Dataset#transform" do
2120
2120
  @ds = @c.new(nil).from(:items)
2121
2121
  end
2122
2122
 
2123
- specify "should raise SequelError for invalid transformations" do
2124
- proc {@ds.transform(:x => 'mau')}.should raise_error(SequelError)
2125
- proc {@ds.transform(:x => :mau)}.should raise_error(SequelError)
2126
- proc {@ds.transform(:x => [])}.should raise_error(SequelError)
2127
- proc {@ds.transform(:x => ['mau'])}.should raise_error(SequelError)
2128
- proc {@ds.transform(:x => [proc {|v|}, proc {|v|}])}.should_not raise_error(SequelError)
2123
+ specify "should raise Sequel::Error for invalid transformations" do
2124
+ proc {@ds.transform(:x => 'mau')}.should raise_error(Sequel::Error::InvalidTransform)
2125
+ proc {@ds.transform(:x => :mau)}.should raise_error(Sequel::Error::InvalidTransform)
2126
+ proc {@ds.transform(:x => [])}.should raise_error(Sequel::Error::InvalidTransform)
2127
+ proc {@ds.transform(:x => ['mau'])}.should raise_error(Sequel::Error::InvalidTransform)
2128
+ proc {@ds.transform(:x => [proc {|v|}, proc {|v|}])}.should_not raise_error(Sequel::Error::InvalidTransform)
2129
2129
  end
2130
2130
 
2131
2131
  specify "should support stock YAML transformation" do
@@ -35,7 +35,7 @@ context "Migration#apply" do
35
35
  end
36
36
 
37
37
  specify "should raise for an invalid direction" do
38
- proc {@migration.apply(@db, :hahaha)}.should raise_error(SequelError)
38
+ proc {@migration.apply(@db, :hahaha)}.should raise_error(ArgumentError)
39
39
  end
40
40
 
41
41
  specify "should apply the up direction correctly" do
data/spec/model_spec.rb CHANGED
@@ -54,9 +54,9 @@ describe Sequel::Model, 'w/o primary key' do
54
54
  Class.new(Sequel::Model) { no_primary_key }.primary_key.should be_nil
55
55
  end
56
56
 
57
- it "should raise a SequelError on 'this'" do
57
+ it "should raise a Sequel::Error on 'this'" do
58
58
  instance = Class.new(Sequel::Model) { no_primary_key }.new
59
- proc { instance.this }.should raise_error(SequelError)
59
+ proc { instance.this }.should raise_error(Sequel::Error)
60
60
  end
61
61
  end
62
62
 
@@ -418,10 +418,10 @@ context "Model attribute accessors" do
418
418
  o = @c.new
419
419
 
420
420
  proc {o.x}.should_not raise_error
421
- proc {o.xx}.should raise_error(SequelError)
421
+ proc {o.xx}.should raise_error(Sequel::Error)
422
422
 
423
423
  proc {o.x = 3}.should_not raise_error
424
- proc {o.yy = 4}.should raise_error(SequelError)
424
+ proc {o.yy = 4}.should raise_error(Sequel::Error)
425
425
 
426
426
  proc {o.yy?}.should raise_error(NoMethodError)
427
427
  end
@@ -429,18 +429,18 @@ context "Model attribute accessors" do
429
429
  specify "should not raise for a column not in the dataset, but for which there's a value" do
430
430
  o = @c.new
431
431
 
432
- proc {o.xx}.should raise_error(SequelError)
433
- proc {o.yy}.should raise_error(SequelError)
432
+ proc {o.xx}.should raise_error(Sequel::Error)
433
+ proc {o.yy}.should raise_error(Sequel::Error)
434
434
 
435
435
  o.values[:xx] = 123
436
436
  o.values[:yy] = nil
437
437
 
438
- proc {o.xx; o.yy}.should_not raise_error(SequelError)
438
+ proc {o.xx; o.yy}.should_not raise_error(Sequel::Error)
439
439
 
440
440
  o.xx.should == 123
441
441
  o.yy.should == nil
442
442
 
443
- proc {o.xx = 3}.should raise_error(SequelError)
443
+ proc {o.xx = 3}.should raise_error(Sequel::Error)
444
444
  end
445
445
  end
446
446
 
@@ -704,8 +704,8 @@ context "Model.[]" do
704
704
 
705
705
  specify "should raise for boolean argument (mistaken comparison)" do
706
706
  # This in order to prevent stuff like Model[:a == 'b']
707
- proc {@c[:a == 1]}.should raise_error(SequelError)
708
- proc {@c[:a != 1]}.should raise_error(SequelError)
707
+ proc {@c[:a == 1]}.should raise_error(Sequel::Error)
708
+ proc {@c[:a != 1]}.should raise_error(Sequel::Error)
709
709
  end
710
710
 
711
711
  specify "should work correctly for custom primary key" do
@@ -829,10 +829,10 @@ context "A cached model" do
829
829
 
830
830
  specify "should raise error if attempting to generate cache_key and primary key value is null" do
831
831
  m = @c.new
832
- proc {m.cache_key}.should raise_error(SequelError)
832
+ proc {m.cache_key}.should raise_error(Sequel::Error)
833
833
 
834
834
  m.values[:id] = 1
835
- proc {m.cache_key}.should_not raise_error(SequelError)
835
+ proc {m.cache_key}.should_not raise_error(Sequel::Error)
836
836
  end
837
837
 
838
838
  specify "should set the cache when reading from the database" do
@@ -1052,11 +1052,11 @@ context "Model#pk" do
1052
1052
  specify "should raise if no primary key" do
1053
1053
  @m.set_primary_key nil
1054
1054
  m = @m.new(:id => 111, :x => 2, :y => 3)
1055
- proc {m.pk}.should raise_error(SequelError)
1055
+ proc {m.pk}.should raise_error(Sequel::Error)
1056
1056
 
1057
1057
  @m.no_primary_key
1058
1058
  m = @m.new(:id => 111, :x => 2, :y => 3)
1059
- proc {m.pk}.should raise_error(SequelError)
1059
+ proc {m.pk}.should raise_error(Sequel::Error)
1060
1060
  end
1061
1061
  end
1062
1062
 
@@ -1085,11 +1085,11 @@ context "Model#pk_hash" do
1085
1085
  specify "should raise if no primary key" do
1086
1086
  @m.set_primary_key nil
1087
1087
  m = @m.new(:id => 111, :x => 2, :y => 3)
1088
- proc {m.pk_hash}.should raise_error(SequelError)
1088
+ proc {m.pk_hash}.should raise_error(Sequel::Error)
1089
1089
 
1090
1090
  @m.no_primary_key
1091
1091
  m = @m.new(:id => 111, :x => 2, :y => 3)
1092
- proc {m.pk_hash}.should raise_error(SequelError)
1092
+ proc {m.pk_hash}.should raise_error(Sequel::Error)
1093
1093
  end
1094
1094
  end
1095
1095
 
@@ -16,12 +16,12 @@ context "Proc#to_sql" do
16
16
 
17
17
  def DS.match_expr(l, r)
18
18
  case r
19
- when String:
19
+ when String
20
20
  "(#{literal(l)} LIKE #{literal(r)})"
21
- when Regexp:
21
+ when Regexp
22
22
  "(#{literal(l)} ~ #{literal(r.source)})"
23
23
  else
24
- raise SequelError, "Unsupported match pattern class (#{r.class})."
24
+ raise Sequel::Error, "Unsupported match pattern class (#{r.class})."
25
25
  end
26
26
  end
27
27
 
@@ -105,7 +105,7 @@ context "Proc#to_sql" do
105
105
  end
106
106
 
107
107
  specify "should raise on =~ operator for unsupported types" do
108
- proc {proc {:x =~ 123}.to_sql}.should raise_error(SequelError)
108
+ proc {proc {:x =~ 123}.to_sql}.should raise_error(Sequel::Error)
109
109
  end
110
110
 
111
111
  specify "should support != operator" do
@@ -201,9 +201,9 @@ context "Proc#to_sql" do
201
201
  end
202
202
 
203
203
  specify "should complain if someone is crazy" do
204
- proc {proc {def x; 1; end}.to_sql}.should raise_error(SequelError)
204
+ proc {proc {def x; 1; end}.to_sql}.should raise_error(Sequel::Error::InvalidExpression)
205
205
  a = 1
206
- proc {proc {a = 1}.to_sql}.should raise_error(SequelError)
206
+ proc {proc {a = 1}.to_sql}.should raise_error(Sequel::Error::InvalidExpression)
207
207
  end
208
208
 
209
209
  specify "should support comparison to Range objects" do
@@ -378,7 +378,7 @@ context "Proc#to_sql stock" do
378
378
  ds = db[:items]
379
379
 
380
380
  p = proc {:x =~ /abc/}
381
- proc {ds.proc_to_sql(p)}.should raise_error(SequelError)
381
+ proc {ds.proc_to_sql(p)}.should raise_error(Sequel::Error)
382
382
  end
383
383
  end
384
384
 
data/spec/spec.opts ADDED
@@ -0,0 +1,8 @@
1
+ --colour
2
+ --loadby
3
+ mtime
4
+ --backtrace
5
+ --format
6
+ specdoc
7
+ --diff
8
+
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: 0.4.4.1
4
+ version: 0.4.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-12-19 00:00:00 +02:00
12
+ date: 2007-12-20 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -54,7 +54,6 @@ files:
54
54
  - README
55
55
  - Rakefile
56
56
  - bin/sequel
57
- - doc/rdoc
58
57
  - spec/adapters
59
58
  - spec/adapters/informix_spec.rb
60
59
  - spec/adapters/mysql_spec.rb
@@ -73,6 +72,7 @@ files:
73
72
  - spec/schema_generator_spec.rb
74
73
  - spec/schema_spec.rb
75
74
  - spec/sequelizer_spec.rb
75
+ - spec/spec.opts
76
76
  - spec/spec_helper.rb
77
77
  - spec/worker_spec.rb
78
78
  - lib/sequel
@@ -103,7 +103,7 @@ files:
103
103
  - lib/sequel/dataset.rb
104
104
  - lib/sequel/db2.rb
105
105
  - lib/sequel/dbi.rb
106
- - lib/sequel/error.rb
106
+ - lib/sequel/exceptions.rb
107
107
  - lib/sequel/informix.rb
108
108
  - lib/sequel/migration.rb
109
109
  - lib/sequel/model
@@ -142,7 +142,7 @@ rdoc_options:
142
142
  - README
143
143
  - --inline-source
144
144
  - --exclude
145
- - ^(examples|extras)\/
145
+ - ^(examples|extras)/
146
146
  - --exclude
147
147
  - lib/sequel.rb
148
148
  require_paths:
data/lib/sequel/error.rb DELETED
@@ -1,22 +0,0 @@
1
- # Represents an error raised in Sequel code.
2
- class SequelError < StandardError
3
- end
4
-
5
- # SequelRollbackError is a special error used to rollback a transactions.
6
- # A transaction block will catch this error and wont pass further up the stack.
7
- class SequelRollbackError < StandardError
8
- end
9
-
10
- # Object extensions
11
- class Object
12
- # Cancels the current transaction without an error:
13
- #
14
- # DB.tranaction do
15
- # ...
16
- # rollback! if failed_to_contact_client
17
- # ...
18
- # end
19
- def rollback!
20
- raise SequelRollbackError
21
- end
22
- end