Class: GQLite::Connection

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sqlite_filename: nil) ⇒ Connection

Returns a new instance of Connection.



47
48
49
50
51
52
53
54
55
56
# File 'lib/gqlite.rb', line 47

def initialize(sqlite_filename: nil)
  if sqlite_filename != nil
    @dbhandle = CApi.call_function :gqlite_connection_create_from_sqlite_file, sqlite_filename, nil
  else
    raise Error.new "No connection backend was selected."
  end
  ObjectSpace.define_finalizer @dbhandle, proc {|id|
    CApi.call_function :gqlite_connection_destroy, @dbhandle
  }
end

Instance Attribute Details

#dbhandleObject (readonly)

Returns the value of attribute dbhandle.



46
47
48
# File 'lib/gqlite.rb', line 46

def dbhandle
  @dbhandle
end

Instance Method Details

#execute_oc_query(query, bindings: nil) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/gqlite.rb', line 57

def execute_oc_query(query, bindings: nil)
  b = nil
  if bindings
    b = CApi.call_function :gqlite_value_from_json, bindings.to_json 
  end
  ret = CApi.call_function :gqlite_connection_oc_query, @dbhandle, query, b
  if b
    CApi.call_function :gqlite_value_destroy, b
  end
  if CApi.call_function(:gqlite_value_is_valid, ret)
    val = JSON.parse(CApi.call_function :gqlite_value_to_json, ret)
  else
    val = nil
  end
  CApi.call_function :gqlite_value_destroy, ret
  return val
end