sequel 5.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d494778be10a685dadd0181b0f35d8976ad80de5
4
- data.tar.gz: 3de435547bc07c151e6511915b034c4c70909b28
3
+ metadata.gz: d380edb41288b7e5fd091c8ffd8215b9a8c0a8b2
4
+ data.tar.gz: e4c34f33035f7e2354f53e264683a60337c66d28
5
5
  SHA512:
6
- metadata.gz: 71e23a94e737525c4bcf0ad0e16376a8ec933bf6962dce7c5032971ec3f8b7cb140c194ad51a41e818c4597025c3403b5f3777941ecf247595f8b7294ac9804f
7
- data.tar.gz: d57c4092428f1ca13fb1fce70e9f26dae1f53e5c04f75aef5c5ad2ea5d0ac664c06443b86f7881a7abe7c499b977476fddb3155c9856290eb573b3a6d810b7a4
6
+ metadata.gz: a18ccd0f5974af2610e2d274963b83fdba2aab99559c3e1cf2bceba99d890d6d4c0dda13c0c6b2f9fba913f41ba39983d65df52e39651e745fa86a1097c3c003
7
+ data.tar.gz: ac9efe8f2e33539d322b94b6e9e76cadf64091a2af6958bdbdd8e67bea691849382c5aae0032b29498ab4d3b9c4ddf599737be8170d6f435fd03028fbcfc1019
data/CHANGELOG CHANGED
@@ -1,3 +1,23 @@
1
+ === 5.1.0 (2017-10-01)
2
+
3
+ * Make jdbc/h2 and jdbc/hsqldb adapters respect :foreign_key_constraint_name option when adding new foreign key column (jeremyevans)
4
+
5
+ * Do not issue unnecessary query for macaddr type oid when loading the pg_inet extension (jeltz) (#1423)
6
+
7
+ * Make alter_table add_foreign_key with a column symbol reversible when using the :foreign_key_constraint_name option (jeremyevans) (#1422)
8
+
9
+ * Do not raise an error if calling Model.freeze on a frozen model (jeremyevans) (#1421)
10
+
11
+ * Make Database#copy_into in the jdbc/postgresql adapter handle multi-byte strings (ckoenig) (#1416)
12
+
13
+ * Remove deprecated Model use_after_commit_rollback class and instance methods (jeremyevans)
14
+
15
+ * Remove deprecated Model.allowed_columns method in the base model support (jeremyevans)
16
+
17
+ * Remove deprecated Model.plugin_module_defined? private method (jeremyevans)
18
+
19
+ * Remove deprecated support for Model#_before_validation private method (jeremyevans)
20
+
1
21
  === 5.0.0 (2017-09-01)
2
22
 
3
23
  * Make bin/sequel -M option always use base 10 (jeremyevans)
@@ -710,14 +710,14 @@ name, with no duplicates?
710
710
  ids = h.keys
711
711
  eo[:rows].each{|r| r.associations[:songs] = []}
712
712
  Song.select_all(:songs).
713
- select_append{[lyrics[:composer_id], lyrics[:arranger_id], lyrics[:vocalist_id], lyrics[:lyricist_id]}.
713
+ select_append{[lyrics[:composer_id], lyrics[:arranger_id], lyrics[:vocalist_id], lyrics[:lyricist_id]]}.
714
714
  join(:lyrics, id: :lyric_id){Sequel.or(composer_id: ids, arranger_id: ids, vocalist_id: ids, lyricist_id: ids)}.
715
715
  order{songs[:name]}.all do |song|
716
- [:composer_id, :arranger_id, :vocalist_id, :lyricist_id].each do |x|
717
- recs = h[song.values.delete(x)]
718
- recs.each{|r| r.associations[:songs] << song} if recs
716
+ [:composer_id, :arranger_id, :vocalist_id, :lyricist_id].each do |x|
717
+ recs = h[song.values.delete(x)]
718
+ recs.each{|r| r.associations[:songs] << song} if recs
719
+ end
719
720
  end
720
- end
721
721
  eo[:rows].each{|r| r.associations[:songs].uniq!}
722
722
  end)
723
723
  end
@@ -1551,11 +1551,11 @@ extensions.
1551
1551
  # :id <----- :meta -------> :id
1552
1552
  # :name :name
1553
1553
  class Album < Sequel::Model
1554
- many_to_many :artists, left_key: Sequel.pg_jsonb(:meta)['album_id'].cast(String).cast(Integer)
1554
+ many_to_many :artists, left_key: Sequel.pg_jsonb(:meta)['album_id'].cast(String).cast(Integer),
1555
1555
  right_key: Sequel.pg_jsonb(:meta)['artist_id'].cast(String).cast(Integer)
1556
1556
  end
1557
1557
  class Artist < Sequel::Model
1558
- many_to_many :albums, left_key: Sequel.pg_jsonb(:meta)['artist_id'].cast(String).cast(Integer)
1558
+ many_to_many :albums, left_key: Sequel.pg_jsonb(:meta)['artist_id'].cast(String).cast(Integer),
1559
1559
  right_key: Sequel.pg_jsonb(:meta)['album_id'].cast(String).cast(Integer)
1560
1560
  end
1561
1561
 
@@ -0,0 +1,31 @@
1
+ = Improvements
2
+
3
+ * Database#copy_into in the jdbc/postgresql adapter now works
4
+ correctly when using multibyte characters in strings.
5
+
6
+ * The alter_table add_foreign_key method is now reversible when the
7
+ :foreign_key_constraint_name option is used.
8
+
9
+ * The jdbc/h2 and jdbc/hsqldb adapters now respect the
10
+ :foreign_key_constraint_name option.
11
+
12
+ * Calling Model.freeze on an already frozen model no longer raises
13
+ an error.
14
+
15
+ * An unnecessary database query is now avoided when loading the
16
+ pg_inet extension when the pg_array extension is already loaded.
17
+
18
+ * A better exception message is now used when migrating with an
19
+ empty migration directory.
20
+
21
+ = Backwards Compatibility
22
+
23
+ * Model.allowed_columns has been removed. Use the whitelist_security
24
+ plugin if you want to call it.
25
+
26
+ * Model use_after_commit_rollback class and instance accessors have
27
+ been removed.
28
+
29
+ * Support for the Model#_before_validation method has been removed.
30
+
31
+ * The private Model.plugin_module_defined? method has been removed.
@@ -89,7 +89,8 @@ module Sequel
89
89
 
90
90
  if ref
91
91
  op[:table] = ref
92
- sqls << "ALTER TABLE #{quote_schema_table(table)} ADD FOREIGN KEY (#{quote_identifier(op[:name])}) #{column_references_sql(op)}"
92
+ constraint_name = op[:foreign_key_constraint_name]
93
+ sqls << "ALTER TABLE #{quote_schema_table(table)} ADD#{" CONSTRAINT #{quote_identifier(constraint_name)}" if constraint_name} FOREIGN KEY (#{quote_identifier(op[:name])}) #{column_references_sql(op)}"
93
94
  end
94
95
 
95
96
  sqls
@@ -53,7 +53,7 @@ module Sequel
53
53
  when :add_column
54
54
  if op[:table]
55
55
  [super(table, op.merge(:table=>nil)),
56
- alter_table_sql(table, op.merge(:op=>:add_constraint, :type=>:foreign_key, :name=>op[:foreign_key_name], :columns=>[op[:name]], :table=>op[:table]))]
56
+ alter_table_sql(table, op.merge(:op=>:add_constraint, :type=>:foreign_key, :name=>op[:foreign_key_constraint_name], :columns=>[op[:name]], :table=>op[:table]))]
57
57
  else
58
58
  super
59
59
  end
@@ -65,10 +65,14 @@ module Sequel
65
65
  copier = copy_manager.copy_in(copy_into_sql(table, opts))
66
66
  if block_given?
67
67
  while buf = yield
68
- copier.writeToCopy(buf.to_java_bytes, 0, buf.length)
68
+ java_bytes = buf.to_java_bytes
69
+ copier.writeToCopy(java_bytes, 0, java_bytes.length)
69
70
  end
70
71
  else
71
- data.each { |d| copier.writeToCopy(d.to_java_bytes, 0, d.length) }
72
+ data.each do |d|
73
+ java_bytes = d.to_java_bytes
74
+ copier.writeToCopy(java_bytes, 0, java_bytes.length)
75
+ end
72
76
  end
73
77
  rescue Exception => e
74
78
  copier.cancelCopy if copier
@@ -520,6 +520,10 @@ module Sequel
520
520
  # drop_foreign_key(:artist_id) # DROP CONSTRAINT table_artist_id_fkey, DROP COLUMN artist_id
521
521
  # drop_foreign_key([:name]) # DROP CONSTRAINT table_name_fkey
522
522
  def drop_foreign_key(name, opts=OPTS)
523
+ if !name.is_a?(Array) && opts[:foreign_key_constraint_name]
524
+ opts = Hash[opts]
525
+ opts[:name] = opts[:foreign_key_constraint_name]
526
+ end
523
527
  drop_composite_foreign_key(Array(name), opts)
524
528
  drop_column(name) unless name.is_a?(Array)
525
529
  end
@@ -494,6 +494,10 @@ module Sequel
494
494
  # Sequel checks that the datasets using this method have an order, but it cannot
495
495
  # ensure that the order is unambiguous.
496
496
  #
497
+ # Note that this method is not safe to use on many adapters if you are
498
+ # running additional queries inside the provided block. If you are
499
+ # running queries inside the block, use a separate thread or shard inside +paged_each+.
500
+ #
497
501
  # Options:
498
502
  # :rows_per_fetch :: The number of rows to fetch per query. Defaults to 1000.
499
503
  # :strategy :: The strategy to use for paging of results. By default this is :offset,
@@ -516,6 +516,8 @@ module Sequel
516
516
  def initialize(db, directory, opts=OPTS)
517
517
  super
518
518
  @current = opts[:current] || current_migration_version
519
+ raise(Error, "No current version available") unless current
520
+
519
521
  latest_version = latest_migration_version
520
522
 
521
523
  @target = if opts[:target]
@@ -526,15 +528,14 @@ module Sequel
526
528
  latest_version
527
529
  end
528
530
 
531
+ raise(Error, "No target version available, probably because no migration files found or filenames don't follow the migration filename convention") unless target
532
+
529
533
  if @target > latest_version
530
534
  @target = latest_version
531
535
  elsif @target < 0
532
536
  @target = 0
533
537
  end
534
538
 
535
- raise(Error, "No current version available") unless current
536
- raise(Error, "No target version available, probably because no migration files found or filenames don't follow the migration filename convention") unless target
537
-
538
539
  @direction = current < target ? :up : :down
539
540
  @migrations = get_migrations
540
541
  end
@@ -46,7 +46,7 @@ module Sequel
46
46
  if respond_to?(:register_array_type)
47
47
  register_array_type('inet', :oid=>1041, :scalar_oid=>869)
48
48
  register_array_type('cidr', :oid=>651, :scalar_oid=>650)
49
- register_array_type('macaddr', :oid=>1040)
49
+ register_array_type('macaddr', :oid=>1040, :scalar_oid=>829)
50
50
  end
51
51
  @schema_type_classes[:ipaddr] = IPAddr
52
52
  end
@@ -2543,7 +2543,7 @@ module Sequel
2543
2543
 
2544
2544
  begin
2545
2545
  cbs.each do |cb|
2546
- res = case cb
2546
+ case cb
2547
2547
  when Symbol
2548
2548
  # Allow calling private methods in association callbacks
2549
2549
  send(cb, object)
@@ -22,13 +22,6 @@ module Sequel
22
22
  # truncate, unfiltered, ungraphed, ungrouped, union, unlimited, unordered, where, where_all,
23
23
  # where_each, where_single_value, with, with_recursive, with_sql
24
24
  module ClassMethods
25
- # :nocov:
26
- def allowed_columns
27
- Sequel::Deprecation.deprecate("Model.allowed_columns", "It has been moved to the whitelist_security plugin")
28
- nil
29
- end
30
- # :nocov:
31
-
32
25
  # Whether to cache the anonymous models created by Sequel::Model(), true by default. This is
33
26
  # required for reloading them correctly (avoiding the superclass mismatch).
34
27
  attr_accessor :cache_anonymous_models
@@ -83,7 +76,7 @@ module Sequel
83
76
  # Sequel will not check the number of rows modified (default: true).
84
77
  attr_accessor :require_modification
85
78
 
86
- # If true (the default), tequires that all models have valid tables,
79
+ # If true (the default), requires that all models have valid tables,
87
80
  # raising exceptions if creating a model without a valid table backing it.
88
81
  # Setting this to false will allow the creation of model classes where the
89
82
  # underlying table doesn't exist.
@@ -116,17 +109,6 @@ module Sequel
116
109
  # database to typecast the value correctly.
117
110
  attr_accessor :typecast_on_assignment
118
111
 
119
- # :nocov:
120
- def use_after_commit_rollback
121
- Sequel::Deprecation.deprecate("Model.use_after_commit_rollback", "Model transaction hooks have been removed, switch to using database transaction hooks")
122
- false
123
- end
124
- def use_after_commit_rollback=(v)
125
- Sequel::Deprecation.deprecate("Model.use_after_commit_rollback=", "Model transaction hooks have been removed, switch to using database transaction hooks")
126
- false
127
- end
128
- # :nocov:
129
-
130
112
  # Whether to use a transaction by default when saving/deleting records (default: true).
131
113
  # If you are sending database queries in before_* or after_* hooks, you shouldn't change
132
114
  # the default setting without a good reason.
@@ -445,6 +427,7 @@ module Sequel
445
427
 
446
428
  # Freeze a model class, disallowing any further changes to it.
447
429
  def freeze
430
+ return self if frozen?
448
431
  dataset_module.freeze
449
432
  overridable_methods_module.freeze
450
433
 
@@ -933,13 +916,6 @@ module Sequel
933
916
  Sequel::Plugins.const_get(module_name)
934
917
  end
935
918
 
936
- # :nocov:
937
- def plugin_module_defined?(plugin, submod)
938
- Sequel::Deprecation.deprecate("Model.plugin_module_defined? (private method)", "Use const_defined?(submod, false)")
939
- plugin.const_defined?(submod, false)
940
- end
941
- # :nocov:
942
-
943
919
  # Find the row in the dataset that matches the primary key. Uses
944
920
  # a static SQL optimization if the table and primary key are simple.
945
921
  #
@@ -1044,17 +1020,6 @@ module Sequel
1044
1020
  attr_writer(meth)
1045
1021
  end
1046
1022
 
1047
- # :nocov:
1048
- def use_after_commit_rollback
1049
- Sequel::Deprecation.deprecate("Model#use_after_commit_rollback", "Model transaction hooks have been removed, switch to using database transaction hooks")
1050
- false
1051
- end
1052
- def use_after_commit_rollback=(v)
1053
- Sequel::Deprecation.deprecate("Model#use_after_commit_rollback=", "Model transaction hooks have been removed, switch to using database transaction hooks")
1054
- false
1055
- end
1056
- # :nocov:
1057
-
1058
1023
  # The hash of attribute values. Keys are symbols with the names of the
1059
1024
  # underlying database columns. The returned hash is a reference to the
1060
1025
  # receiver's values hash, and modifying it will also modify the receiver's
@@ -1469,12 +1434,6 @@ module Sequel
1469
1434
  def save(opts=OPTS)
1470
1435
  raise Sequel::Error, "can't save frozen object" if frozen?
1471
1436
  set_server(opts[:server]) if opts[:server]
1472
- # :nocov:
1473
- if method(:_before_validation).owner != InstanceMethods
1474
- Sequel::Deprecation.deprecate("Using Model#_before_validation", "You should switch to using Model#before_validation")
1475
- _before_validation
1476
- end
1477
- # :nocov:
1478
1437
  unless checked_save_failure(opts){_valid?(opts)}
1479
1438
  raise(ValidationFailed.new(self)) if raise_on_failure?(opts)
1480
1439
  return
@@ -1622,12 +1581,6 @@ module Sequel
1622
1581
  # artist.set(name: 'Invalid').valid? # => false
1623
1582
  # artist.errors.full_messages # => ['name cannot be Invalid']
1624
1583
  def valid?(opts = OPTS)
1625
- # :nocov:
1626
- if method(:_before_validation).owner != InstanceMethods
1627
- Sequel::Deprecation.deprecate("Using Model#_before_validation", "You should switch to using Model#before_validation")
1628
- _before_validation
1629
- end
1630
- # :nocov:
1631
1584
  begin
1632
1585
  _valid?(opts)
1633
1586
  rescue HookFailed
@@ -1637,10 +1590,6 @@ module Sequel
1637
1590
 
1638
1591
  private
1639
1592
 
1640
- # SEQUEL51: Remove
1641
- def _before_validation
1642
- end
1643
-
1644
1593
  # Do the deletion of the object's dataset, and check that the row
1645
1594
  # was actually deleted.
1646
1595
  def _delete
@@ -132,7 +132,7 @@ module Sequel
132
132
  # Cook: :staff,
133
133
  # Manager: :managers,
134
134
  # Executive: :executives,
135
- # CEO: ::executives }
135
+ # CEO: :executives }
136
136
  #
137
137
  # # Using integers to store the class type, with a :model_map hash
138
138
  # # and an sti_key of :type
@@ -5,7 +5,7 @@ module Sequel
5
5
  MAJOR = 5
6
6
  # The minor version of Sequel. Bumped for every non-patch level
7
7
  # release, generally around once a month.
8
- MINOR = 0
8
+ MINOR = 1
9
9
  # The tiny version of Sequel. Usually 0, only bumped for bugfix
10
10
  # releases that fix regressions from previous versions.
11
11
  TINY = 0
@@ -1748,6 +1748,31 @@ if uses_pg_or_jdbc && DB.server_version >= 90000
1748
1748
  end
1749
1749
  end
1750
1750
 
1751
+ describe "Postgres::Database#copy_into using UTF-8 encoding" do
1752
+ before(:all) do
1753
+ @db = DB
1754
+ @db.create_table!(:test_copy){String :t}
1755
+ @ds = @db[:test_copy].order(:t)
1756
+ end
1757
+ before do
1758
+ @db[:test_copy].delete
1759
+ end
1760
+ after(:all) do
1761
+ @db.drop_table?(:test_copy)
1762
+ end
1763
+
1764
+ it "should work with UTF-8 characters using the :data option" do
1765
+ @db.copy_into(:test_copy, :data=>(["\u00E4\n"]*2))
1766
+ @ds.select_map([:t]).map{|a| a.map{|s| s.force_encoding('UTF-8')}}.must_equal([["\u00E4"]] * 2)
1767
+ end
1768
+
1769
+ it "should work with UTF-8 characters using a block" do
1770
+ buf = (["\u00E4\n"]*2)
1771
+ @db.copy_into(:test_copy){buf.shift}
1772
+ @ds.select_map([:t]).map{|a| a.map{|s| s.force_encoding('UTF-8')}}.must_equal([["\u00E4"]] * 2)
1773
+ end
1774
+ end
1775
+
1751
1776
  describe "Postgres::Database#copy_table" do
1752
1777
  before(:all) do
1753
1778
  @db = DB
@@ -1828,7 +1853,6 @@ if uses_pg_or_jdbc && DB.server_version >= 90000
1828
1853
  e.wrapped_exception.must_be_kind_of ArgumentError
1829
1854
  e.message.must_include "foo"
1830
1855
  end
1831
-
1832
1856
  end
1833
1857
  end
1834
1858
 
@@ -1204,6 +1204,20 @@ describe "DB#alter_table" do
1204
1204
  @db.sqls.must_equal ["ALTER TABLE cats DROP CONSTRAINT cats_node_id_fkey", "ALTER TABLE cats DROP COLUMN node_id"]
1205
1205
  end
1206
1206
 
1207
+ it "should support drop_foreign_key with :foreign_key_constraint_name option" do
1208
+ @db.alter_table(:cats) do
1209
+ drop_foreign_key :node_id, :foreign_key_constraint_name=>:foo
1210
+ end
1211
+ @db.sqls.must_equal ["ALTER TABLE cats DROP CONSTRAINT foo", "ALTER TABLE cats DROP COLUMN node_id"]
1212
+ end
1213
+
1214
+ it "should support drop_foreign_key with :name option" do
1215
+ @db.alter_table(:cats) do
1216
+ drop_foreign_key :node_id, :name=>:foo
1217
+ end
1218
+ @db.sqls.must_equal ["ALTER TABLE cats DROP CONSTRAINT foo", "ALTER TABLE cats DROP COLUMN node_id"]
1219
+ end
1220
+
1207
1221
  it "should support drop_foreign_key with composite foreign keys" do
1208
1222
  def @db.foreign_key_list(table_name)
1209
1223
  [{:name=>:cats_node_id_prop_id_fkey, :columns=>[:node_id, :prop_id]}]
@@ -195,6 +195,16 @@ describe "Reversible Migrations with Sequel.migration{change{}}" do
195
195
  [:drop_table, :a, {:foo=>:bar}]]
196
196
  end
197
197
 
198
+ it "should reverse add_foreign_key with :foreign_key_constraint_name option" do
199
+ Sequel.migration{change{alter_table(:t){add_foreign_key :b, :c, :foreign_key_constraint_name=>:f}}}.apply(@db, :down)
200
+ actions = @db.actions
201
+ actions.must_equal [[:alter_table, [[:drop_foreign_key, :b, {:foreign_key_constraint_name=>:f}]]]]
202
+ @db.sqls
203
+ db = Sequel.mock
204
+ db.alter_table(:t){send(*actions[0][1][0])}
205
+ db.sqls.must_equal ["ALTER TABLE t DROP CONSTRAINT f", "ALTER TABLE t DROP COLUMN b"]
206
+ end
207
+
198
208
  it "should raise in the down direction if migration uses unsupported method" do
199
209
  m = Sequel.migration{change{run 'SQL'}}
200
210
  m.apply(@db, :up)
@@ -341,7 +341,7 @@ describe "Bound Argument Types" do
341
341
  @ds.filter(:dt=>:$x).prepare(:first, :ps_datetime).call(:x=>@vs[:dt])[:dt].must_equal @vs[:dt]
342
342
  end
343
343
 
344
- cspecify "should handle datetime type with fractional seconds", [:jdbc, :sqlite], [:oracle] do
344
+ cspecify "should handle datetime type with fractional seconds", [:jdbc, :sqlite], [:jdbc, :mysql], [:oracle] do
345
345
  Sequel.datetime_class = DateTime
346
346
  fract_time = DateTime.parse('2010-10-12 13:14:15.500000')
347
347
  @ds.prepare(:update, :ps_datetime_up, :dt=>:$x).call(:x=>fract_time)
@@ -352,7 +352,7 @@ describe "Bound Argument Types" do
352
352
  @ds.filter(:t=>:$x).prepare(:first, :ps_time).call(:x=>@vs[:t])[:t].must_equal @vs[:t]
353
353
  end
354
354
 
355
- cspecify "should handle time type with fractional seconds", [:jdbc, :sqlite] do
355
+ cspecify "should handle time type with fractional seconds", [:jdbc, :sqlite], [:jdbc, :mysql] do
356
356
  fract_time = @vs[:t] + 0.5
357
357
  @ds.prepare(:update, :ps_time_up, :t=>:$x).call(:x=>fract_time)
358
358
  @ds.literal(@ds.filter(:t=>:$x).prepare(:first, :ps_time).call(:x=>fract_time)[:t]).must_equal @ds.literal(fract_time)
@@ -215,7 +215,7 @@ describe "Database index parsing" do
215
215
  DB.indexes(:items).must_equal({})
216
216
  end
217
217
 
218
- it "should not include partial indexes" do
218
+ cspecify "should not include partial indexes", [proc{|db| db.sqlite_version < 30808}, :sqlite] do
219
219
  DB.create_table!(:items){Integer :n; Integer :a; index :n, :where=>proc{n > 10}}
220
220
  DB.indexes(:items).must_equal({})
221
221
  end if DB.supports_partial_indexes?
@@ -191,6 +191,11 @@ describe "Sequel::Model.freeze" do
191
191
  proc{model.dataset_module{}}.must_raise RuntimeError
192
192
  end
193
193
 
194
+ it "should work if the model is already frozen" do
195
+ model = Class.new(Sequel::Model(:items))
196
+ model.freeze.freeze
197
+ end
198
+
194
199
  it "should freeze a model class without a dataset without breaking" do
195
200
  model = Class.new(Sequel::Model)
196
201
  model.freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-02 00:00:00.000000000 Z
11
+ date: 2017-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -251,6 +251,7 @@ extra_rdoc_files:
251
251
  - doc/release_notes/4.48.0.txt
252
252
  - doc/release_notes/4.49.0.txt
253
253
  - doc/release_notes/5.0.0.txt
254
+ - doc/release_notes/5.1.0.txt
254
255
  files:
255
256
  - CHANGELOG
256
257
  - MIT-LICENSE
@@ -396,6 +397,7 @@ files:
396
397
  - doc/release_notes/4.8.0.txt
397
398
  - doc/release_notes/4.9.0.txt
398
399
  - doc/release_notes/5.0.0.txt
400
+ - doc/release_notes/5.1.0.txt
399
401
  - doc/schema_modification.rdoc
400
402
  - doc/security.rdoc
401
403
  - doc/sharding.rdoc
@@ -915,7 +917,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
915
917
  version: '0'
916
918
  requirements: []
917
919
  rubyforge_project:
918
- rubygems_version: 2.6.11
920
+ rubygems_version: 2.6.13
919
921
  signing_key:
920
922
  specification_version: 4
921
923
  summary: The Database Toolkit for Ruby