spatial_features 3.0.2 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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