sequel 0.4.4.1 → 0.4.4.2

Sign up to get free protection for your applications and to get access to all the features.
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