sequel-inline_schema 0.3.0 → 0.3.4

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
  SHA256:
3
- metadata.gz: ba38d991fa938c8b49fd8d6b395609ed80191ea733dcbfc91adc539b23a1ad2c
4
- data.tar.gz: 58cac869e2b380e53b47e17ba0aa8f8bb47e5553cf5a9ac57b499bd962d76c4e
3
+ metadata.gz: 5f472b3119c986020f3dcecab118b2985e6aae903e0252a8aa6c987086525688
4
+ data.tar.gz: 98e02125e66c86ae93e7754ef6c638476a51d25938053c19b03330302cf0477b
5
5
  SHA512:
6
- metadata.gz: cc518f2f4548126ce2e79c7c5fa619b4d2be33e0db757b6cd90a05bb8b5804938819352225c0ce60b9871e1b526e0d90dff743ca3304215ce33f3eef98c9ae88
7
- data.tar.gz: f67ec3eca4fb4e65f1e66b1494d61e0c5f3b636074b88becfb3f28a70e107f3be44b67b613a50dbf63def6778b70f0befd5eb39b043b96ddc34f760ca2d16c73
6
+ metadata.gz: 749fbeba674e2dcf1ce3949336c13d729a2487a4d3d73974963b9e8c9015b08f92ee57babcd5d3094804128509744346bee4b263e65ccacda66b2e00ca91bd24
7
+ data.tar.gz: f4089b9ae88912674fd4e4387c3571f1a542c66424c5e55216e2c38cb52dfca8ae749cc0b7eafe3f0bce0e86cf1300f95960370bc3d20a0ec282037d5c931118
checksums.yaml.gz.sig CHANGED
Binary file
data/History.md CHANGED
@@ -1,6 +1,34 @@
1
1
  # Release History for sequel-inline_schema
2
2
 
3
3
  ---
4
+ ## v0.3.4 [2021-11-08] Michael Granger <ged@faeriemud.org>
5
+
6
+ Improvements:
7
+
8
+ - Update for Ruby 3, update gem-signing cert.
9
+
10
+
11
+ ## v0.3.3 [2020-02-24] Michael Granger <ged@faeriemud.org>
12
+
13
+ Bugfixes:
14
+
15
+ - Allow options to be passed through #drop_table
16
+ - Fix view_exists? query for schema-qualified table names
17
+
18
+
19
+ ## v0.3.2 [2020-02-11] Michael Granger <ged@faeriemud.org>
20
+
21
+ Bugfixes:
22
+
23
+ - Fixed view hooks and added specs.
24
+
25
+
26
+ ## v0.3.1 [2020-02-11] Michael Granger <ged@faeriemud.org>
27
+
28
+ Bugfixes:
29
+
30
+ - Change back to using `create_view`
31
+
4
32
 
5
33
  ## v0.3.0 [2020-02-10] Michael Granger <ged@faeriemud.org>
6
34
 
data/README.md CHANGED
@@ -9,6 +9,9 @@ github
9
9
  docs
10
10
  : http://deveiate.org/code/sequel-inline_schema
11
11
 
12
+ code
13
+ : https://hg.sr.ht/~ged/Sequel-InlineSchema/browse
14
+
12
15
 
13
16
  ## Description
14
17
 
data/Rakefile CHANGED
@@ -4,6 +4,5 @@ require 'rake/deveiate'
4
4
 
5
5
  Rake::DevEiate.setup( 'sequel-inline_schema' ) do |project|
6
6
  project.publish_to = 'deveiate:/usr/local/www/public/code'
7
- project.required_ruby_version = '~> 2.5'
8
7
  end
9
8
 
@@ -7,7 +7,7 @@ require 'sequel/plugins/inline_schema'
7
7
  module Sequel::InlineSchema
8
8
 
9
9
  # Package version
10
- VERSION = '0.3.0'
10
+ VERSION = '0.3.4'
11
11
 
12
12
  # Version control revision
13
13
  REVISION = %q$Revision$
@@ -175,16 +175,16 @@ module Sequel::Plugins::InlineSchema
175
175
 
176
176
 
177
177
  ### Drops table. If the table doesn't exist, this will probably raise an error.
178
- def drop_table
178
+ def drop_table( opts={} )
179
179
  self.before_drop_table
180
- self.db.drop_table( self.table_name )
180
+ self.db.drop_table( self.table_name, opts )
181
181
  self.after_drop_table
182
182
  end
183
183
 
184
184
 
185
185
  ### Drops table if it already exists, do nothing.
186
- def drop_table?
187
- self.drop_table if self.table_exists?
186
+ def drop_table?( opts={} )
187
+ self.drop_table( opts ) if self.table_exists?
188
188
  end
189
189
 
190
190
 
@@ -210,8 +210,11 @@ module Sequel::Plugins::InlineSchema
210
210
  dataset = self.view_dataset or raise "No view declared for this model."
211
211
  options = self.view_options.merge( options )
212
212
 
213
+ self.before_create_view
213
214
  self.db.log_info "Creating view %s(%p): %s" % [ self.table_name, options, dataset.sql ]
214
- self.db.create_or_replace_view( self.table_name, dataset, options )
215
+ self.db.create_view( self.table_name, dataset, options )
216
+ @db_schema = get_db_schema( true )
217
+ self.after_create_view
215
218
  end
216
219
 
217
220
 
@@ -236,31 +239,35 @@ module Sequel::Plugins::InlineSchema
236
239
 
237
240
 
238
241
  ### Drop the view backing this model.
239
- def drop_view
242
+ def drop_view( options={} )
240
243
  self.before_drop_view
241
- self.db.drop_view( self.table_name )
244
+ self.db.drop_view( self.table_name, self.view_options.merge(options) )
242
245
  self.after_drop_view
243
246
  end
244
247
 
245
248
 
246
249
  ### Drop the view if it already exists, otherwise do nothing.
247
- def drop_view?
248
- self.drop_view if self.view_exists?
250
+ def drop_view?( options={} )
251
+ self.drop_view( options ) if self.view_exists?
249
252
  end
250
253
 
251
254
 
252
255
  ### Returns true if the view associated with this model exists, false otherwise.
256
+ ### :FIXME: This is PostgreSQL-specific, but there doesn't appear to be any
257
+ ### cross-driver way to check for a view.
253
258
  def view_exists?
254
259
  # Make shortcuts for fully-qualified names
255
260
  class_table = Sequel[:pg_catalog][:pg_class].as( :c )
256
261
  ns_table = Sequel[:pg_catalog][:pg_namespace].as( :n )
257
262
  is_visible = Sequel[:pg_catalog][:pg_table_is_visible]
258
263
 
264
+ _, table, _ = Sequel.split_symbol( self.table_name )
265
+
259
266
  ds = db[ class_table ].
260
267
  join( ns_table, oid: :relnamespace )
261
268
  ds = ds.where( Sequel[:c][:relkind] => ['v', 'm'] ).
262
269
  exclude( Sequel[:n][:nspname] => /^pg_toast/ ).
263
- where( Sequel[:c][:relname] => self.table_name ).
270
+ where( Sequel[:c][:relname] => table.to_s ).
264
271
  where( Sequel.function(is_visible, Sequel[:c][:oid]) )
265
272
 
266
273
  return ds.count == 1
@@ -320,6 +327,18 @@ module Sequel::Plugins::InlineSchema
320
327
  end
321
328
 
322
329
 
330
+ ### View-drop hook; called before the backing view is dropped.
331
+ def before_drop_view
332
+ return true
333
+ end
334
+
335
+
336
+ ### View-drop hook; called after the backing view is dropped.
337
+ def after_drop_view
338
+ return true
339
+ end
340
+
341
+
323
342
  #
324
343
  # Schema-state introspection
325
344
  #
@@ -34,7 +34,23 @@ describe Sequel::Plugins::InlineSchema do
34
34
  mclass
35
35
  end
36
36
 
37
- let ( :view_dataset ) { model_class.dataset.group_and_count( :age ) }
37
+ let( :view_dataset ) { model_class.dataset.group_and_count( :age ) }
38
+
39
+ let( :view_class ) do
40
+ view_class = Class.new( Sequel::Model )
41
+ view_class.plugin( :inline_schema )
42
+ view_class.set_dataset( db[view] )
43
+ view_class.set_view_dataset { view_dataset.naked }
44
+ return view_class
45
+ end
46
+
47
+ let( :materialized_view_class ) do
48
+ materialized_view_class = Class.new( Sequel::Model )
49
+ materialized_view_class.plugin( :inline_schema )
50
+ materialized_view_class.set_dataset( db[view] )
51
+ materialized_view_class.set_view_dataset( materialized: true ) { view_dataset.naked }
52
+ return materialized_view_class
53
+ end
38
54
 
39
55
  let( :valid_pg_attributes ) do
40
56
  [
@@ -185,42 +201,72 @@ describe Sequel::Plugins::InlineSchema do
185
201
  end
186
202
 
187
203
 
204
+ it "allows a model to pass options when dropping its table" do
205
+ model_class.drop_table( cascade: true )
206
+ expect( db.sqls ).to include( %{DROP TABLE "#{table}" CASCADE} )
207
+ end
188
208
 
189
- it "allows a model to create a view instead of a table" do
190
- view_class = Class.new( Sequel::Model )
191
- view_class.plugin( :inline_schema )
192
- view_class.set_dataset( db[view] )
193
- view_class.set_view_dataset { view_dataset.naked }
194
209
 
210
+ it "allows a model to create a view instead of a table" do
195
211
  db.fetch = fake_db_fetcher
196
212
  db.sqls.clear
197
213
 
198
214
  view_class.create_view
199
215
 
200
216
  expect( db.sqls ).to include(
201
- %{CREATE OR REPLACE VIEW "#{view}" AS SELECT "age", count(*) AS "count" FROM "#{table}" GROUP BY "age"}
217
+ %{CREATE VIEW "#{view}" AS SELECT "age", count(*) AS "count" FROM "#{table}" GROUP BY "age"}
202
218
  )
203
219
  end
204
220
 
205
221
 
206
- it "allows a model to craete a materialized view instead of a table" do
207
- materialized_view_class = Class.new( Sequel::Model )
208
- materialized_view_class.plugin( :inline_schema )
209
- materialized_view_class.set_dataset( db[view] )
210
- materialized_view_class.set_view_dataset( materialized: true ) { view_dataset.naked }
211
-
222
+ it "allows a model to create a materialized view instead of a table" do
212
223
  db.fetch = fake_db_fetcher
213
224
  db.sqls.clear
214
225
 
215
226
  materialized_view_class.create_view
216
227
 
217
228
  expect( db.sqls ).to include(
218
- %{CREATE OR REPLACE MATERIALIZED VIEW "#{view}" AS SELECT "age", count(*) AS "count" } +
229
+ %{CREATE MATERIALIZED VIEW "#{view}" AS SELECT "age", count(*) AS "count" } +
219
230
  %{FROM "#{table}" GROUP BY "age"}
220
231
  )
221
232
  end
222
233
 
223
234
 
235
+ it "allows a model to determine whether its view exists or not" do
236
+ view_class.view_exists?
237
+ statements = db.sqls.dup
238
+
239
+ expect( statements.last ).to include( %{WHERE (("c"."relkind" IN ('v', 'm'))} )
240
+ expect( statements.last ).to include(
241
+ %{("c"."relname" = '#{view}') AND "pg_catalog"."pg_table_is_visible"("c"."oid")) LIMIT 1}
242
+ )
243
+ end
244
+
245
+
246
+ it "allows a model to drop its view" do
247
+ db.fetch = fake_db_fetcher
248
+ db.sqls.clear
249
+
250
+ view_class.drop_view
251
+
252
+ expect( db.sqls ).to include(
253
+ %{DROP VIEW "#{view}"}
254
+ )
255
+ end
256
+
257
+
258
+ it "allows a model to drop its materialized view" do
259
+ db.fetch = fake_db_fetcher
260
+ db.sqls.clear
261
+
262
+ materialized_view_class.drop_view
263
+
264
+ expect( db.sqls ).to include(
265
+ %{DROP MATERIALIZED VIEW "#{view}"}
266
+ )
267
+ end
268
+
269
+
224
270
  describe "table-creation ordering" do
225
271
 
226
272
  let( :fake_db_fetcher ) do
@@ -308,7 +354,7 @@ describe Sequel::Plugins::InlineSchema do
308
354
  end
309
355
 
310
356
 
311
- describe "hooks" do
357
+ describe "table hooks" do
312
358
 
313
359
  let( :model_class ) do
314
360
  class_obj = super()
@@ -439,5 +485,137 @@ describe Sequel::Plugins::InlineSchema do
439
485
 
440
486
  end
441
487
 
488
+
489
+ describe "view hooks" do
490
+
491
+ let( :view_class ) do
492
+ class_obj = super()
493
+ class_obj.singleton_class.send( :attr_accessor, :called )
494
+ class_obj.called = {}
495
+ class_obj
496
+ end
497
+
498
+
499
+ it "calls a hook before creating the model's view" do
500
+ def view_class.before_create_view
501
+ self.called[ :before_create_view ] = true
502
+ super
503
+ end
504
+
505
+ view_class.create_view
506
+
507
+ expect( view_class.called ).to include( :before_create_view )
508
+ end
509
+
510
+
511
+ it "allows cancellation of create_view from the before_create_view hook" do
512
+ def view_class.before_create_view
513
+ self.called[ :before_create_view ] = true
514
+ cancel_action
515
+ end
516
+
517
+ expect {
518
+ view_class.create_view
519
+ }.to raise_error( Sequel::HookFailed, /hook failed/i )
520
+ end
521
+
522
+
523
+ it "allows cancellation of create_view with a message from the before_create_view hook" do
524
+ def view_class.before_create_view
525
+ self.called[ :before_create_view ] = true
526
+ cancel_action( "Wait, don't create yet!" )
527
+ end
528
+
529
+ expect {
530
+ view_class.create_view
531
+ }.to raise_error( Sequel::HookFailed, "Wait, don't create yet!" )
532
+ end
533
+
534
+
535
+ it "allows cancellation of create_view with a Symbol from the before_create_view hook" do
536
+ def view_class.before_create_view
537
+ self.called[ :before_create_view ] = true
538
+ cancel_action( :before_create_view )
539
+ end
540
+
541
+ expect {
542
+ view_class.create_view
543
+ }.to raise_error( Sequel::HookFailed, /before_create_view/ )
544
+ end
545
+
546
+
547
+ it "calls a hook after view creation" do
548
+ def view_class.after_create_view
549
+ super
550
+ self.called[ :after_create_view ] = true
551
+ end
552
+
553
+ view_class.create_view
554
+
555
+ expect( view_class.called ).to include( :after_create_view )
556
+ end
557
+
558
+
559
+ it "calls a hook before dropping the model's view" do
560
+ def view_class.before_drop_view
561
+ self.called[ :before_drop_view ] = true
562
+ super
563
+ end
564
+
565
+ view_class.drop_view
566
+
567
+ expect( view_class.called ).to include( :before_drop_view )
568
+ end
569
+
570
+
571
+ it "allows cancellation of drop_view from the before_drop_view hook" do
572
+ def view_class.before_drop_view
573
+ self.called[ :before_drop_view ] = true
574
+ cancel_action
575
+ end
576
+
577
+ expect {
578
+ view_class.drop_view
579
+ }.to raise_error( Sequel::HookFailed, /hook failed/i )
580
+ end
581
+
582
+
583
+ it "allows cancellation of drop_view with a message from the before_drop_view hook" do
584
+ def view_class.before_drop_view
585
+ self.called[ :before_drop_view ] = true
586
+ cancel_action( "Wait, don't drop yet!" )
587
+ end
588
+
589
+ expect {
590
+ view_class.drop_view
591
+ }.to raise_error( Sequel::HookFailed, "Wait, don't drop yet!" )
592
+ end
593
+
594
+
595
+ it "allows cancellation of drop_view with a Symbol from the before_drop_view hook" do
596
+ def view_class.before_drop_view
597
+ self.called[ :before_drop_view ] = true
598
+ cancel_action( :before_drop_view )
599
+ end
600
+
601
+ expect {
602
+ view_class.drop_view
603
+ }.to raise_error( Sequel::HookFailed, /before_drop_view/ )
604
+ end
605
+
606
+
607
+ it "calls a hook after a class's view is dropped" do
608
+ def view_class.after_drop_view
609
+ super
610
+ self.called[ :after_drop_view ] = true
611
+ end
612
+
613
+ view_class.drop_view
614
+
615
+ expect( view_class.called ).to include( :after_drop_view )
616
+ end
617
+
618
+ end
619
+
442
620
  end
443
621
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-inline_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
14
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEwMDkwMDM2NTdaFw0yMDEwMDgwMDM2
15
- NTdaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
13
+ MIID+DCCAmCgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
14
+ REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMDEyMjQyMDU1MjlaFw0yMTEyMjQyMDU1
15
+ MjlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
16
16
  hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
17
17
  L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
18
18
  M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
@@ -21,20 +21,19 @@ cert_chain:
21
21
  vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
22
22
  dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
23
23
  ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
24
- N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
25
- VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
26
- FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
27
- Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAFqsr6o0SvQRgjQVmhbQvExRnCMCoW1yb
28
- FJiN7A5RA2Iy2E61OG1Ul5nGmaDmx/PNB/6JIbIV3B9Uq8aTZx4uOjK7r8vMl1/t
29
- ZfY7r6HejJfXlcO2m6JDMbpdyEVv916LncBkzZRz6vnnNCx+31f15FKddxujpAFd
30
- qpn3JRQY+oj7ZkoccL/IUiDpxQWeS3oOoz9qr2kVTp8R50InZimt79FqCl/1m66W
31
- kdOuf+wM3DDx7Rt4IVNHrhGlyfMr7xjKW1Q3gll+pMN1DT6Ajx/t3JDSEg7BnnEW
32
- r7AciSO6J4ApUdqyG+coLFlGdtgFTgRHv7ihbQtDI7Z/LV7A4Spn1j2PK3j0Omri
33
- kSl1hPVigRytfgdVGiLXzvkkrkgj9EknCaj5UHbac7XvVBrljXj9hsnnqTANaKsg
34
- jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
35
- XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
24
+ N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
25
+ VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
26
+ 9w0BAQsFAAOCAYEAMYegZanJi8zq7QKPT7wqXefX4C88I5JWeBHR3PvvWK0CwyMV
27
+ peyiu5I13w/lYX+HUZjE4qsSpJMJFXWl4WZCOo+AMprOcf0PxfuJpxCej5D4tavf
28
+ vRfhahSw7XJrcZih/3J+/UgoH7R05MJ+8LTcy3HGrB3a0vTafjm8OY7Xpa0LJDoN
29
+ JDqxK321VIHyTibbKeA1hWSE6ljlQDvFbTqiCj3Ulp1jTv3TOlvRl8fqcfhxUJI0
30
+ +5Q82jJODjEN+GaWs0V+NlrbU94cXwS2PH5dXogftB5YYA5Ex8A0ikZ73xns4Hdo
31
+ XxdLdd92F5ovxA23j/rKe/IDwqr6FpDkU3nPXH/Qp0TVGv9zZnVJc/Z6ChkuWj8z
32
+ pW7JAyyiiHZgKKDReDrA2LA7Zs3o/7KA6UtUH0FHf8LYhcK+pfHk6RtjRe65ffw+
33
+ MCh97sQ/Z/MOusb5+QddBmB+k8EicXyGNl4b5L4XpL7fIQu+Y96TB3JEJlShxFD9
34
+ k9FjI4d9EP54gS/4
36
35
  -----END CERTIFICATE-----
37
- date: 2020-02-10 00:00:00.000000000 Z
36
+ date: 2021-11-08 00:00:00.000000000 Z
38
37
  dependencies:
39
38
  - !ruby/object:Gem::Dependency
40
39
  name: sequel
@@ -42,14 +41,14 @@ dependencies:
42
41
  requirements:
43
42
  - - "~>"
44
43
  - !ruby/object:Gem::Version
45
- version: '5.0'
44
+ version: '5.50'
46
45
  type: :runtime
47
46
  prerelease: false
48
47
  version_requirements: !ruby/object:Gem::Requirement
49
48
  requirements:
50
49
  - - "~>"
51
50
  - !ruby/object:Gem::Version
52
- version: '5.0'
51
+ version: '5.50'
53
52
  - !ruby/object:Gem::Dependency
54
53
  name: pg
55
54
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +69,14 @@ dependencies:
70
69
  requirements:
71
70
  - - "~>"
72
71
  - !ruby/object:Gem::Version
73
- version: '0.5'
72
+ version: '0.19'
74
73
  type: :development
75
74
  prerelease: false
76
75
  version_requirements: !ruby/object:Gem::Requirement
77
76
  requirements:
78
77
  - - "~>"
79
78
  - !ruby/object:Gem::Version
80
- version: '0.5'
79
+ version: '0.19'
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: simplecov
83
82
  requirement: !ruby/object:Gem::Requirement
@@ -106,9 +105,8 @@ dependencies:
106
105
  - - "~>"
107
106
  - !ruby/object:Gem::Version
108
107
  version: '0.3'
109
- description: |-
110
- This is a set of plugins for Sequel for declaring a model's table schema and
111
- any migrations in the class itself (similar to the legacy <code>schema</code> plugin).
108
+ description: This is a set of plugins for Sequel for declaring a model&#39;s table
109
+ schema and any migrations in the class itself (similar to the legacy schema plugin).
112
110
  email:
113
111
  - ged@faeriemud.org
114
112
  executables: []
@@ -131,26 +129,30 @@ files:
131
129
  homepage: https://hg.sr.ht/~ged/Sequel-InlineSchema
132
130
  licenses:
133
131
  - BSD-3-Clause
134
- metadata: {}
135
- post_install_message:
132
+ metadata:
133
+ homepage_uri: https://hg.sr.ht/~ged/Sequel-InlineSchema
134
+ documentation_uri: http://deveiate.org/code/sequel-inline_schema
135
+ changelog_uri: http://deveiate.org/code/sequel-inline_schema/History_md.html
136
+ source_uri: https://hg.sr.ht/~ged/Sequel-InlineSchema/browse
137
+ bug_tracker_uri: https://todo.sr.ht/~ged/Sequel-InlineSchema/browse
138
+ post_install_message:
136
139
  rdoc_options: []
137
140
  require_paths:
138
141
  - lib
139
142
  required_ruby_version: !ruby/object:Gem::Requirement
140
143
  requirements:
141
- - - "~>"
144
+ - - ">="
142
145
  - !ruby/object:Gem::Version
143
- version: '2.5'
146
+ version: '0'
144
147
  required_rubygems_version: !ruby/object:Gem::Requirement
145
148
  requirements:
146
149
  - - ">="
147
150
  - !ruby/object:Gem::Version
148
151
  version: '0'
149
152
  requirements: []
150
- rubygems_version: 3.1.2
151
- signing_key:
153
+ rubygems_version: 3.2.22
154
+ signing_key:
152
155
  specification_version: 4
153
- summary: This is a set of plugins for Sequel for declaring a model's table schema
154
- and any migrations in the class itself (similar to the legacy <code>schema</code>
155
- plugin).
156
+ summary: This is a set of plugins for Sequel for declaring a model&#39;s table schema
157
+ and any migrations in the class itself (similar to the legacy schema plugin).
156
158
  test_files: []
metadata.gz.sig CHANGED
Binary file