Module: SqlBeautifier

Defined in:
lib/sql_beautifier.rb,
lib/sql_beautifier/base.rb,
lib/sql_beautifier/join.rb,
lib/sql_beautifier/util.rb,
lib/sql_beautifier/query.rb,
lib/sql_beautifier/types.rb,
lib/sql_beautifier/comment.rb,
lib/sql_beautifier/in_list.rb,
lib/sql_beautifier/scanner.rb,
lib/sql_beautifier/version.rb,
lib/sql_beautifier/condition.rb,
lib/sql_beautifier/constants.rb,
lib/sql_beautifier/cte_query.rb,
lib/sql_beautifier/formatter.rb,
lib/sql_beautifier/tokenizer.rb,
lib/sql_beautifier/drop_table.rb,
lib/sql_beautifier/expression.rb,
lib/sql_beautifier/normalizer.rb,
lib/sql_beautifier/clauses/base.rb,
lib/sql_beautifier/clauses/from.rb,
lib/sql_beautifier/create_table.rb,
lib/sql_beautifier/delete_query.rb,
lib/sql_beautifier/insert_query.rb,
lib/sql_beautifier/update_query.rb,
lib/sql_beautifier/clauses/limit.rb,
lib/sql_beautifier/clauses/where.rb,
lib/sql_beautifier/configuration.rb,
lib/sql_beautifier/dml_rendering.rb,
lib/sql_beautifier/clauses/having.rb,
lib/sql_beautifier/clauses/select.rb,
lib/sql_beautifier/comment_parser.rb,
lib/sql_beautifier/compound_query.rb,
lib/sql_beautifier/cte_definition.rb,
lib/sql_beautifier/table_registry.rb,
lib/sql_beautifier/case_expression.rb,
lib/sql_beautifier/create_table_as.rb,
lib/sql_beautifier/sort_expression.rb,
lib/sql_beautifier/table_reference.rb,
lib/sql_beautifier/clauses/group_by.rb,
lib/sql_beautifier/clauses/order_by.rb,
lib/sql_beautifier/statement_splitter.rb,
lib/sql_beautifier/statement_assembler.rb,
lib/sql_beautifier/create_table_parsing.rb,
lib/sql_beautifier/clauses/condition_clause.rb

Defined Under Namespace

Modules: Clauses, Constants, CreateTableParsing, DmlRendering, InList, StatementSplitter, Tokenizer, Types, Util Classes: Base, CaseExpression, Comment, CommentParser, CompoundQuery, Condition, Configuration, CreateTable, CreateTableAs, CteDefinition, CteQuery, DeleteQuery, DropTable, Error, Expression, Formatter, InsertQuery, Join, Normalizer, Query, Scanner, SortExpression, StatementAssembler, TableReference, TableRegistry, UpdateQuery

Constant Summary collapse

VERSION =
"0.10.7"

Class Method Summary collapse

Class Method Details

.call(value, config = {}) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/sql_beautifier.rb', line 55

def call(value, config = {})
  return unless value.present?

  with_configuration(config) do
    StatementAssembler.call(value)
  end
end

.config_for(key) ⇒ Object



71
72
73
74
75
76
# File 'lib/sql_beautifier.rb', line 71

def config_for(key)
  overrides = Thread.current[:sql_beautifier_config]
  return overrides[key] if overrides&.key?(key)

  configuration.public_send(key)
end

.configuration ⇒ Object



63
64
65
# File 'lib/sql_beautifier.rb', line 63

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



67
68
69
# File 'lib/sql_beautifier.rb', line 67

def configure
  yield configuration
end

.reset_configuration! ⇒ Object



78
79
80
# File 'lib/sql_beautifier.rb', line 78

def reset_configuration!
  @configuration = Configuration.new
end

.validate_configuration_keys!(config) ⇒ Object

Raises:

  • (ArgumentError)


95
96
97
98
# File 'lib/sql_beautifier.rb', line 95

def validate_configuration_keys!(config)
  invalid_keys = config.keys - Configuration::DEFAULTS.keys
  raise ArgumentError, "Unknown configuration keys: #{invalid_keys.join(', ')}" if invalid_keys.any?
end

.with_configuration(config) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/sql_beautifier.rb', line 82

def with_configuration(config)
  raise ArgumentError, "Expected a Hash for configuration overrides, got #{config.class}" unless config.is_a?(Hash)

  return yield if config.empty?

  previous = Thread.current[:sql_beautifier_config]
  validate_configuration_keys!(config)
  Thread.current[:sql_beautifier_config] = config
  yield
ensure
  Thread.current[:sql_beautifier_config] = previous if config.is_a?(Hash) && config.any?
end