pg_spec_helper 1.8.5 → 1.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80425037527e477dc7bbb76dbeba05d0a9339f6cf829ee1f9d17338c99bb3e95
4
- data.tar.gz: b7a29ce7a34962211ce7100330754b9d10dc53c0910efd5d987c776b9ca9e819
3
+ metadata.gz: 111948cb669c62fe5e30ff56765ec20856dc53493a87a16304087068dfae8e2e
4
+ data.tar.gz: 56df8e6b579bb74df75be7e5b8e5a62b2db35ef737d084f92706982e5e39a032
5
5
  SHA512:
6
- metadata.gz: a47cc3dc6c0744df722e420af888ffb552b6df4aeb44caeef0e8d5c6a8f25e4ec2218ac6f537caca7d23d891e09631aa8951b57934b5bea070a8535b21d22807
7
- data.tar.gz: d255fd2adaffd140017ff8c8a8961e1251782b6bee1773ebaee283e86be75a5acbd70c5df5aa87a9f236266b34f9cffc331e07e0581958c62d4918e1f47d83f0
6
+ metadata.gz: a03eb171d281e9689c2e4bc1928845a3014e4a1f411f2c6419150bf617ce3fab4d4a6c9e9de8daa1ce885a65daa9e82310bcc92b9b61152eea1b8d1afa6f260a
7
+ data.tar.gz: e2749f90e7d1dab240f19548de538095d378a62b1b98ae6c69be64866a07fa267175ead068be77fbd15f1f70af514a4a7fa63974e9c8aec1bf8b3962dd8c06cd
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.9.0](https://github.com/craigulliott/pg_spec_helper/compare/v1.8.5...v1.9.0) (2023-08-21)
4
+
5
+
6
+ ### Features
7
+
8
+ * added support for enums and extensions ([b22f662](https://github.com/craigulliott/pg_spec_helper/commit/b22f662cad22c1220ac6f4bc029ca534348a4bea))
9
+
3
10
  ## [1.8.5](https://github.com/craigulliott/pg_spec_helper/compare/v1.8.4...v1.8.5) (2023-08-19)
4
11
 
5
12
 
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ class PGSpecHelper
4
+ module Enums
5
+ # Create an enum
6
+ def create_enum schema_name, enum_name, values
7
+ connection.exec(<<~SQL)
8
+ CREATE TYPE #{schema_name}.#{enum_name} as ENUM ('#{values.join("','")}')
9
+ SQL
10
+ end
11
+
12
+ # Drop an enum
13
+ def drop_enum schema_name, enum_name
14
+ connection.exec(<<~SQL)
15
+ DROP TYPE #{schema_name}.#{enum_name}
16
+ SQL
17
+ end
18
+
19
+ # get a list of enum names for the provided schema
20
+ def get_enum_names schema_name
21
+ rows = connection.exec_params(<<~SQL, [schema_name.to_s])
22
+ SELECT
23
+ t.typname AS enum_name
24
+ FROM pg_type t
25
+ JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
26
+ WHERE n.nspname = $1 AND t.typname[0] != '_'
27
+ GROUP BY t.typname
28
+ SQL
29
+ rows.map { |row| row["enum_name"].to_sym }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ class PGSpecHelper
4
+ module Extensions
5
+ # Create an extension
6
+ def create_extension extension_name
7
+ connection.exec(<<~SQL)
8
+ CREATE EXTENSION "#{extension_name}"
9
+ SQL
10
+ end
11
+
12
+ # Drop an extension
13
+ def drop_extension extension_name
14
+ connection.exec(<<~SQL)
15
+ DROP EXTENSION "#{extension_name}"
16
+ SQL
17
+ end
18
+
19
+ # get a list of extension names for the provided table
20
+ def get_extension_names
21
+ rows = connection.exec_params(<<~SQL)
22
+ SELECT
23
+ extname AS name
24
+ FROM pg_extension
25
+ SQL
26
+ rows.map { |row| row["name"].to_sym }
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class PGSpecHelper
4
- VERSION = "1.8.5"
4
+ VERSION = "1.9.0"
5
5
  end
@@ -17,6 +17,8 @@ require "pg_spec_helper/primary_keys"
17
17
  require "pg_spec_helper/indexes"
18
18
  require "pg_spec_helper/triggers"
19
19
  require "pg_spec_helper/functions"
20
+ require "pg_spec_helper/enums"
21
+ require "pg_spec_helper/extensions"
20
22
  require "pg_spec_helper/models"
21
23
  require "pg_spec_helper/materialized_views"
22
24
  require "pg_spec_helper/reset"
@@ -41,6 +43,8 @@ class PGSpecHelper
41
43
  include Indexes
42
44
  include Triggers
43
45
  include Functions
46
+ include Extensions
47
+ include Enums
44
48
  include Models
45
49
  include MaterializedViews
46
50
  include Reset
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_spec_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.5
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Ulliott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-19 00:00:00.000000000 Z
11
+ date: 2023-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -54,6 +54,8 @@ files:
54
54
  - lib/pg_spec_helper/columns.rb
55
55
  - lib/pg_spec_helper/connection.rb
56
56
  - lib/pg_spec_helper/empty_database.rb
57
+ - lib/pg_spec_helper/enums.rb
58
+ - lib/pg_spec_helper/extensions.rb
57
59
  - lib/pg_spec_helper/foreign_keys.rb
58
60
  - lib/pg_spec_helper/functions.rb
59
61
  - lib/pg_spec_helper/ignored_schemas.rb