activerecord-postgis-adapter 6.0.3 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/active_record/connection_adapters/postgis/arel_tosql.rb +18 -16
- data/lib/active_record/connection_adapters/postgis/create_connection.rb +11 -11
- data/lib/active_record/connection_adapters/postgis/databases.rake +7 -7
- data/lib/active_record/connection_adapters/postgis/oid/spatial.rb +25 -20
- data/lib/active_record/connection_adapters/postgis/postgis_database_tasks.rb +27 -26
- data/lib/active_record/connection_adapters/postgis/schema_statements.rb +9 -2
- data/lib/active_record/connection_adapters/postgis/spatial_column.rb +1 -1
- data/lib/active_record/connection_adapters/postgis/type.rb +22 -0
- data/lib/active_record/connection_adapters/postgis/version.rb +1 -1
- data/lib/active_record/connection_adapters/postgis_adapter.rb +18 -8
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40546b155985259941dab5c7fef8ec7f0d4959a29087044a133c4918929d7e2f
|
4
|
+
data.tar.gz: b80326260c605d158e4647caa361d07000c622140ae90e505f97a0576f2ce26a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b3aee9a59f53669fe3e44c1f471f30f3e37f20b0a18bb920ac46535e264f573492da49c268d04a037b959517018584aa69c6fe1d9f45b211b3a55ed8d19a1d2
|
7
|
+
data.tar.gz: af501e0d2e9e3cc0990c67812fa9fc1fc2202ba9f15ed5f6a69dfe4e73709ef4cc339c9846ee60a804e6f5f2a5bf754d6f4082508a1cbd17dfa3e7c9f985c5f2
|
@@ -1,5 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module RGeo
|
4
|
+
module ActiveRecord
|
5
|
+
##
|
6
|
+
# Extend rgeo-activerecord visitors to use PostGIS specific functionality
|
7
|
+
module SpatialToPostGISSql
|
8
|
+
def visit_in_spatial_context(node, collector)
|
9
|
+
# Use ST_GeomFromEWKT for EWKT geometries
|
10
|
+
if node.is_a?(String) && node =~ /SRID=[\d+]{0,};/
|
11
|
+
collector << "#{st_func('ST_GeomFromEWKT')}(#{quote(node)})"
|
12
|
+
else
|
13
|
+
super(node, collector)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
RGeo::ActiveRecord::SpatialToSql.prepend RGeo::ActiveRecord::SpatialToPostGISSql
|
20
|
+
|
3
21
|
module Arel # :nodoc:
|
4
22
|
module Visitors # :nodoc:
|
5
23
|
# Different super-class under JRuby JDBC adapter.
|
@@ -11,22 +29,6 @@ module Arel # :nodoc:
|
|
11
29
|
|
12
30
|
class PostGIS < PostGISSuperclass # :nodoc:
|
13
31
|
include RGeo::ActiveRecord::SpatialToSql
|
14
|
-
|
15
|
-
FUNC_MAP = {
|
16
|
-
"st_wkttosql" => "ST_GeomFromEWKT",
|
17
|
-
}
|
18
|
-
|
19
|
-
def st_func(standard_name)
|
20
|
-
FUNC_MAP[standard_name.downcase] || standard_name
|
21
|
-
end
|
22
|
-
|
23
|
-
def visit_String(node, collector)
|
24
|
-
collector << "#{st_func('ST_WKTToSQL')}(#{quote(node)})"
|
25
|
-
end
|
26
|
-
|
27
|
-
def visit_RGeo_ActiveRecord_SpatialNamedFunction(node, collector)
|
28
|
-
aggregate(st_func(node.name), node, collector)
|
29
|
-
end
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
@@ -10,7 +10,11 @@ module ActiveRecord # :nodoc:
|
|
10
10
|
module ConnectionHandling # :nodoc:
|
11
11
|
if RUBY_ENGINE == "jruby"
|
12
12
|
|
13
|
+
# modified from https://github.com/jruby/activerecord-jdbc-adapter/blob/master/lib/arjdbc/postgresql/connection_methods.rb#L3
|
13
14
|
def postgis_connection(config)
|
15
|
+
config = config.deep_dup
|
16
|
+
config = symbolize_keys_if_necessary(config)
|
17
|
+
|
14
18
|
config[:adapter_class] = ConnectionAdapters::PostGISAdapter
|
15
19
|
postgresql_connection(config)
|
16
20
|
end
|
@@ -23,9 +27,7 @@ module ActiveRecord # :nodoc:
|
|
23
27
|
# https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
|
24
28
|
# FULL REPLACEMENT because we need to create a different class.
|
25
29
|
def postgis_connection(config)
|
26
|
-
conn_params = config.symbolize_keys
|
27
|
-
|
28
|
-
conn_params.delete_if { |_, v| v.nil? }
|
30
|
+
conn_params = config.symbolize_keys.compact
|
29
31
|
|
30
32
|
# Map ActiveRecords param names to PGs.
|
31
33
|
conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
|
@@ -35,14 +37,12 @@ module ActiveRecord # :nodoc:
|
|
35
37
|
valid_conn_param_keys = PG::Connection.conndefaults_hash.keys + [:requiressl]
|
36
38
|
conn_params.slice!(*valid_conn_param_keys)
|
37
39
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
raise
|
45
|
-
end
|
40
|
+
ConnectionAdapters::PostGISAdapter.new(
|
41
|
+
ConnectionAdapters::PostGISAdapter.new_client(conn_params),
|
42
|
+
logger,
|
43
|
+
conn_params,
|
44
|
+
config
|
45
|
+
)
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
namespace :db do
|
4
4
|
namespace :gis do
|
5
|
-
desc
|
5
|
+
desc 'Setup PostGIS data in the database'
|
6
6
|
task setup: [:load_config] do
|
7
7
|
environments = [Rails.env]
|
8
|
-
environments <<
|
8
|
+
environments << 'test' if Rails.env.development?
|
9
9
|
environments.each do |environment|
|
10
10
|
ActiveRecord::Base.configurations
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
.configs_for(env_name: environment)
|
12
|
+
.reject { |env| env.configuration_hash[:database].blank? }
|
13
|
+
.each do |env|
|
14
|
+
ActiveRecord::ConnectionAdapters::PostGIS::PostGISDatabaseTasks.new(env).setup_gis
|
15
|
+
end
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -4,16 +4,17 @@ module ActiveRecord
|
|
4
4
|
module ConnectionAdapters
|
5
5
|
module PostGIS
|
6
6
|
module OID
|
7
|
+
# OID used to represent geometry/geography database types and attributes.
|
8
|
+
#
|
9
|
+
# Accepts `geo_type`, `srid`, `has_z`, `has_m`, and `geographic` as parameters.
|
10
|
+
# Responsible for parsing sql_types returned from the database and WKT features.
|
7
11
|
class Spatial < Type::Value
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
def initialize(oid, sql_type)
|
15
|
-
@sql_type = sql_type
|
16
|
-
@geo_type, @srid, @has_z, @has_m = self.class.parse_sql_type(sql_type)
|
12
|
+
def initialize(geo_type: 'geometry', srid: 0, has_z: false, has_m: false, geographic: false)
|
13
|
+
@geo_type = geo_type
|
14
|
+
@srid = srid
|
15
|
+
@has_z = has_z
|
16
|
+
@has_m = has_m
|
17
|
+
@geographic = geographic
|
17
18
|
end
|
18
19
|
|
19
20
|
# sql_type: geometry, geometry(Point), geometry(Point,4326), ...
|
@@ -43,30 +44,24 @@ module ActiveRecord
|
|
43
44
|
# otherType(a,b)
|
44
45
|
geo_type = sql_type
|
45
46
|
end
|
46
|
-
|
47
|
+
geographic = sql_type.match?(/geography/)
|
48
|
+
|
49
|
+
[geo_type, srid, has_z, has_m, geographic]
|
47
50
|
end
|
48
51
|
|
49
52
|
def spatial_factory
|
50
53
|
@spatial_factory ||=
|
51
54
|
RGeo::ActiveRecord::SpatialFactoryStore.instance.factory(
|
52
|
-
|
53
|
-
has_m: @has_m,
|
54
|
-
has_z: @has_z,
|
55
|
-
sql_type: @sql_type,
|
56
|
-
srid: @srid
|
55
|
+
factory_attrs
|
57
56
|
)
|
58
57
|
end
|
59
58
|
|
60
|
-
def geographic?
|
61
|
-
@sql_type =~ /geography/
|
62
|
-
end
|
63
|
-
|
64
59
|
def spatial?
|
65
60
|
true
|
66
61
|
end
|
67
62
|
|
68
63
|
def type
|
69
|
-
geographic
|
64
|
+
@geographic ? :geography : :geometry
|
70
65
|
end
|
71
66
|
|
72
67
|
# support setting an RGeo object or a WKT string
|
@@ -107,6 +102,16 @@ module ActiveRecord
|
|
107
102
|
RGeo::WKRep::WKTParser.new(spatial_factory, support_ewkt: true, default_srid: @srid)
|
108
103
|
end
|
109
104
|
end
|
105
|
+
|
106
|
+
def factory_attrs
|
107
|
+
{
|
108
|
+
geo_type: @geo_type.underscore,
|
109
|
+
has_m: @has_m,
|
110
|
+
has_z: @has_z,
|
111
|
+
srid: @srid,
|
112
|
+
sql_type: type.to_s
|
113
|
+
}
|
114
|
+
end
|
110
115
|
end
|
111
116
|
end
|
112
117
|
end
|
@@ -4,7 +4,7 @@ module ActiveRecord # :nodoc:
|
|
4
4
|
module ConnectionAdapters # :nodoc:
|
5
5
|
module PostGIS # :nodoc:
|
6
6
|
class PostGISDatabaseTasks < ::ActiveRecord::Tasks::PostgreSQLDatabaseTasks # :nodoc:
|
7
|
-
def initialize(
|
7
|
+
def initialize(db_config)
|
8
8
|
super
|
9
9
|
ensure_installation_configs
|
10
10
|
end
|
@@ -14,19 +14,19 @@ module ActiveRecord # :nodoc:
|
|
14
14
|
if extension_names
|
15
15
|
setup_gis_from_extension
|
16
16
|
end
|
17
|
-
establish_connection(
|
17
|
+
establish_connection(db_config)
|
18
18
|
end
|
19
19
|
|
20
20
|
# Override to set the database owner and call setup_gis
|
21
21
|
def create(master_established = false)
|
22
22
|
establish_master_connection unless master_established
|
23
|
-
extra_configs = {
|
24
|
-
extra_configs[
|
25
|
-
connection.create_database(
|
23
|
+
extra_configs = { encoding: encoding }
|
24
|
+
extra_configs[:owner] = username if has_su?
|
25
|
+
connection.create_database(db_config.database, configuration_hash.merge(extra_configs))
|
26
26
|
setup_gis
|
27
27
|
rescue ::ActiveRecord::StatementInvalid => error
|
28
28
|
if /database .* already exists/ === error.message
|
29
|
-
raise ::ActiveRecord::
|
29
|
+
raise ::ActiveRecord::DatabaseAlreadyExists
|
30
30
|
else
|
31
31
|
raise
|
32
32
|
end
|
@@ -36,24 +36,24 @@ module ActiveRecord # :nodoc:
|
|
36
36
|
|
37
37
|
# Override to use su_username and su_password
|
38
38
|
def establish_master_connection
|
39
|
-
establish_connection(
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
establish_connection(configuration_hash.merge(
|
40
|
+
database: "postgres",
|
41
|
+
password: su_password,
|
42
|
+
schema_search_path: "public",
|
43
|
+
username: su_username
|
44
44
|
))
|
45
45
|
end
|
46
46
|
|
47
47
|
def establish_su_connection
|
48
|
-
establish_connection(
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
establish_connection(configuration_hash.merge(
|
49
|
+
password: su_password,
|
50
|
+
schema_search_path: "public",
|
51
|
+
username: su_username
|
52
52
|
))
|
53
53
|
end
|
54
54
|
|
55
55
|
def username
|
56
|
-
@username ||=
|
56
|
+
@username ||= configuration_hash[:username]
|
57
57
|
end
|
58
58
|
|
59
59
|
def quoted_username
|
@@ -61,29 +61,30 @@ module ActiveRecord # :nodoc:
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def password
|
64
|
-
@password ||=
|
64
|
+
@password ||= configuration_hash[:password]
|
65
65
|
end
|
66
66
|
|
67
67
|
def su_username
|
68
|
-
@su_username ||=
|
68
|
+
@su_username ||= configuration_hash.fetch(:su_username, username)
|
69
69
|
end
|
70
70
|
|
71
71
|
def su_password
|
72
|
-
@su_password ||=
|
72
|
+
@su_password ||= configuration_hash.fetch(:su_password, password)
|
73
73
|
end
|
74
74
|
|
75
75
|
def has_su?
|
76
|
-
@has_su
|
77
|
-
|
76
|
+
return @has_su if defined?(@has_su)
|
77
|
+
|
78
|
+
@has_su = configuration_hash.include?(:su_username)
|
78
79
|
end
|
79
80
|
|
80
81
|
def search_path
|
81
|
-
@search_path ||=
|
82
|
+
@search_path ||= configuration_hash[:schema_search_path].to_s.strip.split(",").map(&:strip)
|
82
83
|
end
|
83
84
|
|
84
85
|
def extension_names
|
85
86
|
@extension_names ||= begin
|
86
|
-
extensions =
|
87
|
+
extensions = configuration_hash[:postgis_extension]
|
87
88
|
case extensions
|
88
89
|
when ::String
|
89
90
|
extensions.split(",")
|
@@ -96,11 +97,11 @@ module ActiveRecord # :nodoc:
|
|
96
97
|
end
|
97
98
|
|
98
99
|
def ensure_installation_configs
|
99
|
-
if
|
100
|
+
if configuration_hash[:setup] == "default" && !configuration_hash[:postgis_extension]
|
100
101
|
share_dir = `pg_config --sharedir`.strip rescue "/usr/share"
|
101
102
|
control_file = ::File.expand_path("extension/postgis.control", share_dir)
|
102
103
|
if ::File.readable?(control_file)
|
103
|
-
|
104
|
+
@configuration_hash = configuration_hash.merge(postgis_extension: "postgis").freeze
|
104
105
|
end
|
105
106
|
end
|
106
107
|
end
|
@@ -113,7 +114,7 @@ module ActiveRecord # :nodoc:
|
|
113
114
|
end
|
114
115
|
connection.execute("CREATE EXTENSION IF NOT EXISTS #{extname} SCHEMA topology")
|
115
116
|
else
|
116
|
-
if (postgis_schema =
|
117
|
+
if (postgis_schema = configuration_hash[:postgis_schema])
|
117
118
|
schema_clause = "WITH SCHEMA #{postgis_schema}"
|
118
119
|
unless schema_exists?(postgis_schema)
|
119
120
|
connection.execute("CREATE SCHEMA #{postgis_schema}")
|
@@ -96,8 +96,15 @@ module ActiveRecord
|
|
96
96
|
st_point
|
97
97
|
st_polygon
|
98
98
|
).each do |geo_type|
|
99
|
-
map.register_type(geo_type) do |
|
100
|
-
|
99
|
+
map.register_type(geo_type) do |_, _, sql_type|
|
100
|
+
# sql_type is a string that comes from the database definition
|
101
|
+
# examples:
|
102
|
+
# "geometry(Point,4326)"
|
103
|
+
# "geography(Point,4326)"
|
104
|
+
# "geometry(Polygon,4326) NOT NULL"
|
105
|
+
# "geometry(Geography,4326)"
|
106
|
+
geo_type, srid, has_z, has_m, geographic = OID::Spatial.parse_sql_type(sql_type)
|
107
|
+
OID::Spatial.new(geo_type: geo_type, srid: srid, has_z: has_z, has_m: has_m, geographic: geographic)
|
101
108
|
end
|
102
109
|
end
|
103
110
|
|
@@ -67,7 +67,7 @@ module ActiveRecord # :nodoc:
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def build_from_sql_type(sql_type)
|
70
|
-
geo_type, @srid, @has_z, @has_m = OID::Spatial.parse_sql_type(sql_type)
|
70
|
+
geo_type, @srid, @has_z, @has_m, @geographic = OID::Spatial.parse_sql_type(sql_type)
|
71
71
|
set_geometric_type_from_name(geo_type)
|
72
72
|
end
|
73
73
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module ConnectionAdapters
|
5
|
+
module PostGIS
|
6
|
+
module Type
|
7
|
+
# Look for :postgis types first, then check for :postgresql
|
8
|
+
# types to simulate a kind of Type inheritance.
|
9
|
+
def lookup(*args, adapter: current_adapter_name, **kwargs)
|
10
|
+
super(*args, adapter: adapter, **kwargs)
|
11
|
+
rescue ArgumentError => e
|
12
|
+
raise e unless current_adapter_name == :postgis
|
13
|
+
|
14
|
+
super(*args, adapter: :postgresql, **kwargs)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Type uses `class << self` syntax so we have to prepend to the singleton_class
|
21
|
+
Type.singleton_class.prepend(ActiveRecord::ConnectionAdapters::PostGIS::Type)
|
22
|
+
end
|
@@ -7,13 +7,7 @@
|
|
7
7
|
|
8
8
|
require "rgeo/active_record"
|
9
9
|
|
10
|
-
|
11
|
-
module ActiveRecord
|
12
|
-
module ConnectionAdapters
|
13
|
-
AbstractAdapter
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
10
|
+
require "active_record/connection_adapters"
|
17
11
|
require "active_record/connection_adapters/postgresql_adapter"
|
18
12
|
require "active_record/connection_adapters/postgis/version"
|
19
13
|
require "active_record/connection_adapters/postgis/column_methods"
|
@@ -25,6 +19,7 @@ require "active_record/connection_adapters/postgis/spatial_column"
|
|
25
19
|
require "active_record/connection_adapters/postgis/arel_tosql"
|
26
20
|
require "active_record/connection_adapters/postgis/setup"
|
27
21
|
require "active_record/connection_adapters/postgis/oid/spatial"
|
22
|
+
require "active_record/connection_adapters/postgis/type" # has to be after oid/*
|
28
23
|
require "active_record/connection_adapters/postgis/create_connection"
|
29
24
|
require "active_record/connection_adapters/postgis/postgis_database_tasks"
|
30
25
|
|
@@ -103,6 +98,21 @@ module ActiveRecord
|
|
103
98
|
super
|
104
99
|
end
|
105
100
|
end
|
101
|
+
|
102
|
+
# PostGIS specific types
|
103
|
+
[
|
104
|
+
:geography,
|
105
|
+
:geometry,
|
106
|
+
:geometry_collection,
|
107
|
+
:line_string,
|
108
|
+
:multi_line_string,
|
109
|
+
:multi_point,
|
110
|
+
:multi_polygon,
|
111
|
+
:st_point,
|
112
|
+
:st_polygon,
|
113
|
+
].each do |geo_type|
|
114
|
+
ActiveRecord::Type.register(geo_type, PostGIS::OID::Spatial, adapter: :postgis)
|
115
|
+
end
|
106
116
|
end
|
107
117
|
end
|
108
118
|
end
|
@@ -110,7 +120,7 @@ end
|
|
110
120
|
# if using JRUBY, create ArJdbc::PostGIS module
|
111
121
|
# and prepend it to the PostgreSQL adapter since
|
112
122
|
# it is the default adapter_spec.
|
113
|
-
# see: https://github.com/jruby/activerecord-jdbc-adapter/blob/
|
123
|
+
# see: https://github.com/jruby/activerecord-jdbc-adapter/blob/master/lib/arjdbc/postgresql/adapter.rb#27
|
114
124
|
if RUBY_ENGINE == "jruby"
|
115
125
|
module ArJdbc
|
116
126
|
module PostGIS
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-postgis-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
@@ -17,42 +17,42 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 6.
|
20
|
+
version: '6.1'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 6.
|
27
|
+
version: '6.1'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rgeo-activerecord
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 7.0.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 7.0.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '12.0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '12.0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: minitest
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- lib/active_record/connection_adapters/postgis/spatial_column.rb
|
121
121
|
- lib/active_record/connection_adapters/postgis/spatial_column_info.rb
|
122
122
|
- lib/active_record/connection_adapters/postgis/spatial_table_definition.rb
|
123
|
+
- lib/active_record/connection_adapters/postgis/type.rb
|
123
124
|
- lib/active_record/connection_adapters/postgis/version.rb
|
124
125
|
- lib/active_record/connection_adapters/postgis_adapter.rb
|
125
126
|
- lib/activerecord-postgis-adapter.rb
|