rgeo 0.1.20 → 0.1.21

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.
Files changed (55) hide show
  1. data/History.rdoc +10 -0
  2. data/README.rdoc +38 -35
  3. data/Version +1 -1
  4. data/lib/active_record/connection_adapters/mysql2spatial_adapter.rb +1 -3
  5. data/lib/active_record/connection_adapters/mysqlspatial_adapter.rb +4 -4
  6. data/lib/active_record/connection_adapters/postgis_adapter.rb +426 -0
  7. data/lib/active_record/connection_adapters/spatialite_adapter.rb +488 -0
  8. data/lib/rgeo.rb +10 -29
  9. data/lib/rgeo/active_record/arel_modifications.rb +1 -0
  10. data/lib/rgeo/active_record/base_modifications.rb +27 -10
  11. data/lib/rgeo/active_record/common.rb +128 -0
  12. data/lib/rgeo/active_record/mysql_common.rb +14 -51
  13. data/lib/rgeo/cartesian/factory.rb +2 -2
  14. data/lib/rgeo/coord_sys.rb +1 -1
  15. data/lib/rgeo/coord_sys/proj4.rb +3 -2
  16. data/lib/rgeo/error.rb +0 -3
  17. data/lib/rgeo/feature.rb +1 -3
  18. data/lib/rgeo/feature/factory_generator.rb +8 -0
  19. data/lib/rgeo/geography/factory.rb +2 -2
  20. data/lib/rgeo/geography/interface.rb +3 -3
  21. data/lib/rgeo/geos/zm_factory.rb +2 -2
  22. data/lib/rgeo/wkrep/wkb_parser.rb +35 -36
  23. data/lib/rgeo/wkrep/wkt_parser.rb +36 -38
  24. data/test/active_record/common_setup_methods.rb +129 -0
  25. data/test/active_record/readme.txt +10 -0
  26. data/test/active_record/tc_mysqlspatial.rb +22 -71
  27. data/test/active_record/tc_postgis.rb +282 -0
  28. data/test/active_record/tc_spatialite.rb +198 -0
  29. data/test/coord_sys/tc_proj4.rb +12 -5
  30. data/test/projected_geography/tc_geometry_collection.rb +1 -1
  31. data/test/projected_geography/tc_line_string.rb +1 -1
  32. data/test/projected_geography/tc_multi_line_string.rb +1 -1
  33. data/test/projected_geography/tc_multi_point.rb +1 -1
  34. data/test/projected_geography/tc_multi_polygon.rb +2 -2
  35. data/test/projected_geography/tc_point.rb +4 -4
  36. data/test/projected_geography/tc_polygon.rb +1 -1
  37. data/test/simple_mercator/tc_geometry_collection.rb +1 -1
  38. data/test/simple_mercator/tc_line_string.rb +1 -1
  39. data/test/simple_mercator/tc_multi_line_string.rb +1 -1
  40. data/test/simple_mercator/tc_multi_point.rb +1 -1
  41. data/test/simple_mercator/tc_multi_polygon.rb +2 -2
  42. data/test/simple_mercator/tc_point.rb +4 -4
  43. data/test/simple_mercator/tc_polygon.rb +1 -1
  44. data/test/simple_mercator/tc_window.rb +1 -1
  45. data/test/spherical_geography/tc_geometry_collection.rb +1 -1
  46. data/test/spherical_geography/tc_line_string.rb +1 -1
  47. data/test/spherical_geography/tc_multi_line_string.rb +1 -1
  48. data/test/spherical_geography/tc_multi_point.rb +1 -1
  49. data/test/spherical_geography/tc_multi_polygon.rb +2 -2
  50. data/test/spherical_geography/tc_point.rb +4 -4
  51. data/test/spherical_geography/tc_polygon.rb +1 -1
  52. data/test/tc_oneoff.rb +3 -3
  53. data/test/wkrep/tc_wkb_parser.rb +14 -14
  54. data/test/wkrep/tc_wkt_parser.rb +37 -45
  55. metadata +10 -3
@@ -48,10 +48,10 @@ module RGeo
48
48
 
49
49
 
50
50
  def setup
51
- @factory = ::RGeo::Geography.spherical
52
- @zfactory = ::RGeo::Geography.spherical(:support_z_coordinate => true)
53
- @mfactory = ::RGeo::Geography.spherical(:support_m_coordinate => true)
54
- @zmfactory = ::RGeo::Geography.spherical(:support_z_coordinate => true, :support_m_coordinate => true)
51
+ @factory = ::RGeo::Geography.spherical_factory
52
+ @zfactory = ::RGeo::Geography.spherical_factory(:support_z_coordinate => true)
53
+ @mfactory = ::RGeo::Geography.spherical_factory(:support_m_coordinate => true)
54
+ @zmfactory = ::RGeo::Geography.spherical_factory(:support_z_coordinate => true, :support_m_coordinate => true)
55
55
  end
56
56
 
57
57
 
@@ -48,7 +48,7 @@ module RGeo
48
48
 
49
49
 
50
50
  def setup
51
- @factory = ::RGeo::Geography.spherical
51
+ @factory = ::RGeo::Geography.spherical_factory
52
52
  end
53
53
 
54
54
 
data/test/tc_oneoff.rb CHANGED
@@ -45,9 +45,9 @@ module RGeo
45
45
 
46
46
 
47
47
  def setup
48
- @mercator_factory = ::RGeo::Geography.simple_mercator
49
- @spherical_factory = ::RGeo::Geography.spherical(:support_z_coordinate => true)
50
- @projected_factory = ::RGeo::Geography.projected(:projection_proj4 => '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs', :projection_srid => 3857, :support_z_coordinate => true)
48
+ @mercator_factory = ::RGeo::Geography.simple_mercator_factory
49
+ @spherical_factory = ::RGeo::Geography.spherical_factory(:support_z_coordinate => true)
50
+ @projected_factory = ::RGeo::Geography.projected_factory(:projection_proj4 => '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs', :projection_srid => 3857, :support_z_coordinate => true)
51
51
  @geos_factory = ::RGeo::Geos.factory(:srid => 4326, :support_z_coordinate => true)
52
52
  @cartesian_factory = ::RGeo::Cartesian.simple_factory(:srid => 1, :support_z_coordinate => true)
53
53
  @entity_factory = ::RGeo::GeoJSON::EntityFactory.instance
@@ -65,7 +65,7 @@ module RGeo
65
65
 
66
66
  def test_point_with_ewkb_z
67
67
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
68
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
68
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
69
69
  obj_ = parser_.parse_hex('00800000013ff000000000000040000000000000004008000000000000')
70
70
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
71
71
  assert_equal(3, obj_.z)
@@ -75,7 +75,7 @@ module RGeo
75
75
 
76
76
  def test_point_with_ewkb_m
77
77
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
78
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
78
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
79
79
  obj_ = parser_.parse_hex('00400000013ff000000000000040000000000000004008000000000000')
80
80
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
81
81
  assert_equal(3, obj_.m)
@@ -85,7 +85,7 @@ module RGeo
85
85
 
86
86
  def test_point_with_ewkb_zm
87
87
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
88
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
88
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
89
89
  obj_ = parser_.parse_hex('00c00000013ff0000000000000400000000000000040080000000000004010000000000000')
90
90
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
91
91
  assert_equal(3, obj_.z)
@@ -95,7 +95,7 @@ module RGeo
95
95
 
96
96
  def test_point_with_wkb12_z
97
97
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
98
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_wkb12 => true)
98
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_wkb12 => true)
99
99
  obj_ = parser_.parse_hex('00000003e93ff000000000000040000000000000004008000000000000')
100
100
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
101
101
  assert_equal(3, obj_.z)
@@ -105,7 +105,7 @@ module RGeo
105
105
 
106
106
  def test_point_with_wkb12_m
107
107
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
108
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_wkb12 => true)
108
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_wkb12 => true)
109
109
  obj_ = parser_.parse_hex('00000007d13ff000000000000040000000000000004008000000000000')
110
110
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
111
111
  assert_equal(3, obj_.m)
@@ -115,7 +115,7 @@ module RGeo
115
115
 
116
116
  def test_point_with_wkb12_zm
117
117
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
118
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_wkb12 => true)
118
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_wkb12 => true)
119
119
  obj_ = parser_.parse_hex('0000000bb93ff0000000000000400000000000000040080000000000004010000000000000')
120
120
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
121
121
  assert_equal(3, obj_.z)
@@ -125,7 +125,7 @@ module RGeo
125
125
 
126
126
  def test_point_with_wkb12_z_without_wkb12_support
127
127
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
128
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_)
128
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_)
129
129
  assert_raise(::RGeo::Error::ParseError) do
130
130
  obj_ = parser_.parse_hex('00000003e93ff000000000000040000000000000004008000000000000')
131
131
  end
@@ -134,7 +134,7 @@ module RGeo
134
134
 
135
135
  def test_point_with_wkb12_z_without_enough_data
136
136
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
137
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_wkb12 => true)
137
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_wkb12 => true)
138
138
  assert_raise(::RGeo::Error::ParseError) do
139
139
  obj_ = parser_.parse_hex('00000003e93ff00000000000004000000000000000')
140
140
  end
@@ -143,7 +143,7 @@ module RGeo
143
143
 
144
144
  def test_point_with_ewkb_z_and_srid
145
145
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
146
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
146
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
147
147
  parser_.to_generate_factory do |config_|
148
148
  ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :srid => config_[:srid])
149
149
  end
@@ -167,7 +167,7 @@ module RGeo
167
167
 
168
168
  def test_linestring_with_ewkb_z
169
169
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
170
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
170
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
171
171
  obj_ = parser_.parse_hex('0080000002000000023ff000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000')
172
172
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
173
173
  assert_equal(2, obj_.num_points)
@@ -178,7 +178,7 @@ module RGeo
178
178
 
179
179
  def test_linestring_with_ewkb_z_and_srid
180
180
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
181
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
181
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
182
182
  parser_.to_generate_factory do |config_|
183
183
  ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :srid => config_[:srid])
184
184
  end
@@ -193,7 +193,7 @@ module RGeo
193
193
 
194
194
  def test_linestring_with_wkb12_z
195
195
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
196
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_wkb12 => true)
196
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_wkb12 => true)
197
197
  obj_ = parser_.parse_hex('00000003ea000000023ff000000000000040000000000000004008000000000000401000000000000040140000000000004018000000000000')
198
198
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
199
199
  assert_equal(2, obj_.num_points)
@@ -250,7 +250,7 @@ module RGeo
250
250
 
251
251
  def test_multipoint_with_ewkb_z
252
252
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
253
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
253
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
254
254
  obj_ = parser_.parse_hex('00800000040000000200800000013ff0000000000000400000000000000040140000000000000080000001400800000000000040100000000000004018000000000000')
255
255
  assert_equal(::RGeo::Feature::MultiPoint, obj_.geometry_type)
256
256
  assert_equal(2, obj_.num_geometries)
@@ -264,7 +264,7 @@ module RGeo
264
264
 
265
265
  def test_multipoint_ewkb_with_mixed_z
266
266
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
267
- parser_ = ::RGeo::WKRep::WKBParser.new(:default_factory => factory_, :support_ewkb => true)
267
+ parser_ = ::RGeo::WKRep::WKBParser.new(factory_, :support_ewkb => true)
268
268
  assert_raise(::RGeo::Error::ParseError) do
269
269
  obj_ = parser_.parse_hex('00800000040000000200800000013ff000000000000040000000000000004014000000000000000000000140080000000000004010000000000000')
270
270
  end
@@ -74,7 +74,7 @@ module RGeo
74
74
 
75
75
  def test_values_negative
76
76
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
77
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
77
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
78
78
  obj_ = parser_.parse('POINT(-1. -.5 -5.5)')
79
79
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
80
80
  assert_equal(-1.0, obj_.x)
@@ -102,7 +102,7 @@ module RGeo
102
102
 
103
103
  def test_point_with_z
104
104
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
105
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
105
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
106
106
  obj_ = parser_.parse('POINT(1 2 3)')
107
107
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
108
108
  assert_equal(3, obj_.z)
@@ -112,7 +112,7 @@ module RGeo
112
112
 
113
113
  def test_point_with_m
114
114
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
115
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
115
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
116
116
  obj_ = parser_.parse('POINT(1 2 3)')
117
117
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
118
118
  assert_equal(3, obj_.m)
@@ -122,7 +122,7 @@ module RGeo
122
122
 
123
123
  def test_point_with_too_many_coords
124
124
  factory_ = ::RGeo::Cartesian.preferred_factory
125
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
125
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
126
126
  assert_raise(::RGeo::Error::ParseError) do
127
127
  obj_ = parser_.parse('POINT(1 2 3)')
128
128
  end
@@ -131,7 +131,7 @@ module RGeo
131
131
 
132
132
  def test_point_wkt12_z
133
133
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
134
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
134
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
135
135
  obj_ = parser_.parse('POINT Z(1 2 3)')
136
136
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
137
137
  assert_equal(3, obj_.z)
@@ -141,7 +141,7 @@ module RGeo
141
141
 
142
142
  def test_point_wkt12_z_unsupported_factory
143
143
  factory_ = ::RGeo::Cartesian.preferred_factory
144
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
144
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
145
145
  assert_raise(::RGeo::Error::ParseError) do
146
146
  obj_ = parser_.parse('POINT Z(1 2 3)')
147
147
  end
@@ -150,7 +150,7 @@ module RGeo
150
150
 
151
151
  def test_point_wkt12_m
152
152
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
153
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
153
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
154
154
  obj_ = parser_.parse('POINT M(1 2 3)')
155
155
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
156
156
  assert_equal(3, obj_.m)
@@ -160,7 +160,7 @@ module RGeo
160
160
 
161
161
  def test_point_wkt12_m_with_factory_zm
162
162
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
163
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
163
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
164
164
  obj_ = parser_.parse('POINT M(1 2 3)')
165
165
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
166
166
  assert_equal(3, obj_.m)
@@ -170,7 +170,7 @@ module RGeo
170
170
 
171
171
  def test_point_wkt12_m_too_many_coords
172
172
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
173
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
173
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
174
174
  assert_raise(::RGeo::Error::ParseError) do
175
175
  obj_ = parser_.parse('POINT M(1 2 3 4)')
176
176
  end
@@ -179,7 +179,7 @@ module RGeo
179
179
 
180
180
  def test_point_wkt12_zm
181
181
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
182
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
182
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
183
183
  obj_ = parser_.parse('POINT ZM(1 2 3 4)')
184
184
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
185
185
  assert_equal(3, obj_.z)
@@ -189,7 +189,7 @@ module RGeo
189
189
 
190
190
  def test_point_wkt12_zm_not_enough_coords
191
191
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
192
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
192
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
193
193
  assert_raise(::RGeo::Error::ParseError) do
194
194
  obj_ = parser_.parse('POINT ZM(1 2 3)')
195
195
  end
@@ -198,7 +198,7 @@ module RGeo
198
198
 
199
199
  def test_point_ewkt_z
200
200
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
201
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_ewkt => true)
201
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_ewkt => true)
202
202
  obj_ = parser_.parse('POINT(1 2 3)')
203
203
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
204
204
  assert_equal(3, obj_.z)
@@ -208,7 +208,7 @@ module RGeo
208
208
 
209
209
  def test_point_ewkt_m
210
210
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
211
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_ewkt => true)
211
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_ewkt => true)
212
212
  obj_ = parser_.parse('POINTM(1 2 3)')
213
213
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
214
214
  assert_equal(3, obj_.m)
@@ -217,11 +217,7 @@ module RGeo
217
217
 
218
218
 
219
219
  def test_point_ewkt_with_srid
220
- factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
221
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_ewkt => true)
222
- parser_.to_generate_factory do |config_|
223
- ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true, :srid => config_[:srid])
224
- end
220
+ parser_ = ::RGeo::WKRep::WKTParser.new(::RGeo::Cartesian.method(:preferred_factory), :support_ewkt => true)
225
221
  obj_ = parser_.parse('SRID=1000;POINTM(1 2 3)')
226
222
  assert_equal(::RGeo::Feature::Point, obj_.geometry_type)
227
223
  assert_equal(3, obj_.m)
@@ -232,7 +228,7 @@ module RGeo
232
228
 
233
229
  def test_point_ewkt_m_too_many_coords
234
230
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
235
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_ewkt => true)
231
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_ewkt => true)
236
232
  assert_raise(::RGeo::Error::ParseError) do
237
233
  obj_ = parser_.parse('POINTM(1 2 3 4)')
238
234
  end
@@ -241,7 +237,7 @@ module RGeo
241
237
 
242
238
  def test_point_strict_wkt11_with_z
243
239
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
244
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :strict_wkt11 => true)
240
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :strict_wkt11 => true)
245
241
  assert_raise(::RGeo::Error::ParseError) do
246
242
  obj_ = parser_.parse('POINT(1 2 3)')
247
243
  end
@@ -250,7 +246,7 @@ module RGeo
250
246
 
251
247
  def test_point_non_ewkt_with_srid
252
248
  factory_ = ::RGeo::Cartesian.preferred_factory
253
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
249
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
254
250
  parser_.factory_generator = ::RGeo::Cartesian.method(:preferred_factory)
255
251
  assert_raise(::RGeo::Error::ParseError) do
256
252
  obj_ = parser_.parse('SRID=1000;POINT(1 2)')
@@ -260,7 +256,7 @@ module RGeo
260
256
 
261
257
  def test_linestring_basic
262
258
  factory_ = ::RGeo::Cartesian.preferred_factory
263
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
259
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
264
260
  obj_ = parser_.parse('LINESTRING(1 2, 3 4, 5 6)')
265
261
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
266
262
  assert_equal(3, obj_.num_points)
@@ -271,7 +267,7 @@ module RGeo
271
267
 
272
268
  def test_linestring_with_z
273
269
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
274
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
270
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
275
271
  obj_ = parser_.parse('LINESTRING(1 2 3, 4 5 6,7 8 9)')
276
272
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
277
273
  assert_equal(3, obj_.num_points)
@@ -282,7 +278,7 @@ module RGeo
282
278
 
283
279
  def test_linestring_with_inconsistent_coords
284
280
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
285
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
281
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
286
282
  assert_raise(::RGeo::Error::ParseError) do
287
283
  obj_ = parser_.parse('LINESTRING(1 2 3, 4 5,7 8 9)')
288
284
  end
@@ -291,7 +287,7 @@ module RGeo
291
287
 
292
288
  def test_linestring_wkt12_m
293
289
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
294
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
290
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
295
291
  obj_ = parser_.parse('LINESTRING M(1 2 3,5 6 7)')
296
292
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
297
293
  assert_equal(2, obj_.num_points)
@@ -303,11 +299,7 @@ module RGeo
303
299
 
304
300
 
305
301
  def test_linestring_ewkt_with_srid
306
- factory_ = ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true)
307
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_ewkt => true)
308
- parser_.to_generate_factory do |config_|
309
- ::RGeo::Cartesian.preferred_factory(:support_m_coordinate => true, :srid => config_[:srid])
310
- end
302
+ parser_ = ::RGeo::WKRep::WKTParser.new(::RGeo::Cartesian.method(:preferred_factory), :support_ewkt => true)
311
303
  obj_ = parser_.parse('SRID=1000;LINESTRINGM(1 2 3, 4 5 6)')
312
304
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
313
305
  assert_equal(3, obj_.point_n(0).m)
@@ -318,7 +310,7 @@ module RGeo
318
310
 
319
311
  def test_linestring_empty
320
312
  factory_ = ::RGeo::Cartesian.preferred_factory
321
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
313
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
322
314
  obj_ = parser_.parse('LINESTRING EMPTY')
323
315
  assert_equal(::RGeo::Feature::LineString, obj_.geometry_type)
324
316
  assert_equal(0, obj_.num_points)
@@ -327,7 +319,7 @@ module RGeo
327
319
 
328
320
  def test_polygon_basic
329
321
  factory_ = ::RGeo::Cartesian.preferred_factory
330
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
322
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
331
323
  obj_ = parser_.parse('POLYGON((1 2, 3 4, 5 6, 1 2))')
332
324
  assert_equal(::RGeo::Feature::Polygon, obj_.geometry_type)
333
325
  assert_equal(4, obj_.exterior_ring.num_points)
@@ -338,7 +330,7 @@ module RGeo
338
330
 
339
331
  def test_polygon_with_holes_and_z
340
332
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
341
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
333
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
342
334
  obj_ = parser_.parse('POLYGON((0 0 -1, 10 0 -2, 10 10 -3, 0 10 -4, 0 0 -5),(1 1 -6, 2 3 -7, 3 1 -8, 1 1 -9))')
343
335
  assert_equal(::RGeo::Feature::Polygon, obj_.geometry_type)
344
336
  assert_equal(5, obj_.exterior_ring.num_points)
@@ -352,7 +344,7 @@ module RGeo
352
344
 
353
345
  def test_polygon_empty
354
346
  factory_ = ::RGeo::Cartesian.preferred_factory
355
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
347
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
356
348
  obj_ = parser_.parse('POLYGON EMPTY')
357
349
  assert_equal(::RGeo::Feature::Polygon, obj_.geometry_type)
358
350
  assert_equal(0, obj_.exterior_ring.num_points)
@@ -361,7 +353,7 @@ module RGeo
361
353
 
362
354
  def test_multipoint_basic
363
355
  factory_ = ::RGeo::Cartesian.preferred_factory
364
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
356
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
365
357
  obj_ = parser_.parse('MULTIPOINT((1 2),(0 3))')
366
358
  assert_equal(::RGeo::Feature::MultiPoint, obj_.geometry_type)
367
359
  assert_equal(2, obj_.num_geometries)
@@ -372,7 +364,7 @@ module RGeo
372
364
 
373
365
  def test_multipoint_empty
374
366
  factory_ = ::RGeo::Cartesian.preferred_factory
375
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
367
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
376
368
  obj_ = parser_.parse('MULTIPOINT EMPTY')
377
369
  assert_equal(::RGeo::Feature::MultiPoint, obj_.geometry_type)
378
370
  assert_equal(0, obj_.num_geometries)
@@ -381,7 +373,7 @@ module RGeo
381
373
 
382
374
  def test_multilinestring_basic
383
375
  factory_ = ::RGeo::Cartesian.preferred_factory
384
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
376
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
385
377
  obj_ = parser_.parse('MULTILINESTRING((1 2, 3 4, 5 6),(0 -3, 0 -4, 1 -5))')
386
378
  assert_equal(::RGeo::Feature::MultiLineString, obj_.geometry_type)
387
379
  assert_equal(2, obj_.num_geometries)
@@ -392,7 +384,7 @@ module RGeo
392
384
 
393
385
  def test_multilinestring_empty
394
386
  factory_ = ::RGeo::Cartesian.preferred_factory
395
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
387
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
396
388
  obj_ = parser_.parse('MULTILINESTRING EMPTY')
397
389
  assert_equal(::RGeo::Feature::MultiLineString, obj_.geometry_type)
398
390
  assert_equal(0, obj_.num_geometries)
@@ -401,7 +393,7 @@ module RGeo
401
393
 
402
394
  def test_multipolygon_basic
403
395
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
404
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
396
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
405
397
  obj_ = parser_.parse('MULTIPOLYGON(((-1 -2 0, -3 -4 0, -5 -6 0, -1 -2 0)),((0 0 -1, 10 0 -2, 10 10 -3, 0 10 -4, 0 0 -5),(1 1 -6, 2 3 -7, 3 1 -8, 1 1 -9)))')
406
398
  assert_equal(::RGeo::Feature::MultiPolygon, obj_.geometry_type)
407
399
  assert_equal(2, obj_.num_geometries)
@@ -419,7 +411,7 @@ module RGeo
419
411
 
420
412
  def test_multipolygon_empty
421
413
  factory_ = ::RGeo::Cartesian.preferred_factory
422
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
414
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
423
415
  obj_ = parser_.parse('MULTIPOLYGON EMPTY')
424
416
  assert_equal(::RGeo::Feature::MultiPolygon, obj_.geometry_type)
425
417
  assert_equal(0, obj_.num_geometries)
@@ -428,7 +420,7 @@ module RGeo
428
420
 
429
421
  def test_collection_basic
430
422
  factory_ = ::RGeo::Cartesian.preferred_factory
431
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
423
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
432
424
  obj_ = parser_.parse('GEOMETRYCOLLECTION(POINT(-1 -2),LINESTRING(1 2, 3 4, 5 6))')
433
425
  assert_equal(::RGeo::Feature::GeometryCollection, obj_.geometry_type)
434
426
  assert_equal(2, obj_.num_geometries)
@@ -442,7 +434,7 @@ module RGeo
442
434
 
443
435
  def test_collection_z
444
436
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
445
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
437
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
446
438
  obj_ = parser_.parse('GEOMETRYCOLLECTION(POINT(-1 -2 0),LINESTRING(1 2 0, 3 4 0, 5 6 0))')
447
439
  assert_equal(::RGeo::Feature::GeometryCollection, obj_.geometry_type)
448
440
  assert_equal(2, obj_.num_geometries)
@@ -456,7 +448,7 @@ module RGeo
456
448
 
457
449
  def test_collection_dimension_mismatch
458
450
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true)
459
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
451
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
460
452
  assert_raise(::RGeo::Error::ParseError) do
461
453
  obj_ = parser_.parse('GEOMETRYCOLLECTION(POINT(-1 -2),LINESTRING(1 2 0, 3 4 0, 5 6 0))')
462
454
  end
@@ -465,7 +457,7 @@ module RGeo
465
457
 
466
458
  def test_collection_wkt12_type_mismatch
467
459
  factory_ = ::RGeo::Cartesian.preferred_factory(:support_z_coordinate => true, :support_m_coordinate => true)
468
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_, :support_wkt12 => true)
460
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_, :support_wkt12 => true)
469
461
  assert_raise(::RGeo::Error::ParseError) do
470
462
  obj_ = parser_.parse('GEOMETRYCOLLECTION Z(POINT Z(-1 -2 0),LINESTRING M(1 2 0, 3 4 0, 5 6 0))')
471
463
  end
@@ -474,7 +466,7 @@ module RGeo
474
466
 
475
467
  def test_collection_empty
476
468
  factory_ = ::RGeo::Cartesian.preferred_factory
477
- parser_ = ::RGeo::WKRep::WKTParser.new(:default_factory => factory_)
469
+ parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
478
470
  obj_ = parser_.parse('GEOMETRYCOLLECTION EMPTY')
479
471
  assert_equal(::RGeo::Feature::GeometryCollection, obj_.geometry_type)
480
472
  assert_equal(0, obj_.num_geometries)