activerecord-postgis-adapter 8.0.2 → 9.0.0
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/column_methods.rb +6 -0
- data/lib/active_record/connection_adapters/postgis/oid/spatial.rb +4 -1
- data/lib/active_record/connection_adapters/postgis/schema_statements.rb +8 -3
- data/lib/active_record/connection_adapters/postgis/spatial_table_definition.rb +5 -5
- data/lib/active_record/connection_adapters/postgis/version.rb +1 -1
- data/lib/active_record/connection_adapters/postgis_adapter.rb +12 -12
- data/lib/activerecord-postgis-adapter.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ce9132c84e82a73c22f3f9eba768333cd879f9a0672e3b77be63647166352f0
|
4
|
+
data.tar.gz: 2f9e5f0834f49116b23507f15742acd3979be5ab4c15e28271e0de7f07c9e1ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bb7874c27865181d37ba3e41ee58318445d39156d756c5ec1e8c372b350899f8478367fd205efbad21fb69a81caa6e78afaf964fce30e6269d3de96bac4fd3f
|
7
|
+
data.tar.gz: 3fe8d2306d02f7f2a1c6462c4326435ab1f6f111e366ead335c71c479170a3c5b528adc4178060895fdb1499a5feabe27e306257792bc8f40ee0d2cd9d376026
|
@@ -4,6 +4,7 @@ module ActiveRecord
|
|
4
4
|
module ConnectionAdapters
|
5
5
|
module PostGIS
|
6
6
|
module ColumnMethods
|
7
|
+
|
7
8
|
def spatial(name, options = {})
|
8
9
|
raise "You must set a type. For example: 't.spatial type: :st_point'" unless options[:type]
|
9
10
|
column(name, options[:type], **options)
|
@@ -44,6 +45,11 @@ module ActiveRecord
|
|
44
45
|
def st_polygon(name, options = {})
|
45
46
|
column(name, :st_polygon, **options)
|
46
47
|
end
|
48
|
+
|
49
|
+
private
|
50
|
+
def valid_column_definition_options
|
51
|
+
super + [:srid, :has_z, :has_m, :geographic, :spatial_type]
|
52
|
+
end
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
@@ -25,7 +25,10 @@ module ActiveRecord
|
|
25
25
|
# has_z: false
|
26
26
|
# has_m: false
|
27
27
|
def self.parse_sql_type(sql_type)
|
28
|
-
geo_type
|
28
|
+
geo_type = nil
|
29
|
+
srid = 0
|
30
|
+
has_z = false
|
31
|
+
has_m = false
|
29
32
|
|
30
33
|
if sql_type =~ /(geography|geometry)\((.*)\)$/i
|
31
34
|
# geometry(Point)
|
@@ -7,13 +7,18 @@ module ActiveRecord
|
|
7
7
|
# override
|
8
8
|
# https://github.com/rails/rails/blob/7-0-stable/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb#L662
|
9
9
|
# Create a SpatialColumn instead of a PostgreSQL::Column
|
10
|
-
def new_column_from_field(table_name, field)
|
10
|
+
def new_column_from_field(table_name, field, _definitions)
|
11
11
|
column_name, type, default, notnull, oid, fmod, collation, comment, attgenerated = field
|
12
12
|
type_metadata = fetch_type_metadata(column_name, type, oid.to_i, fmod.to_i)
|
13
13
|
default_value = extract_value_from_default(default)
|
14
|
-
default_function = extract_default_function(default_value, default)
|
15
14
|
|
16
|
-
if
|
15
|
+
if attgenerated.present?
|
16
|
+
default_function = default
|
17
|
+
else
|
18
|
+
default_function = extract_default_function(default_value, default)
|
19
|
+
end
|
20
|
+
|
21
|
+
if (match = default_function&.match(/\Anextval\('"?(?<sequence_name>.+_(?<suffix>seq\d*))"?'::regclass\)\z/))
|
17
22
|
serial = sequence_name_from_parts(table_name, column_name, match[:suffix]) == match[:sequence_name]
|
18
23
|
end
|
19
24
|
|
@@ -43,11 +43,11 @@ module ActiveRecord # :nodoc:
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def limit_from_options(type, options = {})
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
has_z = options[:has_z] ? 'Z' : ''
|
47
|
+
has_m = options[:has_m] ? 'M' : ''
|
48
|
+
srid = options[:srid] || default_srid(options)
|
49
|
+
field_type = [geo_type(type), has_z, has_m].compact.join
|
50
|
+
"#{field_type},#{srid}"
|
51
51
|
end
|
52
52
|
|
53
53
|
def default_srid(options)
|
@@ -9,18 +9,18 @@ require "rgeo/active_record"
|
|
9
9
|
|
10
10
|
require "active_record/connection_adapters"
|
11
11
|
require "active_record/connection_adapters/postgresql_adapter"
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
12
|
+
require_relative "postgis/version"
|
13
|
+
require_relative "postgis/column_methods"
|
14
|
+
require_relative "postgis/schema_statements"
|
15
|
+
require_relative "postgis/database_statements"
|
16
|
+
require_relative "postgis/spatial_column_info"
|
17
|
+
require_relative "postgis/spatial_table_definition"
|
18
|
+
require_relative "postgis/spatial_column"
|
19
|
+
require_relative "postgis/arel_tosql"
|
20
|
+
require_relative "postgis/oid/spatial"
|
21
|
+
require_relative "postgis/oid/date_time"
|
22
|
+
require_relative "postgis/type" # has to be after oid/*
|
23
|
+
require_relative "postgis/create_connection"
|
24
24
|
# :startdoc:
|
25
25
|
|
26
26
|
module ActiveRecord
|
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: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 7.
|
20
|
+
version: 7.1.0
|
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: 7.
|
27
|
+
version: 7.1.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rgeo-activerecord
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,14 +87,14 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.
|
90
|
+
version: '2.12'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 2.
|
97
|
+
version: '2.12'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rubocop
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
149
149
|
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
151
|
+
version: 3.0.0
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
requirements:
|
154
154
|
- - ">="
|