Sha256: 9c23a5c11d1271d0cb32c1d32741d4fd674d7151af09bbb34b1900be4b8c9f38

Contents?: true

Size: 817 Bytes

Versions: 11

Compression:

Stored size: 817 Bytes

Contents

# frozen_string_literal: true

require 'terminal-table'
require 'ruby-pg-extras'

module RailsPGExtras
  QUERIES = RubyPGExtras::QUERIES

  QUERIES.each do |query_name|
    define_singleton_method query_name do |options = { in_format: :display_table }|
      run_query(
        query_name: query_name,
        in_format: options.fetch(:in_format)
      )
    end
  end

  def self.run_query(query_name:, in_format:)
    result = connection.execute(
      RubyPGExtras.sql_for(query_name: query_name)
    )

    RubyPGExtras.display_result(
      result,
      title: RubyPGExtras.description_for(query_name: query_name),
      in_format: in_format
    )
  end

  def self.connection
    ActiveRecord::Base.connection
  end

  private_class_method :connection
end

require 'rails-pg-extras/railtie' if defined?(Rails)

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rails-pg-extras-1.2.4 lib/rails-pg-extras.rb
rails-pg-extras-1.2.3 lib/rails-pg-extras.rb
rails-pg-extras-1.2.2 lib/rails-pg-extras.rb
rails-pg-extras-1.2.1 lib/rails-pg-extras.rb
rails-pg-extras-1.2.0 lib/rails-pg-extras.rb
rails-pg-extras-1.1.0 lib/rails-pg-extras.rb
rails-pg-extras-1.0.0 lib/rails-pg-extras.rb
rails-pg-extras-0.7.0 lib/rails-pg-extras.rb
rails-pg-extras-0.6.2 lib/rails-pg-extras.rb
rails-pg-extras-0.6.1 lib/rails-pg-extras.rb
rails-pg-extras-0.6.0 lib/rails-pg-extras.rb