module ExecuteSql::ConsoleMethods

Public Instance Methods

execute_sql(sql, mode: :print, klass: HashWithIndifferentAccess) click to toggle source
# File lib/execute_sql.rb, line 25
def execute_sql(sql, mode: :print, klass: HashWithIndifferentAccess)
  sql_query = ExecuteSql::SqlQuery.new("#{sql}".strip).execute
  rows = sql_query.data.rows
  cols = sql_query.data.columns
  case mode.to_s
  when 'print'
    puts Terminal::Table.new(rows: rows, headings: cols)
  when 'array'
    result = rows.map do |row|
      record = klass.new
      cols.each_with_index.map do |col, index|
        record[col] = row[index]
      end
      record
    end
    result
  when 'raw'
    rows
  when 'single'
    rows.flatten[0]
  when 'none'
    nil
  else
    []
  end
end
run(sql, *args) click to toggle source
# File lib/execute_sql.rb, line 52
def run(sql, *args)
  execute_sql(sql, *args)
end