module Spectacles::SchemaStatements::SQLite3Adapter

Public Instance Methods

generate_view_query(*columns) click to toggle source
# File lib/spectacles/schema_statements/sqlite3_adapter.rb, line 23
      def generate_view_query(*columns)
        <<-SQL
          SELECT #{columns.join(',')}
          FROM sqlite_master
          WHERE type = 'view'
        SQL
      end
tables(name = nil, table_name = nil) click to toggle source

overrides the tables method from ActiveRecord's SQLite3Adapter to return only tables, and not views.

# File lib/spectacles/schema_statements/sqlite3_adapter.rb, line 10
      def tables(name = nil, table_name = nil)
        sql = <<-SQL
          SELECT name
          FROM sqlite_master
          WHERE type = 'table' AND NOT name = 'sqlite_sequence'
        SQL
        sql << " AND name = #{quote_table_name(table_name)}" if table_name

        exec_query(sql, 'SCHEMA').map do |row|
          row['name']
        end
      end
view_build_query(table_name) click to toggle source
# File lib/spectacles/schema_statements/sqlite3_adapter.rb, line 39
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