Class: HA

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/active_record/connection_adapters/hanaclient_adapter.rb

Overview

Singleton class to hold a valid instance of the HANACLIENTInterface across all connections

Constant Summary collapse

@@dbcapi_path =
nil

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeHA

Returns a new instance of HA.

Raises:

  • (LoadError)


28
29
30
31
32
33
# File 'lib/active_record/connection_adapters/hanaclient_adapter.rb', line 28

def initialize
  @api = HANACLIENT::HANACLIENTInterface.new()
  HANACLIENT::API.hanaclient_initialize_interface(@api, @@dbcapi_path)
  raise LoadError, "Could not initialize HANA client library" if @api.hanaclient_init() == 0
  ObjectSpace.define_finalizer(self, HA.finalize(@api))
end

Instance Attribute Details

#apiObject

Returns the value of attribute api.



21
22
23
# File 'lib/active_record/connection_adapters/hanaclient_adapter.rb', line 21

def api
  @api
end

Class Method Details

.dbcapi_path=(path) ⇒ Object



24
25
26
# File 'lib/active_record/connection_adapters/hanaclient_adapter.rb', line 24

def self.dbcapi_path= path
  @@dbcapi_path = path
end

.finalize(api) ⇒ Object

Returns a proc that is run when this object is destroyed



36
37
38
39
40
41
# File 'lib/active_record/connection_adapters/hanaclient_adapter.rb', line 36

def self.finalize(api)
  proc{
    api.hanaclient_fini()
    HANACLIENT::API.hanaclient_finalize_interface( api )
  }
end