spatial_features 3.0.2 → 3.1.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: 57499f73e1190669ab1f3b5893c718db536fda282cce4a91bb0936908c5b2548
4
- data.tar.gz: 0eb2e143c321b8e4e0dc498673d4a3c82e6d8d66df131a6ce445654a2f874772
3
+ metadata.gz: 9578faf8d4205e8b25b7039b99df9ead3f03f13d82568277930c8824adb48980
4
+ data.tar.gz: 16a5be2783383686f570f598edd8ecf3da6350fb92d5b393618f8be919ab8c79
5
5
  SHA512:
6
- metadata.gz: 8dca234339ac5c209752e01ae0eea025f8ad88e51480b73d4d5ec3beed2ebd019c58f4c96ba56a25f0655611474eea396ee0da0be8d13ece5db0b279d5de2e27
7
- data.tar.gz: 72f3fbceb533ffad03a849cf7d3caed587749d0d3d3a6830538beb59787588fc67803c965b3ad7fed10512d3cc3aecdc9878f45c8cbf52a1656746289b3e598d
6
+ metadata.gz: 772ab77070751ca764ab8a06cf5260038be3cae8461c6e9c7fa894e644d2164cd8905281c43d0eab48b7ab2f06227b01da809687ec4ffb7bc1ade359c7097eea
7
+ data.tar.gz: da9f6d66e79f85362f4c6af9e3dc8400b4f6fb51bf0cb5ba84114ccb47b4541e59614d162271877c6d20d9d342fbc9a86b48de7e8a5a1de15b27c7136c09f3b3
data/README.md CHANGED
@@ -181,3 +181,18 @@ add_column :features, :tilegeom, :geometry
181
181
  add_index :features, :tilegeom, :using => :gist
182
182
  Feature.update_all('tilegeom = ST_Transform(geom, 3857)')
183
183
  ```
184
+
185
+ ## Testing
186
+
187
+ Create a postgres database:
188
+ ```bash
189
+ createdb spatial_features_test
190
+ ```
191
+
192
+ There are multiple gemfiles available for testing against different Rails versions. Set `BUNDLE_GEMFILE` to target them, e.g.
193
+
194
+ ```bash
195
+ bundle install
196
+ BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle install
197
+ BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle exec rspec
198
+ ```
@@ -1,8 +1,12 @@
1
1
  module PostGISTypes
2
2
  def initialize_type_map(m = type_map)
3
3
  super
4
- register_class_with_limit m, 'geometry', ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID::SpecializedString
5
- register_class_with_limit m, 'geography', ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID::SpecializedString
4
+ %w[
5
+ geography
6
+ geometry
7
+ ].each do |geo_type|
8
+ m.register_type geo_type, ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::OID::SpecializedString.new(geo_type.to_sym)
9
+ end
6
10
  end
7
11
  end
8
12
 
@@ -56,7 +56,7 @@ module SpatialFeatures
56
56
  within_buffer(other, 0, options)
57
57
  end
58
58
 
59
- def within_buffer(other, buffer_in_meters = 0, **options)
59
+ def within_buffer(other, buffer_in_meters = 0, options = {})
60
60
  return none if other.is_a?(ActiveRecord::Base) && other.new_record?
61
61
 
62
62
  # Cache only works on single records, not scopes.
@@ -15,7 +15,7 @@ module SpatialFeatures
15
15
 
16
16
  def each_record(&block)
17
17
  {'Polygon' => 'POLYGON', 'LineString' => 'LINE', 'Point' => 'POINT'}.each do |kml_type, sql_type|
18
- Nokogiri::XML(@data).css(kml_type).each do |feature|
18
+ kml_document.css(kml_type).each do |feature|
19
19
  if placemark = feature.ancestors('Placemark').first
20
20
  name = placemark.css('name').text
21
21
  metadata = extract_metadata(placemark)
@@ -35,6 +35,14 @@ module SpatialFeatures
35
35
  end
36
36
  end
37
37
 
38
+ def kml_document
39
+ @kml_document ||= begin
40
+ doc = Nokogiri::XML(@data)
41
+ raise ImportError, "Invalid KML document (root node was '#{doc.root&.name}')" unless doc.root&.name.to_s.casecmp?('kml')
42
+ doc
43
+ end
44
+ end
45
+
38
46
  def blank_feature?(feature)
39
47
  feature.css('coordinates').text.blank?
40
48
  end
@@ -1,3 +1,3 @@
1
1
  module SpatialFeatures
2
- VERSION = "3.0.2"
2
+ VERSION = "3.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spatial_features
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Wallace
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-02-24 00:00:00.000000000 Z
12
+ date: 2022-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,20 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.2'
20
+ version: '6'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7.0'
23
+ version: '8'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '4.2'
30
+ version: '6'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7.0'
33
+ version: '8'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: delayed_job_active_record
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -91,16 +91,16 @@ dependencies:
91
91
  name: nokogiri
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '1.6'
96
+ version: '0'
97
97
  type: :runtime
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '1.6'
103
+ version: '0'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: pg
106
106
  requirement: !ruby/object:Gem::Requirement
@@ -129,6 +129,20 @@ dependencies:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '3.5'
132
+ - !ruby/object:Gem::Dependency
133
+ name: pry-byebug
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
132
146
  description: Adds spatial methods to a model.
133
147
  email:
134
148
  - contact@culturecode.ca