Class: ActiveHouse::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/active_house/connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Connection

Returns a new instance of Connection.



10
11
12
13
14
15
# File 'lib/active_house/connection.rb', line 10

def initialize(config)
  config.assert_valid_keys(:url, :urls, :database, :username, :password, :host, :port, :scheme)
  @config = config
  @connection = nil
  ensure_connected!
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/active_house/connection.rb', line 8

def config
  @config
end

Instance Method Details

#connection_alive?Boolean

Returns:

  • (Boolean)


47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/active_house/connection.rb', line 47

def connection_alive?
  return false if connection.nil?
  if connection.is_a?(Clickhouse::Cluster)
    !connection.pond.available.empty?
  else
    begin
      connection.ping!
      true
    rescue StandardError
      false
    end
  end
end

#execute(sql, *bindings) ⇒ Object



17
18
19
20
# File 'lib/active_house/connection.rb', line 17

def execute(sql, *bindings)
  prepared_sql = prepared_statement(sql, *bindings)
  connection.execute(prepared_sql)
end

#raw_query(sql) ⇒ Object



43
44
45
# File 'lib/active_house/connection.rb', line 43

def raw_query(sql)
  connection.get(sql)
end

#reconnect!Object



61
62
63
# File 'lib/active_house/connection.rb', line 61

def reconnect!
  ensure_connected!
end

#select_all(sql, *bindings) ⇒ Object



22
23
24
25
# File 'lib/active_house/connection.rb', line 22

def select_all(sql, *bindings)
  prepared_sql = prepared_statement(sql, *bindings)
  connection.query(prepared_sql)
end

#select_row(sql, *bindings) ⇒ Object



35
36
37
# File 'lib/active_house/connection.rb', line 35

def select_row(sql, *bindings)
  select_all(sql, *bindings).to_hashes.first
end

#select_rows(sql, *bindings) ⇒ Object



39
40
41
# File 'lib/active_house/connection.rb', line 39

def select_rows(sql, *bindings)
  select_all(sql, *bindings).to_hashes
end

#select_value(sql, *bindings) ⇒ Object



31
32
33
# File 'lib/active_house/connection.rb', line 31

def select_value(sql, *bindings)
  select_all(sql, *bindings).flatten.first
end

#select_values(sql, *bindings) ⇒ Object



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

def select_values(sql, *bindings)
  select_all(sql, *bindings).flatten
end