sequel 3.12.1 → 3.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. data/CHANGELOG +42 -0
  2. data/README.rdoc +137 -118
  3. data/Rakefile +21 -66
  4. data/doc/active_record.rdoc +9 -9
  5. data/doc/advanced_associations.rdoc +59 -188
  6. data/doc/association_basics.rdoc +15 -2
  7. data/doc/cheat_sheet.rdoc +38 -33
  8. data/doc/dataset_filtering.rdoc +16 -7
  9. data/doc/prepared_statements.rdoc +7 -7
  10. data/doc/querying.rdoc +5 -4
  11. data/doc/release_notes/3.13.0.txt +210 -0
  12. data/doc/sharding.rdoc +1 -1
  13. data/doc/sql.rdoc +5 -5
  14. data/doc/validations.rdoc +11 -11
  15. data/lib/sequel/adapters/ado.rb +1 -1
  16. data/lib/sequel/adapters/do.rb +3 -3
  17. data/lib/sequel/adapters/firebird.rb +3 -3
  18. data/lib/sequel/adapters/jdbc/h2.rb +39 -0
  19. data/lib/sequel/adapters/jdbc/mysql.rb +5 -0
  20. data/lib/sequel/adapters/jdbc/oracle.rb +3 -3
  21. data/lib/sequel/adapters/mysql.rb +7 -4
  22. data/lib/sequel/adapters/oracle.rb +3 -3
  23. data/lib/sequel/adapters/shared/mssql.rb +10 -1
  24. data/lib/sequel/adapters/shared/mysql.rb +63 -0
  25. data/lib/sequel/adapters/shared/postgres.rb +61 -3
  26. data/lib/sequel/adapters/sqlite.rb +105 -18
  27. data/lib/sequel/connection_pool.rb +31 -30
  28. data/lib/sequel/core.rb +58 -58
  29. data/lib/sequel/core_sql.rb +52 -43
  30. data/lib/sequel/database/misc.rb +11 -0
  31. data/lib/sequel/database/query.rb +55 -17
  32. data/lib/sequel/dataset/actions.rb +2 -1
  33. data/lib/sequel/dataset/query.rb +2 -3
  34. data/lib/sequel/dataset/sql.rb +24 -11
  35. data/lib/sequel/extensions/schema_dumper.rb +1 -1
  36. data/lib/sequel/metaprogramming.rb +4 -0
  37. data/lib/sequel/model.rb +37 -19
  38. data/lib/sequel/model/associations.rb +33 -25
  39. data/lib/sequel/model/base.rb +2 -2
  40. data/lib/sequel/model/plugins.rb +7 -2
  41. data/lib/sequel/plugins/active_model.rb +1 -1
  42. data/lib/sequel/plugins/association_pks.rb +2 -2
  43. data/lib/sequel/plugins/association_proxies.rb +1 -1
  44. data/lib/sequel/plugins/boolean_readers.rb +2 -2
  45. data/lib/sequel/plugins/class_table_inheritance.rb +10 -2
  46. data/lib/sequel/plugins/identity_map.rb +3 -3
  47. data/lib/sequel/plugins/instance_hooks.rb +1 -1
  48. data/lib/sequel/plugins/json_serializer.rb +212 -0
  49. data/lib/sequel/plugins/lazy_attributes.rb +1 -1
  50. data/lib/sequel/plugins/list.rb +174 -0
  51. data/lib/sequel/plugins/many_through_many.rb +2 -2
  52. data/lib/sequel/plugins/rcte_tree.rb +6 -7
  53. data/lib/sequel/plugins/tree.rb +118 -0
  54. data/lib/sequel/plugins/xml_serializer.rb +321 -0
  55. data/lib/sequel/sql.rb +315 -206
  56. data/lib/sequel/timezones.rb +40 -17
  57. data/lib/sequel/version.rb +8 -2
  58. data/spec/adapters/firebird_spec.rb +2 -2
  59. data/spec/adapters/informix_spec.rb +1 -1
  60. data/spec/adapters/mssql_spec.rb +2 -2
  61. data/spec/adapters/mysql_spec.rb +2 -2
  62. data/spec/adapters/oracle_spec.rb +1 -1
  63. data/spec/adapters/postgres_spec.rb +36 -6
  64. data/spec/adapters/spec_helper.rb +2 -2
  65. data/spec/adapters/sqlite_spec.rb +1 -1
  66. data/spec/core/connection_pool_spec.rb +3 -3
  67. data/spec/core/core_sql_spec.rb +31 -13
  68. data/spec/core/database_spec.rb +39 -2
  69. data/spec/core/dataset_spec.rb +24 -12
  70. data/spec/core/expression_filters_spec.rb +5 -1
  71. data/spec/core/object_graph_spec.rb +1 -1
  72. data/spec/core/schema_generator_spec.rb +1 -1
  73. data/spec/core/schema_spec.rb +1 -1
  74. data/spec/core/spec_helper.rb +1 -1
  75. data/spec/core/version_spec.rb +1 -1
  76. data/spec/extensions/active_model_spec.rb +82 -67
  77. data/spec/extensions/association_dependencies_spec.rb +1 -1
  78. data/spec/extensions/association_pks_spec.rb +1 -1
  79. data/spec/extensions/association_proxies_spec.rb +1 -1
  80. data/spec/extensions/blank_spec.rb +1 -1
  81. data/spec/extensions/boolean_readers_spec.rb +1 -1
  82. data/spec/extensions/caching_spec.rb +1 -1
  83. data/spec/extensions/class_table_inheritance_spec.rb +3 -2
  84. data/spec/extensions/composition_spec.rb +2 -5
  85. data/spec/extensions/force_encoding_spec.rb +3 -1
  86. data/spec/extensions/hook_class_methods_spec.rb +1 -1
  87. data/spec/extensions/identity_map_spec.rb +1 -1
  88. data/spec/extensions/inflector_spec.rb +1 -1
  89. data/spec/extensions/instance_filters_spec.rb +1 -1
  90. data/spec/extensions/instance_hooks_spec.rb +1 -1
  91. data/spec/extensions/json_serializer_spec.rb +154 -0
  92. data/spec/extensions/lazy_attributes_spec.rb +1 -2
  93. data/spec/extensions/list_spec.rb +251 -0
  94. data/spec/extensions/looser_typecasting_spec.rb +1 -1
  95. data/spec/extensions/many_through_many_spec.rb +3 -3
  96. data/spec/extensions/migration_spec.rb +1 -1
  97. data/spec/extensions/named_timezones_spec.rb +5 -6
  98. data/spec/extensions/nested_attributes_spec.rb +1 -1
  99. data/spec/extensions/optimistic_locking_spec.rb +1 -1
  100. data/spec/extensions/pagination_spec.rb +1 -1
  101. data/spec/extensions/pretty_table_spec.rb +1 -1
  102. data/spec/extensions/query_spec.rb +1 -1
  103. data/spec/extensions/rcte_tree_spec.rb +1 -1
  104. data/spec/extensions/schema_dumper_spec.rb +3 -2
  105. data/spec/extensions/schema_spec.rb +1 -1
  106. data/spec/extensions/serialization_spec.rb +6 -2
  107. data/spec/extensions/sharding_spec.rb +1 -1
  108. data/spec/extensions/single_table_inheritance_spec.rb +1 -1
  109. data/spec/extensions/skip_create_refresh_spec.rb +1 -1
  110. data/spec/extensions/spec_helper.rb +7 -3
  111. data/spec/extensions/sql_expr_spec.rb +1 -1
  112. data/spec/extensions/string_date_time_spec.rb +1 -1
  113. data/spec/extensions/string_stripper_spec.rb +1 -1
  114. data/spec/extensions/subclasses_spec.rb +1 -1
  115. data/spec/extensions/tactical_eager_loading_spec.rb +1 -1
  116. data/spec/extensions/thread_local_timezones_spec.rb +1 -1
  117. data/spec/extensions/timestamps_spec.rb +1 -1
  118. data/spec/extensions/touch_spec.rb +1 -1
  119. data/spec/extensions/tree_spec.rb +119 -0
  120. data/spec/extensions/typecast_on_load_spec.rb +1 -1
  121. data/spec/extensions/update_primary_key_spec.rb +1 -1
  122. data/spec/extensions/validation_class_methods_spec.rb +1 -1
  123. data/spec/extensions/validation_helpers_spec.rb +1 -1
  124. data/spec/extensions/xml_serializer_spec.rb +142 -0
  125. data/spec/integration/associations_test.rb +1 -1
  126. data/spec/integration/database_test.rb +1 -1
  127. data/spec/integration/dataset_test.rb +29 -14
  128. data/spec/integration/eager_loader_test.rb +1 -1
  129. data/spec/integration/migrator_test.rb +1 -1
  130. data/spec/integration/model_test.rb +1 -1
  131. data/spec/integration/plugin_test.rb +316 -1
  132. data/spec/integration/prepared_statement_test.rb +1 -1
  133. data/spec/integration/schema_test.rb +8 -8
  134. data/spec/integration/spec_helper.rb +1 -1
  135. data/spec/integration/timezone_test.rb +1 -1
  136. data/spec/integration/transaction_test.rb +35 -20
  137. data/spec/integration/type_test.rb +1 -1
  138. data/spec/model/association_reflection_spec.rb +1 -1
  139. data/spec/model/associations_spec.rb +49 -34
  140. data/spec/model/base_spec.rb +1 -1
  141. data/spec/model/dataset_methods_spec.rb +4 -4
  142. data/spec/model/eager_loading_spec.rb +1 -1
  143. data/spec/model/hooks_spec.rb +1 -1
  144. data/spec/model/inflector_spec.rb +1 -1
  145. data/spec/model/model_spec.rb +7 -1
  146. data/spec/model/plugins_spec.rb +1 -1
  147. data/spec/model/record_spec.rb +1 -3
  148. data/spec/model/spec_helper.rb +2 -2
  149. data/spec/model/validations_spec.rb +1 -1
  150. metadata +29 -5
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), 'spec_helper.rb')
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper.rb')
2
2
 
3
3
  describe "Supported types" do
4
4
  def create_items_table_with_column(name, type, opts={})
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model::Associations::AssociationReflection, "#associated_class" do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model, "associate" do
4
4
  it "should use explicit class if given a class, symbol, or string" do
@@ -461,6 +461,21 @@ describe Sequel::Model, "many_to_one" do
461
461
  @c2.instance_methods(false).collect{|x| x.to_s}.should_not(include('parent='))
462
462
  end
463
463
 
464
+ it "should add associations methods to the :methods_module option" do
465
+ m = Module.new
466
+ @c2.many_to_one :parent, :class => @c2, :methods_module=>m
467
+ m.instance_methods.collect{|x| x.to_s}.should(include('parent'))
468
+ m.instance_methods.collect{|x| x.to_s}.should(include('parent='))
469
+ @c2.instance_methods.collect{|x| x.to_s}.should_not(include('parent'))
470
+ @c2.instance_methods.collect{|x| x.to_s}.should_not(include('parent='))
471
+ end
472
+
473
+ it "should add associations methods directly to class if :methods_module is the class itself" do
474
+ @c2.many_to_one :parent, :class => @c2, :methods_module=>@c2
475
+ @c2.instance_methods(false).collect{|x| x.to_s}.should(include('parent'))
476
+ @c2.instance_methods(false).collect{|x| x.to_s}.should(include('parent='))
477
+ end
478
+
464
479
  it "should raise an error if trying to set a model object that doesn't have a valid primary key" do
465
480
  @c2.many_to_one :parent, :class => @c2
466
481
  p = @c2.new
@@ -485,15 +500,15 @@ describe Sequel::Model, "many_to_one" do
485
500
  h = []
486
501
  @c2.many_to_one :parent, :class => @c2, :before_set=>[proc{|x,y| h << x.pk; h << (y ? -y.pk : :y)}, :blah], :after_set=>proc{h << 3}
487
502
  @c2.class_eval do
488
- @@blah = h
503
+ class_variable_set(:@@blah, h)
489
504
  def []=(a, v)
490
- a == :parent_id ? (@@blah << (v ? 4 : 5)) : super
505
+ a == :parent_id ? (self.class.send(:class_variable_get, :@@blah) << (v ? 4 : 5)) : super
491
506
  end
492
507
  def blah(x)
493
- @@blah << (x ? x.pk : :x)
508
+ self.class.send(:class_variable_get, :@@blah) << (x ? x.pk : :x)
494
509
  end
495
510
  def blahr(x)
496
- @@blah << 6
511
+ self.class.send(:class_variable_get, :@@blah) << 6
497
512
  end
498
513
  end
499
514
  p = @c2.load(:id=>10)
@@ -509,9 +524,9 @@ describe Sequel::Model, "many_to_one" do
509
524
  h = []
510
525
  @c2.many_to_one :parent, :class => @c2, :after_load=>[proc{|x,y| h << [x.pk, y.pk]}, :al]
511
526
  @c2.class_eval do
512
- @@blah = h
527
+ class_variable_set(:@@blah, h)
513
528
  def al(v)
514
- @@blah << v.pk
529
+ self.class.send(:class_variable_get, :@@blah) << v.pk
515
530
  end
516
531
  def @dataset.fetch_rows(sql)
517
532
  yield({:id=>20})
@@ -553,15 +568,15 @@ describe Sequel::Model, "many_to_one" do
553
568
  h = []
554
569
  @c2.many_to_one :parent, :class => @c2, :before_set=>:bs, :after_set=>:as
555
570
  @c2.class_eval do
556
- @@blah = h
571
+ class_variable_set(:@@blah, h)
557
572
  def []=(a, v)
558
- a == :parent_id ? (@@blah << 5) : super
573
+ a == :parent_id ? (self.class.send(:class_variable_get, :@@blah) << 5) : super
559
574
  end
560
575
  def bs(x)
561
- @@blah << x.pk
576
+ self.class.send(:class_variable_get, :@@blah) << x.pk
562
577
  end
563
578
  def as(x)
564
- @@blah << x.pk * 2
579
+ self.class.send(:class_variable_get, :@@blah) << x.pk * 2
565
580
  end
566
581
  end
567
582
  p.parent = c
@@ -968,12 +983,12 @@ describe Sequel::Model, "one_to_one" do
968
983
  h = []
969
984
  @c2.one_to_one :parent, :class => @c2, :before_set=>[proc{|x,y| h << x.pk; h << (y ? -y.pk : :y)}, :blah], :after_set=>proc{h << 3}
970
985
  @c2.class_eval do
971
- @@blah = h
986
+ class_variable_set(:@@blah, h)
972
987
  def blah(x)
973
- @@blah << (x ? x.pk : :x)
988
+ self.class.send(:class_variable_get, :@@blah) << (x ? x.pk : :x)
974
989
  end
975
990
  def blahr(x)
976
- @@blah << 6
991
+ self.class.send(:class_variable_get, :@@blah) << 6
977
992
  end
978
993
  end
979
994
  p = @c2.load(:id=>10)
@@ -989,9 +1004,9 @@ describe Sequel::Model, "one_to_one" do
989
1004
  h = []
990
1005
  @c2.one_to_one :parent, :class => @c2, :after_load=>[proc{|x,y| h << [x.pk, y.pk]}, :al]
991
1006
  @c2.class_eval do
992
- @@blah = h
1007
+ class_variable_set(:@@blah, h)
993
1008
  def al(v)
994
- @@blah << v.pk
1009
+ self.class.send(:class_variable_get, :@@blah) << v.pk
995
1010
  end
996
1011
  def @dataset.fetch_rows(sql)
997
1012
  yield({:id=>20})
@@ -1033,15 +1048,15 @@ describe Sequel::Model, "one_to_one" do
1033
1048
  h = []
1034
1049
  @c2.one_to_one :parent, :class => @c2, :before_set=>:bs, :after_set=>:as
1035
1050
  @c2.class_eval do
1036
- @@blah = h
1051
+ class_variable_set(:@@blah, h)
1037
1052
  def []=(a, v)
1038
- a == :node_id ? (@@blah << 5) : super
1053
+ a == :node_id ? (self.class.send(:class_variable_get, :@@blah) << 5) : super
1039
1054
  end
1040
1055
  def bs(x)
1041
- @@blah << x.pk
1056
+ self.class.send(:class_variable_get, :@@blah) << x.pk
1042
1057
  end
1043
1058
  def as(x)
1044
- @@blah << x.pk * 2
1059
+ self.class.send(:class_variable_get, :@@blah) << x.pk * 2
1045
1060
  end
1046
1061
  end
1047
1062
  p.parent = c
@@ -1724,18 +1739,18 @@ describe Sequel::Model, "one_to_many" do
1724
1739
  h = []
1725
1740
  @c2.one_to_many :attributes, :class => @c1, :before_add=>[proc{|x,y| h << x.pk; h << -y.pk}, :blah], :after_add=>proc{h << 3}, :before_remove=>:blah, :after_remove=>[:blahr]
1726
1741
  @c2.class_eval do
1727
- @@blah = h
1742
+ class_variable_set(:@@blah, h)
1728
1743
  def _add_attribute(v)
1729
- @@blah << 4
1744
+ self.class.send(:class_variable_get, :@@blah) << 4
1730
1745
  end
1731
1746
  def _remove_attribute(v)
1732
- @@blah << 5
1747
+ self.class.send(:class_variable_get, :@@blah) << 5
1733
1748
  end
1734
1749
  def blah(x)
1735
- @@blah << x.pk
1750
+ self.class.send(:class_variable_get, :@@blah) << x.pk
1736
1751
  end
1737
1752
  def blahr(x)
1738
- @@blah << 6
1753
+ self.class.send(:class_variable_get, :@@blah) << 6
1739
1754
  end
1740
1755
  end
1741
1756
  p = @c2.load(:id=>10)
@@ -1751,9 +1766,9 @@ describe Sequel::Model, "one_to_many" do
1751
1766
  h = []
1752
1767
  @c2.one_to_many :attributes, :class => @c1, :after_load=>[proc{|x,y| h << [x.pk, y.collect{|z|z.pk}]}, :al]
1753
1768
  @c2.class_eval do
1754
- @@blah = h
1769
+ class_variable_set(:@@blah, h)
1755
1770
  def al(v)
1756
- v.each{|x| @@blah << x.pk}
1771
+ v.each{|x| self.class.send(:class_variable_get, :@@blah) << x.pk}
1757
1772
  end
1758
1773
  end
1759
1774
  @c1.class_eval do
@@ -2477,18 +2492,18 @@ describe Sequel::Model, "many_to_many" do
2477
2492
  h = []
2478
2493
  @c2.many_to_many :attributes, :class => @c1, :before_add=>[proc{|x,y| h << x.pk; h << -y.pk}, :blah], :after_add=>proc{h << 3}, :before_remove=>:blah, :after_remove=>[:blahr]
2479
2494
  @c2.class_eval do
2480
- @@blah = h
2495
+ class_variable_set(:@@blah, h)
2481
2496
  def _add_attribute(v)
2482
- @@blah << 4
2497
+ self.class.send(:class_variable_get, :@@blah) << 4
2483
2498
  end
2484
2499
  def _remove_attribute(v)
2485
- @@blah << 5
2500
+ self.class.send(:class_variable_get, :@@blah) << 5
2486
2501
  end
2487
2502
  def blah(x)
2488
- @@blah << x.pk
2503
+ self.class.send(:class_variable_get, :@@blah) << x.pk
2489
2504
  end
2490
2505
  def blahr(x)
2491
- @@blah << 6
2506
+ self.class.send(:class_variable_get, :@@blah) << 6
2492
2507
  end
2493
2508
  end
2494
2509
  p = @c2.load(:id=>10)
@@ -2504,9 +2519,9 @@ describe Sequel::Model, "many_to_many" do
2504
2519
  h = []
2505
2520
  @c2.many_to_many :attributes, :class => @c1, :after_load=>[proc{|x,y| h << [x.pk, y.collect{|z|z.pk}]}, :al]
2506
2521
  @c2.class_eval do
2507
- @@blah = h
2522
+ class_variable_set(:@@blah, h)
2508
2523
  def al(v)
2509
- v.each{|x| @@blah << x.pk}
2524
+ v.each{|x| self.class.send(:class_variable_get, :@@blah) << x.pk}
2510
2525
  end
2511
2526
  end
2512
2527
  @c1.class_eval do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe "Model attribute setters" do
4
4
 
@@ -1,14 +1,14 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model::DatasetMethods, "#destroy" do
4
4
  before do
5
5
  @c = Class.new(Sequel::Model(:items)) do
6
- @@destroyed = []
6
+ class_variable_set(:@@destroyed, [])
7
7
  def destroy
8
- @@destroyed << self
8
+ self.class.send(:class_variable_get, :@@destroyed) << self
9
9
  end
10
10
  def self.destroyed
11
- @@destroyed
11
+ class_variable_get(:@@destroyed)
12
12
  end
13
13
  end
14
14
  @d = @c.dataset
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model, "#eager" do
4
4
  before(:each) do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe "Model#after_initialize" do
4
4
  specify "should be called after initialization" do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), 'spec_helper')
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper')
2
2
 
3
3
  describe Sequel::Inflections do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe "Sequel::Model()" do
4
4
  before do
@@ -302,6 +302,12 @@ describe Sequel::Model, ".find_or_create" do
302
302
  "INSERT INTO items (x) VALUES (1)"
303
303
  ]
304
304
  end
305
+
306
+ it "should pass the new record to be created to the block if no record is found" do
307
+ @c.meta_def(:find){|*|}
308
+ @c.find_or_create(:x => 1){|x| x[:y] = 2}
309
+ ["INSERT INTO items (x, y) VALUES (1, 2)", "INSERT INTO items (y, x) VALUES (2, 1)"].should include(MODEL_DB.sqls.first)
310
+ end
305
311
  end
306
312
 
307
313
  describe Sequel::Model, ".all" do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model, ".plugin" do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe "Model#save server use" do
4
4
 
@@ -1462,7 +1462,6 @@ describe Sequel::Model, "typecasting" do
1462
1462
  specify "should raise an error if invalid data is used in a time field" do
1463
1463
  @c.instance_variable_set(:@db_schema, {:x=>{:type=>:time}})
1464
1464
  proc{@c.new.x = '0000'}.should raise_error
1465
- proc{@c.new.x = 'a'}.should_not raise_error # Valid Time
1466
1465
  proc{@c.new.x = Date.parse('2008-10-21')}.should raise_error(Sequel::InvalidValue)
1467
1466
  proc{@c.new.x = DateTime.parse('2008-10-21')}.should raise_error(Sequel::InvalidValue)
1468
1467
  end
@@ -1519,7 +1518,6 @@ describe Sequel::Model, "typecasting" do
1519
1518
  specify "should raise an error if invalid data is used in a datetime field" do
1520
1519
  @c.instance_variable_set(:@db_schema, {:x=>{:type=>:datetime}})
1521
1520
  proc{@c.new.x = '0000'}.should raise_error(Sequel::InvalidValue)
1522
- proc{@c.new.x = 'a'}.should_not raise_error # Valid Time
1523
1521
  Sequel.datetime_class = DateTime
1524
1522
  proc{@c.new.x = '0000'}.should raise_error(Sequel::InvalidValue)
1525
1523
  proc{@c.new.x = 'a'}.should raise_error(Sequel::InvalidValue)
@@ -1,10 +1,10 @@
1
1
  require 'rubygems'
2
2
  unless Object.const_defined?('Sequel')
3
- $:.unshift(File.join(File.dirname(__FILE__), "../../lib/"))
3
+ $:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
4
4
  require 'sequel/core'
5
5
  end
6
6
  unless Sequel.const_defined?('Model')
7
- $:.unshift(File.join(File.dirname(__FILE__), "../../lib/"))
7
+ $:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
8
8
  require 'sequel/model'
9
9
  end
10
10
 
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
2
2
 
3
3
  describe Sequel::Model::Errors do
4
4
  before do
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.1
4
+ hash: 51
5
+ prerelease: false
6
+ segments:
7
+ - 3
8
+ - 13
9
+ - 0
10
+ version: 3.13.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - Jeremy Evans
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-06-09 00:00:00 -07:00
18
+ date: 2010-07-01 00:00:00 -07:00
13
19
  default_executable:
14
20
  dependencies: []
15
21
 
@@ -70,6 +76,7 @@ extra_rdoc_files:
70
76
  - doc/release_notes/3.10.0.txt
71
77
  - doc/release_notes/3.11.0.txt
72
78
  - doc/release_notes/3.12.0.txt
79
+ - doc/release_notes/3.13.0.txt
73
80
  files:
74
81
  - COPYING
75
82
  - CHANGELOG
@@ -113,6 +120,7 @@ files:
113
120
  - doc/release_notes/3.10.0.txt
114
121
  - doc/release_notes/3.11.0.txt
115
122
  - doc/release_notes/3.12.0.txt
123
+ - doc/release_notes/3.13.0.txt
116
124
  - doc/sharding.rdoc
117
125
  - doc/sql.rdoc
118
126
  - doc/virtual_rows.rdoc
@@ -186,6 +194,10 @@ files:
186
194
  - spec/extensions/string_stripper_spec.rb
187
195
  - spec/extensions/update_primary_key_spec.rb
188
196
  - spec/extensions/association_pks_spec.rb
197
+ - spec/extensions/json_serializer_spec.rb
198
+ - spec/extensions/list_spec.rb
199
+ - spec/extensions/tree_spec.rb
200
+ - spec/extensions/xml_serializer_spec.rb
189
201
  - spec/integration/associations_test.rb
190
202
  - spec/integration/database_test.rb
191
203
  - spec/integration/dataset_test.rb
@@ -362,6 +374,10 @@ files:
362
374
  - lib/sequel/plugins/string_stripper.rb
363
375
  - lib/sequel/plugins/update_primary_key.rb
364
376
  - lib/sequel/plugins/association_pks.rb
377
+ - lib/sequel/plugins/json_serializer.rb
378
+ - lib/sequel/plugins/list.rb
379
+ - lib/sequel/plugins/tree.rb
380
+ - lib/sequel/plugins/xml_serializer.rb
365
381
  - lib/sequel/sql.rb
366
382
  - lib/sequel/timezones.rb
367
383
  - lib/sequel/version.rb
@@ -383,21 +399,29 @@ rdoc_options:
383
399
  require_paths:
384
400
  - lib
385
401
  required_ruby_version: !ruby/object:Gem::Requirement
402
+ none: false
386
403
  requirements:
387
404
  - - ">="
388
405
  - !ruby/object:Gem::Version
406
+ hash: 63
407
+ segments:
408
+ - 1
409
+ - 8
410
+ - 4
389
411
  version: 1.8.4
390
- version:
391
412
  required_rubygems_version: !ruby/object:Gem::Requirement
413
+ none: false
392
414
  requirements:
393
415
  - - ">="
394
416
  - !ruby/object:Gem::Version
417
+ hash: 3
418
+ segments:
419
+ - 0
395
420
  version: "0"
396
- version:
397
421
  requirements: []
398
422
 
399
423
  rubyforge_project: sequel
400
- rubygems_version: 1.3.5
424
+ rubygems_version: 1.3.7
401
425
  signing_key:
402
426
  specification_version: 3
403
427
  summary: The Database Toolkit for Ruby