class MatryoshkaView::Record
Constants
- COLUMNS
Public Class Methods
cleanup()
click to toggle source
# File lib/matryoshka_view/record.rb, line 35 def cleanup find_each do |record| record.destroy unless record.exists? end end
create_table()
click to toggle source
# File lib/matryoshka_view/record.rb, line 7 def create_table activity = false connection_pool.with_connection do |c| unless table_exists? c.execute "CREATE TABLE #{quoted_table_name}(name text UNIQUE NOT NULL)" activity = true end existing_columns = column_names if (missing_columns = COLUMNS.keys - column_names).any? activity = true add_columns = missing_columns.map {|name| %{ADD COLUMN "#{name}" #{COLUMNS[name]}} } c.execute "ALTER TABLE #{quoted_table_name} #{add_columns.join(',')}" missing_columns.each do |name| case name when /the_geom/ c.execute "CREATE INDEX ON #{quoted_table_name} USING gist(#{name})" else c.execute "CREATE INDEX ON #{quoted_table_name} (#{name})" end end end if activity c.schema_cache.clear! reset_column_information end end end
Public Instance Methods
exists?()
click to toggle source
# File lib/matryoshka_view/record.rb, line 63 def exists? MatryoshkaView.view_exists? name end
view()
click to toggle source
# File lib/matryoshka_view/record.rb, line 53 def view @view ||= begin save! unless exists? raise "missing #{name} (#{inspect})" end MatryoshkaView.new name: name, base: base, the_geom_geojson: the_geom_geojson end end