module Spectacles::SchemaStatements::AbstractAdapter

Public Instance Methods

create_materialized_view(view_name, *args) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 66
def create_materialized_view(view_name, *args)
  raise NotImplementedError, "Override create_materialized_view for your db adapter in #{self.class}"
end
create_view(view_name, *args) { || ... } click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 4
def create_view(view_name, *args)
  options = args.extract_options!
  build_query = args.shift

  raise "#{self.class} requires a query or block" if build_query.nil? && !block_given?

  build_query = yield if block_given?
  build_query = build_query.to_sql if build_query.respond_to?(:to_sql)

  if options[:force] && view_exists?(view_name)
    drop_view(view_name)
  end

  query = create_view_statement(view_name, build_query)
  execute(query)
end
create_view_statement(view_name, create_query) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 21
def create_view_statement(view_name, create_query)
  #query = "CREATE VIEW ? AS #{create_query}"
  #query_array = [query, view_name.to_s]

  #return ActiveRecord::Base.__send__(:sanitize_sql_array, query_array)
  "CREATE VIEW #{view_name} AS #{create_query}"
end
drop_materialized_view(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 70
def drop_materialized_view(view_name)
  raise NotImplementedError, "Override drop_materialized_view for your db adapter in #{self.class}"
end
drop_view(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 29
def drop_view(view_name)
  query = drop_view_statement(view_name)
  execute(query)
end
drop_view_statement(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 34
def drop_view_statement(view_name)
  #query = "DROP VIEW IF EXISTS ? "
  #query_array = [query, view_name.to_s]

  #return ActiveRecord::Base.__send__(:sanitize_sql_array, query_array)
  "DROP VIEW IF EXISTS #{view_name} "
end
materialized_view_build_query(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 62
def materialized_view_build_query(view_name)
  raise NotImplementedError, "Override materialized_view_build_query for your db adapter in #{self.class}"
end
materialized_view_exists?(name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 54
def materialized_view_exists?(name)
  return materialized_views.include?(name.to_s)
end
materialized_views() click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 58
def materialized_views
  raise NotImplementedError, "Override materialized_views for your db adapter in #{self.class}"
end
refresh_materialized_view(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 74
def refresh_materialized_view(view_name)
  raise NotImplementedError, "Override refresh_materialized_view for your db adapter in #{self.class}"
end
refresh_materialized_view_concurrently(view_name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 78
def refresh_materialized_view_concurrently(view_name)
  raise NotImplementedError, "Override refresh_materialized_view_concurrently for your db adapter in #{self.class}"
end
supports_materialized_views?() click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 50
def supports_materialized_views?
  false
end
view_exists?(name) click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 42
def view_exists?(name)
  return views.include?(name.to_s)
end
views() click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 46
def views
  raise "Override view for your db adapter in #{self.class}"
end