geos-extensions 0.5.0 → 1.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/Gemfile +9 -5
- data/MIT-LICENSE +1 -1
- data/README.rdoc +16 -5
- data/geos-extensions.gemspec +2 -2
- data/lib/geos/coordinate_sequence.rb +2 -2
- data/lib/geos/extensions/exceptions.rb +27 -0
- data/lib/geos/extensions/version.rb +1 -1
- data/lib/geos/geometry.rb +26 -26
- data/lib/geos/geometry_collection.rb +3 -3
- data/lib/geos/google_maps/api_3.rb +1 -1
- data/lib/geos/line_string.rb +2 -2
- data/lib/geos/multi_line_string.rb +1 -1
- data/lib/geos/multi_point.rb +1 -1
- data/lib/geos/multi_polygon.rb +1 -1
- data/lib/geos/point.rb +4 -4
- data/lib/geos/polygon.rb +2 -2
- data/lib/geos_extensions.rb +20 -15
- data/test/google_maps_api_2_tests.rb +1 -1
- data/test/google_maps_api_3_tests.rb +1 -1
- data/test/google_maps_api_common_tests.rb +2 -2
- data/test/google_maps_polyline_encoder_tests.rb +1 -1
- data/test/helper_tests.rb +1 -1
- data/test/misc_tests.rb +1 -1
- data/test/reader_tests.rb +27 -1
- data/test/writer_tests.rb +1 -1
- data/test/yaml_tests.rb +7 -16
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f5adfee693cca7bcf4ddf2aa10487d225c0c542
|
4
|
+
data.tar.gz: ec1a90597c0676234ea1493331aff022f89699fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60eb6880603184b2545c6642ca97e870dfd8f87fccc1fc517fa959c532bcb50b4919a41025a5b085128d098d0324240c20d8b8747e4bfec130480f20052b8e5d
|
7
|
+
data.tar.gz: cfd7ee85ece68614b1c271751de00c9664273420c56cd28d73066d4db8e95dca29541ba542679a3ae4d2a274400ba0930786ec8662ed2b23620c789e05e20e0e
|
data/Gemfile
CHANGED
@@ -6,12 +6,16 @@ gem "rdoc", "~> 3.12"
|
|
6
6
|
gem "rake", "~> 10.0"
|
7
7
|
gem "minitest"
|
8
8
|
gem "minitest-reporters"
|
9
|
-
gem "guard-minitest"
|
10
|
-
gem "simplecov"
|
11
9
|
|
12
|
-
|
13
|
-
gem
|
14
|
-
gem
|
10
|
+
platforms :rbx do
|
11
|
+
gem 'rubysl', '~> 2.0'
|
12
|
+
gem 'rubinius-developer_tools'
|
13
|
+
end
|
14
|
+
|
15
|
+
if RUBY_VERSION >= '1.9'
|
16
|
+
gem "simplecov"
|
17
|
+
gem "guard"
|
18
|
+
gem 'guard-minitest'
|
15
19
|
end
|
16
20
|
|
17
21
|
if File.exists?('Gemfile.local')
|
data/MIT-LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
|
-
=
|
2
|
+
= GEOS Extensions
|
3
3
|
|
4
|
-
The
|
4
|
+
The GEOS Extensions library (GEL) is a set of utilities and tools that
|
5
5
|
extend the GEOS Ruby bindings module. From http://geos.refractions.net/ ...
|
6
6
|
|
7
7
|
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology
|
@@ -21,7 +21,7 @@ in the geos-extensions gemspec.
|
|
21
21
|
|
22
22
|
The ffi-geos gem is available at https://github.com/dark-panda/ffi-geos .
|
23
23
|
|
24
|
-
|
24
|
+
GEL contains a number of enhancements to the GEOS Ruby library:
|
25
25
|
|
26
26
|
* a host of helper methods to make reading and writing to and from WKT
|
27
27
|
and WKB easier. For instance, rather than
|
@@ -48,7 +48,7 @@ ZGEL contains a number of enhancements to the GEOS Ruby library:
|
|
48
48
|
|
49
49
|
== Google Maps API Output
|
50
50
|
|
51
|
-
Starting with version 0.1.0,
|
51
|
+
Starting with version 0.1.0, GEL supports both Google Maps API
|
52
52
|
version 2 and version 3 style outputs. By default and for the sake of
|
53
53
|
backwards compatibility, API version 2 output will remain the default
|
54
54
|
but as Google has deprecated API version 2, so shall we at some point
|
@@ -75,7 +75,18 @@ version 2 since switching between the two is pretty painless.
|
|
75
75
|
This extension used to contain a bunch of extensions to ActiveRecord, but as of
|
76
76
|
version 0.3.0 we have decided to strip those extensions out and move them into
|
77
77
|
their own gem called activerecord-spatial available at
|
78
|
-
https://github.com/
|
78
|
+
https://github.com/dark-panda/activerecord-spatial .
|
79
|
+
|
80
|
+
== Error Handling in 1.0+
|
81
|
+
|
82
|
+
Starting with GEL 1.0.0, parser exceptions raised from methods like
|
83
|
+
`Geos.from_g_lat_lng` and `Geos.from_box2d` are now instances of
|
84
|
+
`Geos::Extensions::InvalidGLatLngFormatError` and `Geos::Extensions::InvalidBox2DError`
|
85
|
+
respectively, which themselves are inherited from `Geos::ParseError`,
|
86
|
+
`Geos::Error` and `RuntimeError`. This reflects similar changes in ffi-geos
|
87
|
+
1.0.0. For compatibility purposes with older versions of ffi-geos and the
|
88
|
+
native geos library, the exception classes in `Geos` will be created for
|
89
|
+
you if they aren't already defined.
|
79
90
|
|
80
91
|
== Thanks
|
81
92
|
|
data/geos-extensions.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.authors = ["J Smith"]
|
11
11
|
s.description = "Extensions for the GEOS library."
|
12
12
|
s.summary = s.description
|
13
|
-
s.email = "
|
13
|
+
s.email = "dark.panda@gmail.com"
|
14
14
|
s.license = "MIT"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.rdoc"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.files = `git ls-files`.split($\)
|
19
19
|
s.executables = s.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
20
20
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
21
|
-
s.homepage = "http://github.com/
|
21
|
+
s.homepage = "http://github.com/dark-panda/geos-extensions"
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
24
24
|
s.add_dependency("ffi-geos", [">= 0.1"])
|
@@ -74,7 +74,7 @@ module Geos
|
|
74
74
|
}
|
75
75
|
end
|
76
76
|
end
|
77
|
-
|
77
|
+
alias_method :to_jsonable, :as_json
|
78
78
|
|
79
79
|
def as_geojson(options = {})
|
80
80
|
{
|
@@ -82,7 +82,7 @@ module Geos
|
|
82
82
|
:coordinates => self.to_a
|
83
83
|
}
|
84
84
|
end
|
85
|
-
|
85
|
+
alias_method :to_geojsonable, :as_geojson
|
86
86
|
|
87
87
|
def to_geojson(options = {})
|
88
88
|
self.to_geojsonable(options).to_json
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
module Geos
|
3
|
+
unless defined?(Geos::Error)
|
4
|
+
class Error < ::RuntimeError
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
unless defined?(Geos::ParseError)
|
9
|
+
class ParseError < Error
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module Extensions
|
14
|
+
class InvalidGLatLngFormatError < Geos::ParseError
|
15
|
+
def initialize
|
16
|
+
super("Invalid GLatLng format")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class InvalidBox2DError < Geos::ParseError
|
21
|
+
def initialize
|
22
|
+
super("Invalid BOX2D")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/lib/geos/geometry.rb
CHANGED
@@ -93,8 +93,8 @@ module Geos
|
|
93
93
|
@upper_left = Geos::wkt_reader_singleton.read("POINT(#{cs.get_x(3)} #{cs.get_y(3)})")
|
94
94
|
end
|
95
95
|
end
|
96
|
-
|
97
|
-
|
96
|
+
alias_method :nw, :upper_left
|
97
|
+
alias_method :northwest, :upper_left
|
98
98
|
|
99
99
|
# Returns a Point for the envelope's upper right coordinate.
|
100
100
|
def upper_right
|
@@ -105,8 +105,8 @@ module Geos
|
|
105
105
|
@upper_right = Geos::wkt_reader_singleton.read("POINT(#{cs.get_x(2)} #{cs.get_y(2)})")
|
106
106
|
end
|
107
107
|
end
|
108
|
-
|
109
|
-
|
108
|
+
alias_method :ne, :upper_right
|
109
|
+
alias_method :northeast, :upper_right
|
110
110
|
|
111
111
|
# Returns a Point for the envelope's lower right coordinate.
|
112
112
|
def lower_right
|
@@ -117,8 +117,8 @@ module Geos
|
|
117
117
|
@lower_right = Geos::wkt_reader_singleton.read("POINT(#{cs.get_x(1)} #{cs.get_y(1)})")
|
118
118
|
end
|
119
119
|
end
|
120
|
-
|
121
|
-
|
120
|
+
alias_method :se, :lower_right
|
121
|
+
alias_method :southeast, :lower_right
|
122
122
|
|
123
123
|
# Returns a Point for the envelope's lower left coordinate.
|
124
124
|
def lower_left
|
@@ -129,8 +129,8 @@ module Geos
|
|
129
129
|
@lower_left = Geos::wkt_reader_singleton.read("POINT(#{cs.get_x(0)} #{cs.get_y(0)})")
|
130
130
|
end
|
131
131
|
end
|
132
|
-
|
133
|
-
|
132
|
+
alias_method :sw, :lower_left
|
133
|
+
alias_method :southwest, :lower_left
|
134
134
|
|
135
135
|
# Northern-most Y coordinate.
|
136
136
|
def top
|
@@ -140,8 +140,8 @@ module Geos
|
|
140
140
|
@top = self.upper_right.y
|
141
141
|
end
|
142
142
|
end
|
143
|
-
|
144
|
-
|
143
|
+
alias_method :n, :top
|
144
|
+
alias_method :north, :top
|
145
145
|
|
146
146
|
# Eastern-most X coordinate.
|
147
147
|
def right
|
@@ -151,8 +151,8 @@ module Geos
|
|
151
151
|
@right = self.upper_right.x
|
152
152
|
end
|
153
153
|
end
|
154
|
-
|
155
|
-
|
154
|
+
alias_method :e, :right
|
155
|
+
alias_method :east, :right
|
156
156
|
|
157
157
|
# Southern-most Y coordinate.
|
158
158
|
def bottom
|
@@ -162,8 +162,8 @@ module Geos
|
|
162
162
|
@bottom = self.lower_left.y
|
163
163
|
end
|
164
164
|
end
|
165
|
-
|
166
|
-
|
165
|
+
alias_method :s, :bottom
|
166
|
+
alias_method :south, :bottom
|
167
167
|
|
168
168
|
# Western-most X coordinate.
|
169
169
|
def left
|
@@ -173,8 +173,8 @@ module Geos
|
|
173
173
|
@left = self.lower_left.x
|
174
174
|
end
|
175
175
|
end
|
176
|
-
|
177
|
-
|
176
|
+
alias_method :w, :left
|
177
|
+
alias_method :west, :left
|
178
178
|
|
179
179
|
# Spits out a bounding box the way Flickr likes it. You can set the
|
180
180
|
# precision of the rounding using the :precision option. In order to
|
@@ -203,21 +203,21 @@ module Geos
|
|
203
203
|
def lat_lng
|
204
204
|
self.centroid.to_a[0, 2].reverse
|
205
205
|
end
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
206
|
+
alias_method :lat_long, :lat_lng
|
207
|
+
alias_method :latlng, :lat_lng
|
208
|
+
alias_method :latlong, :lat_lng
|
209
|
+
alias_method :lat_lon, :lat_lng
|
210
|
+
alias_method :latlon, :lat_lng
|
211
211
|
|
212
212
|
# Returns the X and Y coordinates of the Geometry's centroid in an Array.
|
213
213
|
def lng_lat
|
214
214
|
self.centroid.to_a[0, 2]
|
215
215
|
end
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
216
|
+
alias_method :long_lat, :lng_lat
|
217
|
+
alias_method :lnglat, :lng_lat
|
218
|
+
alias_method :longlat, :lng_lat
|
219
|
+
alias_method :lon_lat, :lng_lat
|
220
|
+
alias_method :lonlat, :lng_lat
|
221
221
|
|
222
222
|
# Spits out a Hash containing the cardinal points that describe the
|
223
223
|
# Geometry's bbox.
|
@@ -16,7 +16,7 @@ module Geos
|
|
16
16
|
def [](*args)
|
17
17
|
self.to_a[*args]
|
18
18
|
end
|
19
|
-
|
19
|
+
alias_method :slice, :[]
|
20
20
|
end
|
21
21
|
|
22
22
|
# Returns the last geometry from the collection.
|
@@ -30,7 +30,7 @@ module Geos
|
|
30
30
|
p.to_jsonable options
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
33
|
+
alias_method :to_jsonable, :as_json
|
34
34
|
|
35
35
|
# Build some XmlMarkup for KML.
|
36
36
|
def to_kml(*args)
|
@@ -54,7 +54,7 @@ module Geos
|
|
54
54
|
:geometries => self.to_a.collect { |g| g.to_geojsonable(options) }
|
55
55
|
}
|
56
56
|
end
|
57
|
-
|
57
|
+
alias_method :to_geojsonable, :as_geojson
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -181,7 +181,7 @@ module Geos::GoogleMaps
|
|
181
181
|
p.to_g_polyline_api3(polyline_options, options)
|
182
182
|
end
|
183
183
|
end
|
184
|
-
|
184
|
+
alias_method :to_g_polylines_api3, :to_g_polyline_api3
|
185
185
|
|
186
186
|
# Returns a Ruby Array of Polygons for each geometry in the
|
187
187
|
# collection. If the :single option is set, a single Polygon object will
|
data/lib/geos/line_string.rb
CHANGED
@@ -4,12 +4,12 @@ module Geos
|
|
4
4
|
def as_json(options = {})
|
5
5
|
self.coord_seq.as_json(options)
|
6
6
|
end
|
7
|
-
|
7
|
+
alias_method :to_jsonable, :as_json
|
8
8
|
|
9
9
|
def as_geojson(options = {})
|
10
10
|
self.coord_seq.to_geojsonable(options)
|
11
11
|
end
|
12
|
-
|
12
|
+
alias_method :to_geojsonable, :as_geojson
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
data/lib/geos/multi_point.rb
CHANGED
data/lib/geos/multi_polygon.rb
CHANGED
data/lib/geos/point.rb
CHANGED
@@ -12,7 +12,7 @@ module Geos
|
|
12
12
|
latitude lat north south n s
|
13
13
|
}.each do |name|
|
14
14
|
self.class_eval(<<-EOF, __FILE__, __LINE__ + 1)
|
15
|
-
|
15
|
+
alias_method :#{name}, :y
|
16
16
|
EOF
|
17
17
|
end
|
18
18
|
|
@@ -27,7 +27,7 @@ module Geos
|
|
27
27
|
longitude lng east west e w
|
28
28
|
}.each do |name|
|
29
29
|
self.class_eval(<<-EOF, __FILE__, __LINE__ + 1)
|
30
|
-
|
30
|
+
alias_method :#{name}, :x
|
31
31
|
EOF
|
32
32
|
end
|
33
33
|
|
@@ -106,7 +106,7 @@ module Geos
|
|
106
106
|
{ :type => 'point', :lat => cs.get_y(0), :lng => cs.get_x(0) }
|
107
107
|
end
|
108
108
|
end
|
109
|
-
|
109
|
+
alias_method :to_jsonable, :as_json
|
110
110
|
|
111
111
|
def as_geojson(options = {})
|
112
112
|
{
|
@@ -114,7 +114,7 @@ module Geos
|
|
114
114
|
:coordinates => self.to_a
|
115
115
|
}
|
116
116
|
end
|
117
|
-
|
117
|
+
alias_method :to_geojsonable, :as_geojson
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
data/lib/geos/polygon.rb
CHANGED
@@ -128,7 +128,7 @@ module Geos
|
|
128
128
|
ret
|
129
129
|
end
|
130
130
|
end
|
131
|
-
|
131
|
+
alias_method :to_jsonable, :as_json
|
132
132
|
|
133
133
|
# Options:
|
134
134
|
#
|
@@ -152,7 +152,7 @@ module Geos
|
|
152
152
|
|
153
153
|
ret
|
154
154
|
end
|
155
|
-
|
155
|
+
alias_method :to_geojsonable, :as_geojson
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
data/lib/geos_extensions.rb
CHANGED
@@ -8,27 +8,32 @@ end
|
|
8
8
|
|
9
9
|
require 'geos' unless defined?(Geos)
|
10
10
|
|
11
|
-
require File.join(File.dirname(__FILE__), *%w{ geos extensions version })
|
12
|
-
require File.join(File.dirname(__FILE__), *%w{ geos yaml })
|
13
|
-
|
14
11
|
# Some custom extensions to the SWIG-based Geos Ruby extension.
|
15
12
|
module Geos
|
16
13
|
GEOS_EXTENSIONS_BASE = File.join(File.dirname(__FILE__))
|
17
|
-
GEOS_EXTENSIONS_VERSION = Geos::Extensions::VERSION
|
18
14
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
15
|
+
%w{
|
16
|
+
extensions/version
|
17
|
+
extensions/exceptions
|
18
|
+
yaml
|
19
|
+
geometry
|
20
|
+
coordinate_sequence
|
21
|
+
point
|
22
|
+
line_string
|
23
|
+
polygon
|
24
|
+
geometry_collection
|
25
|
+
multi_polygon
|
26
|
+
multi_line_string
|
27
|
+
multi_point
|
28
|
+
}.each do |file|
|
29
|
+
require File.join(GEOS_EXTENSIONS_BASE, "geos", file)
|
30
|
+
end
|
28
31
|
|
29
32
|
autoload :Helper, File.join(GEOS_EXTENSIONS_BASE, *%w{ geos geos_helper })
|
30
33
|
autoload :GoogleMaps, File.join(GEOS_EXTENSIONS_BASE, *%w{ geos google_maps })
|
31
34
|
|
35
|
+
GEOS_EXTENSIONS_VERSION = Geos::Extensions::VERSION
|
36
|
+
|
32
37
|
REGEXP_FLOAT = /(-?\d*(?:\.\d+)?|-?\d*(?:\.\d+?)[eE][-+]?\d+)/
|
33
38
|
REGEXP_LAT_LNG = /#{REGEXP_FLOAT}\s*,\s*#{REGEXP_FLOAT}/
|
34
39
|
|
@@ -183,7 +188,7 @@ module Geos
|
|
183
188
|
when REGEXP_G_LAT_LNG_BOUNDS, REGEXP_G_LAT_LNG
|
184
189
|
$~.captures
|
185
190
|
else
|
186
|
-
raise
|
191
|
+
raise Geos::Extensions::InvalidGLatLngFormatError.new
|
187
192
|
end
|
188
193
|
|
189
194
|
geom = if match_data.length > 3
|
@@ -231,7 +236,7 @@ module Geos
|
|
231
236
|
when REGEXP_BOX2D
|
232
237
|
$~.captures
|
233
238
|
else
|
234
|
-
raise
|
239
|
+
raise Geos::Extensions::InvalidBox2DError.new
|
235
240
|
end
|
236
241
|
|
237
242
|
coords = []
|
@@ -130,7 +130,7 @@ class GoogleMapsApiCommonTests
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
-
class Api2Tests <
|
133
|
+
class Api2Tests < Minitest::Test
|
134
134
|
include Tests
|
135
135
|
|
136
136
|
def setup
|
@@ -138,7 +138,7 @@ class GoogleMapsApiCommonTests
|
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
141
|
-
class Api3Tests <
|
141
|
+
class Api3Tests < Minitest::Test
|
142
142
|
include Tests
|
143
143
|
|
144
144
|
def setup
|
data/test/helper_tests.rb
CHANGED
data/test/misc_tests.rb
CHANGED
data/test/reader_tests.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
$: << File.dirname(__FILE__)
|
3
3
|
require 'test_helper'
|
4
4
|
|
5
|
-
class GeosReaderTests <
|
5
|
+
class GeosReaderTests < Minitest::Test
|
6
6
|
include TestHelper
|
7
7
|
|
8
8
|
def test_from_wkb_bin
|
@@ -105,6 +105,19 @@ class GeosReaderTests < MiniTest::Unit::TestCase
|
|
105
105
|
assert_equal(10.01, point.lng)
|
106
106
|
end
|
107
107
|
|
108
|
+
def test_from_g_lat_lng_exceptions
|
109
|
+
assert_raises(Geos::Extensions::InvalidGLatLngFormatError) do
|
110
|
+
Geos.from_g_lat_lng('foo')
|
111
|
+
end
|
112
|
+
|
113
|
+
begin
|
114
|
+
Geos.from_g_lat_lng('foo')
|
115
|
+
rescue => e
|
116
|
+
assert_kind_of(RuntimeError, e)
|
117
|
+
assert_kind_of(Geos::ParseError, e)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
108
121
|
def test_from_g_lat_lng_bounds
|
109
122
|
bounds = Geos.from_g_lat_lng(BOUNDS_G_LAT_LNG)
|
110
123
|
|
@@ -182,6 +195,19 @@ class GeosReaderTests < MiniTest::Unit::TestCase
|
|
182
195
|
assert_equal('POINT (0 0)', Geos.read('BOX(0 0, 0 0)').to_wkt(:trim => true))
|
183
196
|
end
|
184
197
|
|
198
|
+
def test_from_box2d_exceptions
|
199
|
+
assert_raises(Geos::Extensions::InvalidBox2DError) do
|
200
|
+
Geos.from_box2d('foo')
|
201
|
+
end
|
202
|
+
|
203
|
+
begin
|
204
|
+
Geos.from_box2d('foo')
|
205
|
+
rescue => e
|
206
|
+
assert_kind_of(RuntimeError, e)
|
207
|
+
assert_kind_of(Geos::ParseError, e)
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
185
211
|
def test_allowed
|
186
212
|
assert_raises(ArgumentError) do
|
187
213
|
Geos.read(Geos.read(POINT_WKT), :allowed => [])
|
data/test/writer_tests.rb
CHANGED
data/test/yaml_tests.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
$: << File.dirname(__FILE__)
|
4
4
|
require 'test_helper'
|
5
5
|
|
6
|
-
class YamlTests <
|
6
|
+
class YamlTests < Minitest::Test
|
7
7
|
include TestHelper
|
8
8
|
|
9
9
|
# This is for 1.8 support, makes tests easier
|
@@ -11,20 +11,11 @@ class YamlTests < MiniTest::Unit::TestCase
|
|
11
11
|
YAML::ENGINE = 'syck'
|
12
12
|
end
|
13
13
|
|
14
|
-
def munge_expected(expected)
|
15
|
-
# Sych expects a space after the tag, psych does not
|
16
|
-
if YAML::ENGINE == 'syck'
|
17
|
-
expected.sub!(/\n/, " \n")
|
18
|
-
else
|
19
|
-
expected
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
14
|
def test_point_wkt
|
24
15
|
geom = Geos.read('POINT(5 7)')
|
25
16
|
yaml = YAML.dump(geom)
|
26
17
|
|
27
|
-
expected =
|
18
|
+
expected = <<-EOS
|
28
19
|
--- !ruby/object:Geos::Point
|
29
20
|
geom: POINT (5.0000000000000000 7.0000000000000000)
|
30
21
|
EOS
|
@@ -41,7 +32,7 @@ EOS
|
|
41
32
|
geom = Geos.read('LINESTRING (0 0, 10 10)')
|
42
33
|
yaml = YAML.dump(geom)
|
43
34
|
|
44
|
-
expected =
|
35
|
+
expected = <<-EOS
|
45
36
|
--- !ruby/object:Geos::LineString
|
46
37
|
geom: LINESTRING (0.0000000000000000 0.0000000000000000, 10.0000000000000000 10.0000000000000000)
|
47
38
|
EOS
|
@@ -65,13 +56,13 @@ EOS
|
|
65
56
|
geom = Geos.read('POLYGON ((0 0, 5 0, 5 5, 0 5, 0 0))')
|
66
57
|
yaml = YAML.dump(geom)
|
67
58
|
|
68
|
-
expected = if YAML::ENGINE == 'syck' || RUBY_ENGINE == 'jruby'
|
69
|
-
|
59
|
+
expected = if RUBY_VERSION < '2.2' && (YAML::ENGINE == 'syck' || RUBY_ENGINE == 'jruby')
|
60
|
+
<<-EOS
|
70
61
|
--- !ruby/object:Geos::Polygon
|
71
62
|
geom: POLYGON ((0.0000000000000000 0.0000000000000000, 5.0000000000000000 0.0000000000000000, 5.0000000000000000 5.0000000000000000, 0.0000000000000000 5.0000000000000000, 0.0000000000000000 0.0000000000000000))
|
72
63
|
EOS
|
73
64
|
else
|
74
|
-
|
65
|
+
<<-EOS
|
75
66
|
--- !ruby/object:Geos::Polygon
|
76
67
|
geom: POLYGON ((0.0000000000000000 0.0000000000000000, 5.0000000000000000 0.0000000000000000,
|
77
68
|
5.0000000000000000 5.0000000000000000, 0.0000000000000000 5.0000000000000000, 0.0000000000000000
|
@@ -92,7 +83,7 @@ EOS
|
|
92
83
|
geom = Geos.read('GEOMETRYCOLLECTION (POINT(5 7))')
|
93
84
|
yaml = YAML.dump(geom)
|
94
85
|
|
95
|
-
expected =
|
86
|
+
expected = <<-EOS
|
96
87
|
--- !ruby/object:Geos::GeometryCollection
|
97
88
|
geom: GEOMETRYCOLLECTION (POINT (5.0000000000000000 7.0000000000000000))
|
98
89
|
EOS
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geos-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi-geos
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.1'
|
27
27
|
description: Extensions for the GEOS library.
|
28
|
-
email:
|
28
|
+
email: dark.panda@gmail.com
|
29
29
|
executables: []
|
30
30
|
extensions: []
|
31
31
|
extra_rdoc_files:
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- geos-extensions.gemspec
|
41
41
|
- lib/geos-extensions.rb
|
42
42
|
- lib/geos/coordinate_sequence.rb
|
43
|
+
- lib/geos/extensions/exceptions.rb
|
43
44
|
- lib/geos/extensions/version.rb
|
44
45
|
- lib/geos/geometry.rb
|
45
46
|
- lib/geos/geometry_collection.rb
|
@@ -69,7 +70,7 @@ files:
|
|
69
70
|
- test/test_helper.rb
|
70
71
|
- test/writer_tests.rb
|
71
72
|
- test/yaml_tests.rb
|
72
|
-
homepage: http://github.com/
|
73
|
+
homepage: http://github.com/dark-panda/geos-extensions
|
73
74
|
licenses:
|
74
75
|
- MIT
|
75
76
|
metadata: {}
|
@@ -89,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
90
|
version: '0'
|
90
91
|
requirements: []
|
91
92
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.
|
93
|
+
rubygems_version: 2.5.1
|
93
94
|
signing_key:
|
94
95
|
specification_version: 4
|
95
96
|
summary: Extensions for the GEOS library.
|