Skip to content

Commit b850e9b

Browse files
committed
Squish check constraint expressions
Signed-off-by: Lovro Bikic <lovro.bikic@infinum.hr>
1 parent b0507b1 commit b850e9b

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

lib/annotate/annotate_models.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,9 +372,9 @@ def get_check_constraint_info(klass, options = {})
372372
max_size = check_constraints.map { |check_constraint| check_constraint.name.size }.max + 1
373373
check_constraints.sort_by(&:name).each do |check_constraint|
374374
cc_info << if options[:format_markdown]
375-
sprintf("# * `%s`: `(%s)`\n", check_constraint.name, check_constraint.expression)
375+
sprintf("# * `%s`: `(%s)`\n", check_constraint.name, check_constraint.expression.squish)
376376
else
377-
sprintf("# %-#{max_size}.#{max_size}s (%s)\n", check_constraint.name, check_constraint.expression)
377+
sprintf("# %-#{max_size}.#{max_size}s (%s)\n", check_constraint.name, check_constraint.expression.squish)
378378
end
379379
end
380380

spec/lib/annotate/annotate_models_spec.rb

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,13 @@ def mock_column(name, type, options = {})
783783
let :check_constraints do
784784
[
785785
mock_check_constraint('alive', 'age < 150'),
786-
mock_check_constraint('must_be_adult', 'age >= 18')
786+
mock_check_constraint('must_be_adult', 'age >= 18'),
787+
mock_check_constraint('multiline_test', <<~SQL)
788+
CASE
789+
WHEN (age >= 18) THEN (age <= 21)
790+
ELSE true
791+
END
792+
SQL
787793
]
788794
end
789795

@@ -798,8 +804,9 @@ def mock_column(name, type, options = {})
798804
#
799805
# Check Constraints
800806
#
801-
# alive (age < 150)
802-
# must_be_adult (age >= 18)
807+
# alive (age < 150)
808+
# multiline_test (CASE WHEN (age >= 18) THEN (age <= 21) ELSE true END)
809+
# must_be_adult (age >= 18)
803810
#
804811
EOS
805812
end
@@ -1577,7 +1584,13 @@ def mock_column(name, type, options = {})
15771584
context 'when check constraints are defined' do
15781585
let :check_constraints do
15791586
[
1580-
mock_check_constraint('min_name_length', 'LENGTH(name) > 2')
1587+
mock_check_constraint('min_name_length', 'LENGTH(name) > 2'),
1588+
mock_check_constraint('multiline_test', <<~SQL)
1589+
CASE
1590+
WHEN (age >= 18) THEN (age <= 21)
1591+
ELSE true
1592+
END
1593+
SQL
15811594
]
15821595
end
15831596

@@ -1597,6 +1610,7 @@ def mock_column(name, type, options = {})
15971610
# ### Check Constraints
15981611
#
15991612
# * `min_name_length`: `(LENGTH(name) > 2)`
1613+
# * `multiline_test`: `(CASE WHEN (age >= 18) THEN (age <= 21) ELSE true END)`
16001614
#
16011615
EOS
16021616
end

0 commit comments

Comments
 (0)