sequel 3.12.1 → 3.13.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.
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