Module: Spectacles::SchemaStatements::SQLite3Adapter

Includes:
AbstractAdapter
Defined in:
lib/spectacles/schema_statements/sqlite3_adapter.rb

Instance Method Summary collapse

Methods included from AbstractAdapter

#create_view, #create_view_statement, #drop_view, #drop_view_statement, #view_exists?

Instance Method Details

#generate_view_query(*columns) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 8

def generate_view_query(*columns)
  sql = <<-SQL
    SELECT #{columns.join(',')}
    FROM sqlite_master
    WHERE type = 'view'
  SQL
end

#view_build_query(table_name) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 24

def view_build_query(table_name)
  sql = generate_view_query(:sql)
  sql << " AND name = #{quote_table_name(table_name)}"

  row = exec_query(sql, "SCHEMA").first
  row['sql'].gsub(/CREATE VIEW .*? AS/i, "")
end

#viewsObject

:nodoc:



16
17
18
19
20
21
22
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 16

def views #:nodoc:
  sql = generate_view_query(:name)

  exec_query(sql, "SCHEMA").map do |row|
    row['name']
  end
end