Module: Terrazine

Defined in:
lib/version.rb,
lib/terrazine.rb,
lib/terrazine/config.rb,
lib/terrazine/result.rb,
lib/terrazine/builder.rb,
lib/terrazine/type_map.rb,
lib/terrazine/presenter.rb,
lib/terrazine/constructor.rb,
lib/terrazine/builders/params.rb,
lib/terrazine/builders/clauses.rb,
lib/terrazine/builders/operators.rb,
lib/terrazine/builders/predicates.rb,
lib/terrazine/builders/expressions.rb

Defined Under Namespace

Classes: Builder, Config, Constructor, Hstore, Presenter, Result, Row, TypeMap

Constant Summary collapse

VERSION =
'0.0.3'

Class Method Summary collapse

Class Method Details

.build_sql(structure, options = {}) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 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) ⇒ Object



15
16
17
# File 'lib/terrazine.rb', line 15

def self.config(params)
  Config.set params
end

.connectionObject



11
12
13
# File 'lib/terrazine.rb', line 11

def self.connection
  Config.connection
end

.execute_request(connection, sql) ⇒ Object

TODO: relocate



59
60
61
62
63
64
65
# 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 = {}) ⇒ Object



27
28
29
# File 'lib/terrazine.rb', line 27

def self.new_constructor(structure = {})
  Constructor.new structure
end

.send_request(structure, params = {}) ⇒ Object



19
20
21
22
23
24
25
# 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 = '') ⇒ Object



51
52
53
54
55
56
# 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