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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a73b6c9fb325971ec1f593c4698c12b68d8e9fd96e3af64f720d842f47f6c7d0
4
- data.tar.gz: 52e0aa909ca3a69c74bcab5d6f0af4bd43f6610192a834743c632f803e17ce3c
3
+ metadata.gz: 9ce9132c84e82a73c22f3f9eba768333cd879f9a0672e3b77be63647166352f0
4
+ data.tar.gz: 2f9e5f0834f49116b23507f15742acd3979be5ab4c15e28271e0de7f07c9e1ef
5
5
  SHA512:
6
- metadata.gz: 8b1f926834a893d07c9e09928ffbce2635906292a8dbad8f949df978f779c06841cd36b89ab0c160f5f2f197fffeb82907e2b24f18fd2dffd34b8184f9591bdf
7
- data.tar.gz: 7da434681d9cfa4f120b76768d0bdab74724e3eca2928df1c4897c94ee7e6b1f8b2367c4a2213831b3a8943b3ac4759fc7de2c8583f422640835fcc2563efe68
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, srid, has_z, has_m = nil, 0, false, false
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 match = default_function&.match(/\Anextval\('"?(?<sequence_name>.+_(?<suffix>seq\d*))"?'::regclass\)\z/)
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
- spatial_type = geo_type(type)
47
- spatial_type << "Z" if options[:has_z]
48
- spatial_type << "M" if options[:has_m]
49
- spatial_type << ",#{options[:srid] || default_srid(options)}"
50
- spatial_type
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)
@@ -3,7 +3,7 @@
3
3
  module ActiveRecord
4
4
  module ConnectionAdapters
5
5
  module PostGIS
6
- VERSION = "8.0.2"
6
+ VERSION = "9.0.0"
7
7
  end
8
8
  end
9
9
  end
@@ -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
- require "active_record/connection_adapters/postgis/version"
13
- require "active_record/connection_adapters/postgis/column_methods"
14
- require "active_record/connection_adapters/postgis/schema_statements"
15
- require "active_record/connection_adapters/postgis/database_statements"
16
- require "active_record/connection_adapters/postgis/spatial_column_info"
17
- require "active_record/connection_adapters/postgis/spatial_table_definition"
18
- require "active_record/connection_adapters/postgis/spatial_column"
19
- require "active_record/connection_adapters/postgis/arel_tosql"
20
- require "active_record/connection_adapters/postgis/oid/spatial"
21
- require "active_record/connection_adapters/postgis/oid/date_time"
22
- require "active_record/connection_adapters/postgis/type" # has to be after oid/*
23
- require "active_record/connection_adapters/postgis/create_connection"
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
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "active_record/connection_adapters/postgis_adapter"
3
+ require_relative "active_record/connection_adapters/postgis_adapter"
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: 8.0.2
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-05-16 00:00:00.000000000 Z
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.0.0
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.0.0
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.9.1
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.9.1
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: 2.7.0
151
+ version: 3.0.0
152
152
  required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  requirements:
154
154
  - - ">="