module Terrazine

Constants

VERSION

Public Class Methods

build_sql(structure, options = {}) click to toggle source
# File lib/terrazine.rb, line 31
def self.build_sql(structure, options = {})
  case structure
  when Hash # , Array
    new_constructor(structure).build_sql options
  when Constructor
    structure.build_sql options
  when Array
    # TODO!!!!!
    if structure.first.is_a?(String) && structure.second.is_a?(Array)
      structure
    else
      new_constructor(structure).build_sql options
    end
  when String
    structure
  else
    raise # TODO: Errors
  end
end
config(params) click to toggle source
# File lib/terrazine.rb, line 15
def self.config(params)
  Config.set params
end
connection() click to toggle source
# File lib/terrazine.rb, line 11
def self.connection
  Config.connection
end
execute_request(connection, sql) click to toggle source

TODO: relocate

# File lib/terrazine.rb, line 59
def self.execute_request(connection, sql)
  if sql.is_a?(Array)
    connection.exec_params(sql.first, sql.second)
  else
    connection.exec(sql)
  end
end
new_constructor(structure = {}) click to toggle source
# File lib/terrazine.rb, line 27
def self.new_constructor(structure = {})
  Constructor.new structure
end
send_request(structure, params = {}) click to toggle source
# File lib/terrazine.rb, line 19
def self.send_request(structure, params = {})
  sql = build_sql structure
  connection = Config.connection!(params[:connection])

  res = time_output(sql) { execute_request connection, sql }
  Result.new res, params
end
time_output(str = '') { || ... } click to toggle source
# File lib/terrazine.rb, line 51
def self.time_output(str = '')
  time = Time.now
  res = yield
  puts "(\033[32m#{(Time.now - time) * 1000})ms \033[34m#{str}\033[0m"
  res
end