Class: ActiveRecord::ConnectionAdapters::WasmSqlite3Adapter

Inherits:
SQLite3Adapter
  • Object
show all
Defined in:
lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb

Overview

Thin JS-bridge wrapper around the real SQLite3Adapter. All query pipeline (perform_query, internal_exec_query, write_query?, column reflection, type mapping) is inherited from SQLite3Adapter. Only the raw connection object is replaced with a JS proxy.

Defined Under Namespace

Classes: ExternalInterface, Statement

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeWasmSqlite3Adapter

Returns a new instance of WasmSqlite3Adapter.



137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb', line 137

def initialize(...)
  # Bypass SQLite3Adapter's native-gem constructor; use AbstractAdapter's.
  AbstractAdapter.instance_method(:initialize).bind_call(self, ...)
  @prepared_statements  = false
  @memory_database      = false
  @connection_parameters = @config.merge(
    database: @config[:database].to_s,
    results_as_hash: true
  )
  @use_insert_returning = @config.key?(:insert_returning) \
    ? self.class.type_cast_config_to_boolean(@config[:insert_returning]) \
    : true
end

Class Method Details

.database_exists?(_config) ⇒ Boolean

Returns:

  • (Boolean)


133
# File 'lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb', line 133

def database_exists?(_config) = true

.new_client(_config) ⇒ Object



134
# File 'lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb', line 134

def new_client(_config)       = ExternalInterface.new

Instance Method Details

#database_exists?Boolean

Returns:

  • (Boolean)


151
# File 'lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb', line 151

def database_exists? = true

#database_versionObject



152
# File 'lib/generators/wasm_rails/install/templates/wasm_sqlite3_adapter.rb', line 152

def database_version  = SQLite3Adapter::Version.new('3.45.1')