Sha256: b4b316b5304b1fae62069523cbfc41fd5287b4a3207bee918a827f27d6bba7af

Contents?: true

Size: 649 Bytes

Versions: 3

Compression:

Stored size: 649 Bytes

Contents

module RailsDb
  class SqlQuery
    include Connection

    attr_reader :query, :data, :explain

    def initialize(query)
      @query = query
    end

    def valid?
      query.present?
    end

    def load_explain
      @explain ||= SqlExplain.new(self).load_data
    end

    def load_data
      @data    ||= SqlQueryData.new(self).load_data
    end

    def execute
      if valid?
        load_data
        load_explain
        History.add(query)
      end
      self
    end

    def to_csv
      CSV.generate do |csv|
        csv << data.columns
        data.rows.each do |row|
          csv << row
        end
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails_db-0.3 lib/rails_db/sql_query.rb
rails_db-0.2.1 lib/rails_db/sql_query.rb
rails_db-0.2 lib/rails_db/sql_query.rb