Class: EasyMapper::Adapters::SqliteAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_mapper/adapters/sqlite_adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(host: nil, port: nil, database:, user: nil, password: nil) ⇒ SqliteAdapter

Returns a new instance of SqliteAdapter.



10
11
12
13
14
15
16
17
18
19
# File 'lib/easy_mapper/adapters/sqlite_adapter.rb', line 10

def initialize(
    host: nil,
    port: nil,
    database:,
    user: nil,
    password: nil
)

  @database = database
end

Instance Method Details

#connectObject



21
22
23
24
# File 'lib/easy_mapper/adapters/sqlite_adapter.rb', line 21

def connect
  @db = SQLite3::Database.new @database
  @db.results_as_hash = true
end

#execute(query) ⇒ Object



26
27
28
29
# File 'lib/easy_mapper/adapters/sqlite_adapter.rb', line 26

def execute(query)
  Logger.logger.info("Executing query: #{query}")
  Results::SqliteResult.new @db.execute(query)
end

#next_id(table_name) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/easy_mapper/adapters/sqlite_adapter.rb', line 35

def next_id(table_name)
  query = sql_builder.select
                     .column('seq')
                     .from('sqlite_sequence')
                     .where(name: table_name)
                     .build

  execute(query).single_value + 1
end

#sql_builderObject



31
32
33
# File 'lib/easy_mapper/adapters/sqlite_adapter.rb', line 31

def sql_builder
  Sqlbuilder::Builders::PostgresBuilder.new
end