Module: ActiveRecord::Explain

Defined in:
lib/active_record_json_explain/activerecord/monkey_patches/json_explain.rb

Instance Method Summary collapse

Instance Method Details

#exec_explain(queries, json: false) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/active_record_json_explain/activerecord/monkey_patches/json_explain.rb', line 22

def exec_explain(queries, json: false) # NOTE: add arg json
  str = queries.map do |sql, binds|
    msg = +"EXPLAIN for: #{sql}"
    unless binds.empty?
      msg << " "
      msg << binds.map { |attr| render_bind(attr) }.inspect
    end
    msg << "\n"
    msg << connection.explain(sql, binds, json: json) # NOTE: add arg json
  end.join("\n")

  # Overriding inspect to be more human readable, especially in the console.
  def str.inspect
    self
  end

  str
end