sequel-inline_schema 0.3.0 → 0.3.4

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.
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