module Views::Extensions::ActiveRecord::PostgreSQLAdapter

Public Instance Methods

change_view(name, options={}) click to toggle source
# File lib/views/extensions/active_record/postgresql_adapter.rb, line 16
def change_view(name, options={})
  drop_view name
  create_view name, options
end
create_view(name, options={}) click to toggle source
# File lib/views/extensions/active_record/postgresql_adapter.rb, line 7
def create_view(name, options={})
  if options[:force]
    execute "DROP VIEW IF EXISTS #{name}"
  end
  path = Rails.root.join("db/views/#{name}.sql")
  definition = File.read(path)
  execute "CREATE VIEW #{name} AS #{definition}"
end
drop_view(name) click to toggle source
# File lib/views/extensions/active_record/postgresql_adapter.rb, line 21
def drop_view(name)
  execute "DROP VIEW #{name}"
end
views() click to toggle source
# File lib/views/extensions/active_record/postgresql_adapter.rb, line 25
        def views
          execute <<-SQL
            SELECT c.relname as name, c.relkind AS type
            FROM pg_class c
            LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('v')
            AND n.nspname = ANY (current_schemas(false))
            ORDER BY c.oid ASC
          SQL
        end