pg_trunk 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -1
  3. data/README.md +1 -1
  4. data/lib/pg_trunk/core/railtie/custom_types.rb +5 -6
  5. data/lib/pg_trunk/operations/check_constraints/add_check_constraint.rb +18 -12
  6. data/lib/pg_trunk/operations/check_constraints/drop_check_constraint.rb +18 -10
  7. data/lib/pg_trunk/operations/check_constraints/rename_check_constraint.rb +12 -6
  8. data/lib/pg_trunk/operations/check_constraints/validate_check_constraint.rb +6 -2
  9. data/lib/pg_trunk/operations/composite_types/change_composite_type.rb +24 -18
  10. data/lib/pg_trunk/operations/composite_types/create_composite_type.rb +10 -9
  11. data/lib/pg_trunk/operations/composite_types/drop_composite_type.rb +25 -23
  12. data/lib/pg_trunk/operations/composite_types/rename_composite_type.rb +3 -3
  13. data/lib/pg_trunk/operations/domains/change_domain.rb +27 -24
  14. data/lib/pg_trunk/operations/domains/create_domain.rb +11 -11
  15. data/lib/pg_trunk/operations/domains/drop_domain.rb +19 -13
  16. data/lib/pg_trunk/operations/domains/rename_domain.rb +3 -1
  17. data/lib/pg_trunk/operations/enums/change_enum.rb +13 -11
  18. data/lib/pg_trunk/operations/enums/create_enum.rb +9 -9
  19. data/lib/pg_trunk/operations/enums/drop_enum.rb +18 -10
  20. data/lib/pg_trunk/operations/enums/rename_enum.rb +3 -1
  21. data/lib/pg_trunk/operations/foreign_keys/add_foreign_key.rb +23 -17
  22. data/lib/pg_trunk/operations/foreign_keys/drop_foreign_key.rb +17 -11
  23. data/lib/pg_trunk/operations/foreign_keys/rename_foreign_key.rb +11 -5
  24. data/lib/pg_trunk/operations/functions/change_function.rb +24 -21
  25. data/lib/pg_trunk/operations/functions/create_function.rb +34 -26
  26. data/lib/pg_trunk/operations/functions/drop_function.rb +28 -18
  27. data/lib/pg_trunk/operations/functions/rename_function.rb +6 -2
  28. data/lib/pg_trunk/operations/materialized_views/change_materialized_view.rb +24 -17
  29. data/lib/pg_trunk/operations/materialized_views/create_materialized_view.rb +37 -29
  30. data/lib/pg_trunk/operations/materialized_views/drop_materialized_view.rb +20 -10
  31. data/lib/pg_trunk/operations/materialized_views/refresh_materialized_view.rb +3 -1
  32. data/lib/pg_trunk/operations/materialized_views/rename_materialized_view.rb +8 -4
  33. data/lib/pg_trunk/operations/procedures/change_procedure.rb +22 -18
  34. data/lib/pg_trunk/operations/procedures/create_procedure.rb +26 -18
  35. data/lib/pg_trunk/operations/procedures/drop_procedure.rb +18 -10
  36. data/lib/pg_trunk/operations/procedures/rename_procedure.rb +6 -2
  37. data/lib/pg_trunk/operations/statistics/create_statistics.rb +32 -24
  38. data/lib/pg_trunk/operations/statistics/drop_statistics.rb +26 -18
  39. data/lib/pg_trunk/operations/statistics/rename_statistics.rb +3 -1
  40. data/lib/pg_trunk/operations/triggers/change_trigger.rb +9 -7
  41. data/lib/pg_trunk/operations/triggers/create_trigger.rb +26 -20
  42. data/lib/pg_trunk/operations/triggers/drop_trigger.rb +16 -10
  43. data/lib/pg_trunk/operations/views/change_view.rb +20 -14
  44. data/lib/pg_trunk/operations/views/create_view.rb +18 -10
  45. data/lib/pg_trunk/operations/views/drop_view.rb +19 -9
  46. data/lib/pg_trunk/operations/views/rename_view.rb +6 -2
  47. data/lib/pg_trunk/version.rb +1 -1
  48. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27719617c7b0d1c1fbd927d07012f218a48a6a02183334766f4defde22c3a7eb
4
- data.tar.gz: 8c1d90a98ea419a38a1f0971c5d122432488e7677872c79f637e3d99c93e9a85
3
+ metadata.gz: 7e7e7834f9f7da413371ea11262161da230fab549707bad615f3d5ab4ad9b19c
4
+ data.tar.gz: 14084be1a484bd0a7201f33d680546a1bba2ff8e5b34bc59aa3f3597f5d48c87
5
5
  SHA512:
6
- metadata.gz: 787ec0229602b9abf5d31e684175a44dd5dfb3c4ccb449dc3145eee365bed8e0ac0c7c8f18def6251b0fa2c51ea550cf2ae204b22a63bd1c347c03938376cf11
7
- data.tar.gz: 46bf35d7204f8497622168743cbd1ade98d63802d33f5634109df45b2e25d34f070922c2d00dd45926e033f066f9b0fe412bbe7257a1af14a8f38eb9abd6c459
6
+ metadata.gz: 056da9038cee7e60551a7b1ddb3cf990fe6a0eaeee95b48b95b38babd777ec97e9cce2564e3c1e1dbcd13a30072360beb87a0f20f48c152b2080997e0e489cd6
7
+ data.tar.gz: c83b7f738860de782e7cf407cfdbcd71fbfe3e3c5f995aa3a4fcdc7643e9a000f69eeca02b4c025e4219f5ecf19fb24781704e4fc8524944c7e11a9bc18f355e
data/CHANGELOG.md CHANGED
@@ -4,9 +4,13 @@ The noteworthy changes for each PGTrunk version are included here.
4
4
  The format is based on [Keep a Changelog] and this project adheres to [Semantic Versioning].
5
5
  For a complete changelog, see the [commits] for each version via the version links.
6
6
 
7
+ ## [0.1.2] (2022-01-17)
8
+
9
+ * Fix registry of custom types (nepalez)
10
+
7
11
  ## [0.1.1] (2022-01-16)
8
12
 
9
- * Fix inline documentation for methods added to ActiveRecord::Migration
13
+ * Fix inline documentation for methods added to ActiveRecord::Migration (nepalez)
10
14
 
11
15
  ## [0.1.0] (2022-01-14)
12
16
 
data/README.md CHANGED
@@ -88,7 +88,7 @@ The gem is targeted to support PostgreSQL-specific features, that's why we won't
88
88
  ## Documentation
89
89
 
90
90
  The gem provides a lot of additional methods to create, rename, change a drop various objects.
91
- You can find the necessary details in the gem's [wiki].
91
+ You can find the necessary details [here](https://rubydoc.info/gems/pg_trunk/ActiveRecord/Migration).
92
92
 
93
93
  ## Installation
94
94
 
@@ -12,22 +12,21 @@ module PGTrunk
12
12
  end
13
13
 
14
14
  def enable_pg_trunk_types
15
- execute(<<~SQL).each { |item| enable_pg_trunk_type item["name"] }
15
+ execute(<<~SQL).each { |item| enable_pg_trunk_type(**item.symbolize_keys) }
16
16
  SELECT (
17
17
  CASE
18
18
  WHEN t.typnamespace = 'public'::regnamespace THEN t.typname
19
19
  ELSE t.typnamespace::regnamespace || '.' || t.typname
20
20
  END
21
- ) AS name
21
+ ) AS name, t.oid
22
22
  FROM pg_trunk e JOIN pg_type t ON t.oid = e.oid
23
23
  WHERE e.classid = 'pg_type'::regclass
24
24
  SQL
25
25
  end
26
26
 
27
- def enable_pg_trunk_type(type)
28
- type = type.to_s
29
- CustomTypes.known << type
30
- type_map.register_type(type, TYPE.new(type)) unless type_map.key?(type)
27
+ def enable_pg_trunk_type(oid:, name:)
28
+ CustomTypes.known << name
29
+ type_map.register_type(oid.to_i, TYPE.new(name.to_s))
31
30
  end
32
31
 
33
32
  def valid_type?(type)
@@ -15,24 +15,30 @@
15
15
  # #
16
16
  # # The name of the new constraint can be set explicitly
17
17
  # #
18
- # # add_check_constraint :users, "length(phone) > 10",
19
- # # name: "phone_is_long_enough",
20
- # # inherit: false,
21
- # # comment: "Phone is 10+ chars long"
18
+ # # ```ruby
19
+ # # add_check_constraint :users, "length(phone) > 10",
20
+ # # name: "phone_is_long_enough",
21
+ # # inherit: false,
22
+ # # comment: "Phone is 10+ chars long"
23
+ # # ```
22
24
  # #
23
25
  # # The name can also be skipped (it will be generated by default):
24
26
  # #
25
- # # add_check_constraint :users, "length(phone) > 1"
27
+ # # ```ruby
28
+ # # add_check_constraint :users, "length(phone) > 1"
29
+ # # ```
26
30
  # #
27
31
  # # The block syntax can be used for any argument as usual:
28
32
  # #
29
- # # add_check_constraint do |c|
30
- # # c.table "users"
31
- # # c.expression "length(phone) > 10"
32
- # # c.name "phone_is_long_enough"
33
- # # c.inherit false
34
- # # c.comment "Phone is 10+ chars long"
35
- # # end
33
+ # # ```ruby
34
+ # # add_check_constraint do |c|
35
+ # # c.table "users"
36
+ # # c.expression "length(phone) > 10"
37
+ # # c.name "phone_is_long_enough"
38
+ # # c.inherit false
39
+ # # c.comment "Phone is 10+ chars long"
40
+ # # end
41
+ # # ```
36
42
  # #
37
43
  # # The operation is always reversible.
38
44
  # def add_check_constraint(table, expression = nil, **options, &block); end
@@ -18,27 +18,35 @@
18
18
  # #
19
19
  # # The constraint can be identified by the table and explicit name
20
20
  # #
21
- # # drop_check_constraint :users, name: "phone_is_long_enough"
21
+ # # ```ruby
22
+ # # drop_check_constraint :users, name: "phone_is_long_enough"
23
+ # # ```
22
24
  # #
23
25
  # # Alternatively the name can be got from the expression.
24
26
  # # Be careful! the expression must have exactly the same form
25
27
  # # as stored in the database:
26
28
  # #
27
- # # drop_check_constraint :users, "length((phone::text) > 10)"
29
+ # # ```ruby
30
+ # # drop_check_constraint :users, "length((phone::text) > 10)"
31
+ # # ```
28
32
  # #
29
33
  # # To made operation reversible the expression must be provided:
30
34
  # #
31
- # # drop_check_constraint "users" do |c|
32
- # # c.expression "length((phone::text) > 10)"
33
- # # c.inherit false
34
- # # c.comment "The phone is 10+ chars long"
35
- # # end
35
+ # # ```ruby
36
+ # # drop_check_constraint "users" do |c|
37
+ # # c.expression "length((phone::text) > 10)"
38
+ # # c.inherit false
39
+ # # c.comment "The phone is 10+ chars long"
40
+ # # end
41
+ # # ```
36
42
  # #
37
43
  # # The operation can be called with `if_exists` option.
38
44
  # #
39
- # # drop_check_constraint :users,
40
- # # name: "phone_is_long_enough",
41
- # # if_exists: true
45
+ # # ```ruby
46
+ # # drop_check_constraint :users,
47
+ # # name: "phone_is_long_enough",
48
+ # # if_exists: true
49
+ # # ```
42
50
  # #
43
51
  # # In this case the operation is always irreversible due to
44
52
  # # uncertainty of the previous state of the database.
@@ -14,21 +14,27 @@
14
14
  # #
15
15
  # # A constraint can be identified by the table and explicit name
16
16
  # #
17
- # # rename_check_constraint :users,
18
- # # name: "phone_is_long_enough",
19
- # # to: "phones.long_enough"
17
+ # # ```ruby
18
+ # # rename_check_constraint :users,
19
+ # # name: "phone_is_long_enough",
20
+ # # to: "phones.long_enough"
21
+ # # ```
20
22
  # #
21
23
  # # Alternatively the name can be got from the expression.
22
24
  # # Be careful! the expression must have exactly the same form
23
25
  # # as stored in the database:
24
26
  # #
25
- # # rename_check_constraint :users, "length((phone::text) > 10)",
26
- # # to: "long_enough"
27
+ # # ```ruby
28
+ # # rename_check_constraint :users, "length((phone::text) > 10)",
29
+ # # to: "long_enough"
30
+ # # ```
27
31
  # #
28
32
  # # The name can be reset to auto-generated when
29
33
  # # the `:to` option is missed or blank:
30
34
  # #
31
- # # rename_check_constraint :users, "phone_is_long_enough"
35
+ # # ```ruby
36
+ # # rename_check_constraint :users, "phone_is_long_enough"
37
+ # # ```
32
38
  # #
33
39
  # # The operation is always reversible.
34
40
  # def rename_check_constraint(table, expression = nil, **options, &block); end
@@ -13,13 +13,17 @@
13
13
  # #
14
14
  # # The invalid constraint can be identified by table and explicit name:
15
15
  # #
16
- # # validate_check_constraint :users, name: "phone_is_long_enough"
16
+ # # ```ruby
17
+ # # validate_check_constraint :users, name: "phone_is_long_enough"
18
+ # # ```
17
19
  # #
18
20
  # # Alternatively it can be specified by expression. In this case
19
21
  # # you must ensure the expression has the same form as it is stored
20
22
  # # in the database (after parsing the source).
21
23
  # #
22
- # # validate_check_constraint :users, "length((phone::text) > 10)"
24
+ # # ```ruby
25
+ # # validate_check_constraint :users, "length((phone::text) > 10)"
26
+ # # ```
23
27
  # #
24
28
  # # Notice that it is invertible but the inverted operation does nothing.
25
29
  # def validate_check_constraint(table, expression = nil, **options, &block); end
@@ -16,30 +16,36 @@
16
16
  # #
17
17
  # # Providing a type "paint.colored_point":
18
18
  # #
19
- # # create_composite_type "paint.colored_point" do |t|
20
- # # t.column "color", "text", collation: "en_US"
21
- # # t.column "x", "integer"
22
- # # t.column "z", "integer"
23
- # # end
19
+ # # ```ruby
20
+ # # create_composite_type "paint.colored_point" do |t|
21
+ # # t.column "color", "text", collation: "en_US"
22
+ # # t.column "x", "integer"
23
+ # # t.column "z", "integer"
24
+ # # end
25
+ # # ```
24
26
  # #
25
27
  # # After the following change:
26
28
  # #
27
- # # change_composite_type "paint.colored_point" do |t|
28
- # # t.change_column "color", "text", collation: "ru_RU", from_collation: "en_US"
29
- # # t.change_column "x", "bigint", from_type: "integer"
30
- # # t.drop_column "z", "integer"
31
- # # t.add_column "Y", "bigint"
32
- # # t.rename_column "x", to: "X"
33
- # # t.comment "2D point with a color", from: "2D point"
34
- # # end
29
+ # # ```ruby
30
+ # # change_composite_type "paint.colored_point" do |t|
31
+ # # t.change_column "color", "text", collation: "ru_RU", from_collation: "en_US"
32
+ # # t.change_column "x", "bigint", from_type: "integer"
33
+ # # t.drop_column "z", "integer"
34
+ # # t.add_column "Y", "bigint"
35
+ # # t.rename_column "x", to: "X"
36
+ # # t.comment "2D point with a color", from: "2D point"
37
+ # # end
38
+ # # ```
35
39
  # #
36
40
  # # The definition became:
37
41
  # #
38
- # # create_composite_type "paint.colored_point" do |t|
39
- # # t.column "color", "text", collation: "ru_RU"
40
- # # t.column "X", "bigint"
41
- # # t.column "Y", "integer"
42
- # # end
42
+ # # ```ruby
43
+ # # create_composite_type "paint.colored_point" do |t|
44
+ # # t.column "color", "text", collation: "ru_RU"
45
+ # # t.column "X", "bigint"
46
+ # # t.column "Y", "integer"
47
+ # # end
48
+ # # ```
43
49
  # #
44
50
  # # Notice, that all renames will be done AFTER other changes,
45
51
  # # so in `change_column` you should use the old names.
@@ -10,15 +10,16 @@
10
10
  # # @yieldparam Object receiver of methods specifying the type
11
11
  # # @return [void]
12
12
  # #
13
- # # @example
14
- # # create_composite_type "paint.colored_point" do |d|
15
- # # d.column "x", "integer"
16
- # # d.column "y", "integer"
17
- # # d.column "color", "text", collation: "en_US"
18
- # # d.comment <<~COMMENT
19
- # # 2D point with color
20
- # # COMMENT
21
- # # end
13
+ # # ```ruby
14
+ # # create_composite_type "paint.colored_point" do |d|
15
+ # # d.column "x", "integer"
16
+ # # d.column "y", "integer"
17
+ # # d.column "color", "text", collation: "en_US"
18
+ # # d.comment <<~COMMENT
19
+ # # 2D point with color
20
+ # # COMMENT
21
+ # # end
22
+ # # ```
22
23
  # #
23
24
  # # It is always reversible.
24
25
  # def create_composite_type(name, **options, &block); end
@@ -12,39 +12,41 @@
12
12
  # # @yieldparam Object receiver of methods specifying the type
13
13
  # # @return [void]
14
14
  # #
15
- # # The operation drops a composite_type type identified by its
16
- # # qualified name (it can include a schema).
15
+ # # The operation drops a composite_type type identified by its qualified name (it can include a schema).
17
16
  # #
18
- # # For inversion use the same options as in the
19
- # # `create_composite_type` operation.
17
+ # # For inversion use the same options as in the `create_composite_type` operation.
20
18
  # #
21
- # # drop_composite_type "paint.colored_point" do |d|
22
- # # d.column "x", "integer"
23
- # # d.column "y", "integer"
24
- # # d.column "color", "text", collation: "en_US"
25
- # # d.comment <<~COMMENT
26
- # # 2D point with color
27
- # # COMMENT
28
- # # end
19
+ # # ```ruby
20
+ # # drop_composite_type "paint.colored_point" do |d|
21
+ # # d.column "x", "integer"
22
+ # # d.column "y", "integer"
23
+ # # d.column "color", "text", collation: "en_US"
24
+ # # d.comment <<~COMMENT
25
+ # # 2D point with color
26
+ # # COMMENT
27
+ # # end
28
+ # # ```
29
29
  # #
30
30
  # # Notice, that the composite type creation can use no attributes.
31
- # # That's why dropping it is always reversible; though the reversion
32
- # # would provide a type without columns:
31
+ # # That's why dropping it is always reversible; though the reversion provides a type without columns:
33
32
  # #
34
- # # drop_composite_type "paint.colored_point"
33
+ # # ```ruby
34
+ # # drop_composite_type "paint.colored_point"
35
+ # # ```
35
36
  # #
36
- # # With the `force: :cascade` option the operation would remove
37
- # # all objects using the type.
37
+ # # With the `force: :cascade` option the operation removes all objects using the type.
38
38
  # #
39
- # # drop_composite_type "paint.colored_point", force: :cascade
39
+ # # ```ruby
40
+ # # drop_composite_type "paint.colored_point", force: :cascade
41
+ # # ```
40
42
  # #
41
- # # With the `if_exists: true` option the operation won't fail
42
- # # even when the view was absent in the database.
43
+ # # With the `if_exists: true` option the operation won't fail even when the view was absent.
43
44
  # #
44
- # # drop_composite_type "paint.colored_point", if_exists: true
45
+ # # ```ruby
46
+ # # drop_composite_type "paint.colored_point", if_exists: true
47
+ # # ```
45
48
  # #
46
- # # Both options make a migration irreversible due to uncertainty
47
- # # of the previous state of the database.
49
+ # # Both options make a migration irreversible due to uncertainty of the previous state of the database.
48
50
  # def drop_composite_type(name, **options, &block); end
49
51
  # end
50
52
  module PGTrunk::Operations::CompositeTypes
@@ -8,9 +8,9 @@
8
8
  # # @option [#to_s] :to (nil) The new qualified name for the type
9
9
  # # @return [void]
10
10
  # #
11
- # # @example
12
- # #
13
- # # rename_composite_type "point", to: "paint.colored_point"
11
+ # # ```ruby
12
+ # # rename_composite_type "point", to: "paint.colored_point"
13
+ # # ```
14
14
  # #
15
15
  # # The operation is always reversible.
16
16
  # def rename_composite_type(name, to:); end
@@ -13,22 +13,24 @@
13
13
  # # modify the default_sql value, or the description of the domain type.
14
14
  # # Neither the underlying type nor the collation can be changed.
15
15
  # #
16
- # # change_domain "dict.us_postal_code" do |d|
17
- # # d.null true # from: false
18
- # # # check is added for inversion
19
- # # d.drop_constraint "postal_code_length", check: <<~SQL
20
- # # length(VALUE) > 3 AND length(VALUE) < 6
21
- # # SQL
22
- # # d.add_constraint <<~SQL, name: "postal_code_valid"
23
- # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
24
- # # SQL
25
- # # d.default_sql "'00000'::text", from: "'0000'::text"
26
- # # d.comment <<~COMMENT, from: <<~COMMENT
27
- # # Supported currencies
28
- # # COMMENT
29
- # # Currencies
30
- # # COMMENT
31
- # # end
16
+ # # ```ruby
17
+ # # change_domain "dict.us_postal_code" do |d|
18
+ # # d.null true # from: false
19
+ # # # check is added for inversion
20
+ # # d.drop_constraint "postal_code_length", check: <<~SQL
21
+ # # length(VALUE) > 3 AND length(VALUE) < 6
22
+ # # SQL
23
+ # # d.add_constraint <<~SQL, name: "postal_code_valid"
24
+ # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
25
+ # # SQL
26
+ # # d.default_sql "'00000'::text", from: "'0000'::text"
27
+ # # d.comment <<~COMMENT, from: <<~COMMENT
28
+ # # Supported currencies
29
+ # # COMMENT
30
+ # # Currencies
31
+ # # COMMENT
32
+ # # end
33
+ # # ```
32
34
  # #
33
35
  # # Use blank string (not a `nil` value) to reset either a default_sql,
34
36
  # # or the comment. `nil`-s here will be ignored.
@@ -41,14 +43,15 @@
41
43
  # # has `if_exists: true` or `force: :cascade` option -- due to
42
44
  # # uncertainty of the previous state of the database:
43
45
  # #
44
- # # # Irreversible change
45
- # # change_domain "dict.us_postal_code", force: :cascade do |d|
46
- # # d.drop_constraint "postal_code_valid" # missed `:check` option
47
- # # d.drop_constraint "postal_code_length"
48
- # # d.drop_constraint "postal_code_format", if_exists: true
49
- # # d.default_sql "'0000'::text" # missed `:from` option
50
- # # d.comment "New comment" # missed `:from` option
51
- # # end
46
+ # # ```ruby
47
+ # # change_domain "dict.us_postal_code", force: :cascade do |d|
48
+ # # d.drop_constraint "postal_code_valid" # missed `:check` option
49
+ # # d.drop_constraint "postal_code_length"
50
+ # # d.drop_constraint "postal_code_format", if_exists: true
51
+ # # d.default_sql "'0000'::text" # missed `:from` option
52
+ # # d.comment "New comment" # missed `:from` option
53
+ # # end
54
+ # # ```
52
55
  # def change_domain(name, &block); end
53
56
  # end
54
57
  module PGTrunk::Operations::Domains
@@ -14,17 +14,17 @@
14
14
  # # @yieldparam Object receiver of methods specifying the type
15
15
  # # @return [void]
16
16
  # #
17
- # # @example:
18
- # #
19
- # # create_domain "dict.us_postal_code", as: "text" do |d|
20
- # # d.collation "en_US"
21
- # # d.default_sql "'0000'::text"
22
- # # d.null false
23
- # # d.constraint <<~SQL, name: "code_valid"
24
- # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
25
- # # SQL
26
- # # d.comment "US postal code"
27
- # # end
17
+ # # ```ruby
18
+ # # create_domain "dict.us_postal_code", as: "text" do |d|
19
+ # # d.collation "en_US"
20
+ # # d.default_sql "'0000'::text"
21
+ # # d.null false
22
+ # # d.constraint <<~SQL, name: "code_valid"
23
+ # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
24
+ # # SQL
25
+ # # d.comment "US postal code"
26
+ # # end
27
+ # # ```
28
28
  # #
29
29
  # # It is always reversible.
30
30
  # def create_domain(name, **options, &block); end
@@ -15,31 +15,37 @@
15
15
  # # @yieldparam Object receiver of methods specifying the type
16
16
  # # @return [void]
17
17
  # #
18
- # # @example:
19
- # #
20
- # # drop_domain "dict.us_postal_code"
18
+ # # ```ruby
19
+ # # drop_domain "dict.us_postal_code"
20
+ # # ```
21
21
  # #
22
22
  # # To make the operation invertible, use the same options
23
23
  # # as in the `create_domain` operation.
24
24
  # #
25
- # # drop_domain "dict.us_postal_code", as: "string" do |d|
26
- # # d.constraint <<~SQL, name: "code_valid"
27
- # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
28
- # # SQL
29
- # # d.comment <<~COMMENT
30
- # # US postal code
31
- # # COMMENT
32
- # # end
25
+ # # ```ruby
26
+ # # drop_domain "dict.us_postal_code", as: "string" do |d|
27
+ # # d.constraint <<~SQL, name: "code_valid"
28
+ # # VALUE ~ '^\d{5}$' OR VALUE ~ '^\d{5}-\d{4}$'
29
+ # # SQL
30
+ # # d.comment <<~COMMENT
31
+ # # US postal code
32
+ # # COMMENT
33
+ # # end
34
+ # # ```
33
35
  # #
34
36
  # # With the `force: :cascade` option the operation would remove
35
37
  # # all the objects that use the type.
36
38
  # #
37
- # # drop_domain "dict.us_postal_code", force: :cascade
39
+ # # ```ruby
40
+ # # drop_domain "dict.us_postal_code", force: :cascade
41
+ # # ```
38
42
  # #
39
43
  # # With the `if_exists: true` option the operation won't fail
40
44
  # # even when the view was absent in the database.
41
45
  # #
42
- # # drop_domain "dict.us_postal_code", if_exists: true
46
+ # # ```ruby
47
+ # # drop_domain "dict.us_postal_code", if_exists: true
48
+ # # ```
43
49
  # #
44
50
  # # Both options make a migration irreversible due to uncertainty
45
51
  # # of the previous state of the database.
@@ -10,7 +10,9 @@
10
10
  # #
11
11
  # # A domain type can be both renamed and moved to another schema.
12
12
  # #
13
- # # rename_domain "us_code", to: "dict.us_postal_code"
13
+ # # ```ruby
14
+ # # rename_domain "us_code", to: "dict.us_postal_code"
15
+ # # ```
14
16
  # #
15
17
  # # The operation is always reversible.
16
18
  # def rename_domain(name, to:); end
@@ -12,17 +12,19 @@
12
12
  # # The operation can be used to rename or add values to the
13
13
  # # enumerated type. The commend can be changed as well.
14
14
  # #
15
- # # change_enum "currencies" do |e|
16
- # # e.add_value "EUR", after: "BTC"
17
- # # e.add_value "GBP", before: "usd"
18
- # # e.add_value "JPY" # to the end of the list
19
- # # e.rename_value "usd", to: "USD"
20
- # # e.comment <<~COMMENT, from: <<~COMMENT
21
- # # Supported currencies
22
- # # COMMENT
23
- # # Currencies
24
- # # COMMENT
25
- # # end
15
+ # # ```ruby
16
+ # # change_enum "currencies" do |e|
17
+ # # e.add_value "EUR", after: "BTC"
18
+ # # e.add_value "GBP", before: "usd"
19
+ # # e.add_value "JPY" # to the end of the list
20
+ # # e.rename_value "usd", to: "USD"
21
+ # # e.comment <<~COMMENT, from: <<~COMMENT
22
+ # # Supported currencies
23
+ # # COMMENT
24
+ # # Currencies
25
+ # # COMMENT
26
+ # # end
27
+ # # ```
26
28
  # #
27
29
  # # Please, keep in mind that all values will be added before
28
30
  # # the first rename. That's why you should use old values
@@ -11,15 +11,15 @@
11
11
  # # @yieldparam Object receiver of methods specifying the type
12
12
  # # @return [void]
13
13
  # #
14
- # # @example
15
- # #
16
- # # create_enum "finances.currency" do |e|
17
- # # e.values "BTC", "EUR", "GBP", "USD"
18
- # # e.value "JPY" # the alternative way to add a value to the tail
19
- # # e.comment <<~COMMENT
20
- # # The list of values for supported currencies.
21
- # # COMMENT
22
- # # end
14
+ # # ```ruby
15
+ # # create_enum "finances.currency" do |e|
16
+ # # e.values "BTC", "EUR", "GBP", "USD"
17
+ # # e.value "JPY" # the alternative way to add a value to the tail
18
+ # # e.comment <<~COMMENT
19
+ # # The list of values for supported currencies.
20
+ # # COMMENT
21
+ # # end
22
+ # # ```
23
23
  # #
24
24
  # # It is always reversible.
25
25
  # def create_enum(name, **options, &block); end