Sha256: 60ab66cd9ca6264e288655142f71c03e92a55db8bd76d1f034e644e03fdba179
Contents?: true
Size: 934 Bytes
Versions: 1
Compression:
Stored size: 934 Bytes
Contents
# frozen_string_literal: true require "anbt-sql-formatter/formatter" module Whoop module Formatters module SqlFormatter # Format the SQL query # @param [String] sql The SQL query # @param [Boolean] colorize - colorize the SQL query (default: false) # @param [Boolean] explain - also run `EXPLAIN` on the query (default: false) # @return [String] The formatted SQL query def self.format(sql, colorize: false, explain: false) pretty_sql = generate_pretty_sql(sql) return pretty_sql unless colorize formatter = Rouge::Formatters::TerminalTruecolor.new lexer = Rouge::Lexers::SQL.new formatter.format(lexer.lex(pretty_sql)) end def self.generate_pretty_sql(sql) rule = AnbtSql::Rule.new rule.indent_string = " " formatter = AnbtSql::Formatter.new(rule) formatter.format(sql.dup) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
whoop-1.0.0 | lib/whoop/formatters/sql_formatter.rb |