Class: SqlBeautifier::Clauses::ConditionClause

Inherits:
Base
  • Object
show all
Defined in:
lib/sql_beautifier/clauses/condition_clause.rb

Direct Known Subclasses

Having, Where

Instance Method Summary collapse

Methods inherited from Base

call, #initialize

Constructor Details

This class inherits a constructor from SqlBeautifier::Clauses::Base

Instance Method Details

#call ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/sql_beautifier/clauses/condition_clause.rb', line 6

def call
  keyword_width = SqlBeautifier.config_for(:keyword_column_width)
  formatted_value = CaseExpression.format_in_text(@value, base_indent: keyword_width)
  unwrapped_value = strip_wrapping_parentheses(formatted_value)
  unwrapped_value = Condition.unwrap_not_prefix_parens(unwrapped_value)

  unless multiple_conditions?(unwrapped_value)
    formatted_leaf = InList.format_in_text(unwrapped_value, base_indent: keyword_width)
    return "#{keyword_prefix}#{formatted_leaf}"
  end

  formatted_conditions = Condition.format(unwrapped_value, indent_width: keyword_width)
  formatted_conditions.sub(continuation_indent, keyword_prefix)
end