module PostgresExt::Postgis::ActiveRecord::ConnectionAdapters::PostgreSQLColumn

Public Class Methods

new(name, default, oid_type, sql_type = nil, null = true) click to toggle source
Calls superclass method
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 42
def initialize(name, default, oid_type, sql_type = nil, null = true)
  super
  if type == :geometry
    @srid          = extract_srid sql_type
    @geometry_type = extract_geometry_type sql_type
  end
end
prepended(klass) click to toggle source
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 3
def self.prepended(klass)
  klass.class_eval do
    attr_reader :geometry_type, :srid
    class << klass
      prepend ClassMethods
    end
  end
end

Private Instance Methods

extract_geometry_type(sql_type) click to toggle source
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 58
def extract_geometry_type(sql_type)
  if match = geometry_type_regex.match(sql_type)
    match[:geom_type].downcase.to_sym.inspect
  end
end
extract_limit(sql_type) click to toggle source
Calls superclass method
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 68
def extract_limit(sql_type)
  case sql_type
  when /^geometry/i
    nil
  else
    super
  end
end
extract_srid(sql_type) click to toggle source
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 52
def extract_srid(sql_type)
  if match = geometry_type_regex.match(sql_type)
    match[:srid]
  end
end
geometry_type_regex() click to toggle source
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 64
def geometry_type_regex
  /geometry\((?<geom_type>\w+),(?<srid>\d+)\)/i
end
simplified_type(field_type) click to toggle source
Calls superclass method
# File lib/postgres_ext/postgis/active_record/connection_adapters.rb, line 77
def simplified_type(field_type)
  case field_type
  when /geography/
    :geography
  when /geometry(\(\w,\d\))?/
    :geometry
  else
    super
  end
end