Module: Jetski::Database::Interface

Extended by:
Interface
Included in:
Interface
Defined in:
lib/jetski/database/interface.rb

Instance Method Summary collapse

Instance Method Details

#add_column(table_name, field_name, data_type = "string") ⇒ Object



11
12
13
# File 'lib/jetski/database/interface.rb', line 11

def add_column(table_name, field_name, data_type = "string")
  db.execute("ALTER TABLE #{table_name} ADD #{field_name} #{sql_data_type(data_type)}")
end

#add_column_unless_exists(table_name, field_name, data_type = nil) ⇒ Object



19
20
21
# File 'lib/jetski/database/interface.rb', line 19

def add_column_unless_exists(table_name, field_name, data_type = nil)
  add_column(table_name, field_name, data_type) if !field_exists?(table_name, field_name)
end

#create_table(table_name, *fields) ⇒ Object



7
8
9
# File 'lib/jetski/database/interface.rb', line 7

def create_table(table_name, *fields)
  db.execute create_table_sql(table_name: table_name, field_names: fields)
end

#create_table_unless_exists(table_name, *fields) ⇒ Object



15
16
17
# File 'lib/jetski/database/interface.rb', line 15

def create_table_unless_exists(table_name, *fields)
  create_table(table_name, *fields) if !table_exists?(table_name)
end

#field_exists?(table_name, field_name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/jetski/database/interface.rb', line 27

def field_exists?(table_name, field_name)
  table_info = db.execute("PRAGMA table_info(#{table_name})")
  table_info.find { |d| d[1] == field_name.to_s } != nil
end

#table_exists?(table_name) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/jetski/database/interface.rb', line 23

def table_exists?(table_name)
  db.get_first_value("SELECT name FROM sqlite_master WHERE type='table' AND name=?", table_name)
end