rgeo 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/ext/geos_c_impl/extconf.rb +5 -3
  3. data/ext/geos_c_impl/factory.c +4 -4
  4. data/ext/geos_c_impl/geometry.c +1 -1
  5. data/lib/rgeo.rb +2 -4
  6. data/lib/rgeo/cartesian.rb +6 -16
  7. data/lib/rgeo/cartesian/analysis.rb +22 -20
  8. data/lib/rgeo/cartesian/bounding_box.rb +83 -79
  9. data/lib/rgeo/cartesian/calculations.rb +40 -38
  10. data/lib/rgeo/cartesian/factory.rb +134 -169
  11. data/lib/rgeo/cartesian/feature_classes.rb +2 -18
  12. data/lib/rgeo/cartesian/feature_methods.rb +37 -39
  13. data/lib/rgeo/cartesian/interface.rb +11 -9
  14. data/lib/rgeo/coord_sys.rb +9 -8
  15. data/lib/rgeo/coord_sys/cs/entities.rb +345 -303
  16. data/lib/rgeo/coord_sys/cs/factories.rb +30 -28
  17. data/lib/rgeo/coord_sys/cs/wkt_parser.rb +128 -126
  18. data/lib/rgeo/coord_sys/srs_database/{interface.rb → entry.rb} +26 -32
  19. data/lib/rgeo/coord_sys/srs_database/sr_org.rb +19 -17
  20. data/lib/rgeo/coord_sys/srs_database/url_reader.rb +21 -19
  21. data/lib/rgeo/error.rb +3 -1
  22. data/lib/rgeo/feature.rb +23 -34
  23. data/lib/rgeo/feature/curve.rb +2 -0
  24. data/lib/rgeo/feature/factory.rb +15 -13
  25. data/lib/rgeo/feature/factory_generator.rb +7 -5
  26. data/lib/rgeo/feature/geometry.rb +31 -29
  27. data/lib/rgeo/feature/geometry_collection.rb +6 -4
  28. data/lib/rgeo/feature/line.rb +2 -0
  29. data/lib/rgeo/feature/line_string.rb +3 -1
  30. data/lib/rgeo/feature/linear_ring.rb +2 -0
  31. data/lib/rgeo/feature/multi_curve.rb +2 -0
  32. data/lib/rgeo/feature/multi_line_string.rb +2 -0
  33. data/lib/rgeo/feature/multi_point.rb +2 -0
  34. data/lib/rgeo/feature/multi_polygon.rb +2 -0
  35. data/lib/rgeo/feature/multi_surface.rb +2 -0
  36. data/lib/rgeo/feature/point.rb +2 -0
  37. data/lib/rgeo/feature/polygon.rb +3 -1
  38. data/lib/rgeo/feature/surface.rb +2 -0
  39. data/lib/rgeo/feature/types.rb +107 -103
  40. data/lib/rgeo/geographic.rb +17 -27
  41. data/lib/rgeo/geographic/factory.rb +154 -199
  42. data/lib/rgeo/geographic/interface.rb +141 -137
  43. data/lib/rgeo/geographic/proj4_projector.rb +28 -23
  44. data/lib/rgeo/geographic/projected_feature_classes.rb +2 -18
  45. data/lib/rgeo/geographic/projected_feature_methods.rb +59 -49
  46. data/lib/rgeo/geographic/projected_window.rb +4 -2
  47. data/lib/rgeo/geographic/simple_mercator_projector.rb +41 -39
  48. data/lib/rgeo/geographic/spherical_feature_classes.rb +2 -18
  49. data/lib/rgeo/geographic/spherical_feature_methods.rb +67 -67
  50. data/lib/rgeo/geographic/spherical_math.rb +81 -87
  51. data/lib/rgeo/geos.rb +23 -34
  52. data/lib/rgeo/geos/capi_factory.rb +106 -135
  53. data/lib/rgeo/geos/capi_feature_classes.rb +19 -37
  54. data/lib/rgeo/geos/ffi_factory.rb +276 -297
  55. data/lib/rgeo/geos/ffi_feature_classes.rb +2 -20
  56. data/lib/rgeo/geos/ffi_feature_methods.rb +170 -166
  57. data/lib/rgeo/geos/interface.rb +25 -23
  58. data/lib/rgeo/geos/utils.rb +47 -39
  59. data/lib/rgeo/geos/zm_factory.rb +171 -185
  60. data/lib/rgeo/geos/zm_feature_classes.rb +2 -20
  61. data/lib/rgeo/geos/zm_feature_methods.rb +76 -72
  62. data/lib/rgeo/impl_helper.rb +1 -11
  63. data/lib/rgeo/impl_helper/basic_geometry_collection_methods.rb +72 -75
  64. data/lib/rgeo/impl_helper/basic_geometry_methods.rb +21 -23
  65. data/lib/rgeo/impl_helper/basic_line_string_methods.rb +57 -49
  66. data/lib/rgeo/impl_helper/basic_point_methods.rb +29 -25
  67. data/lib/rgeo/impl_helper/basic_polygon_methods.rb +31 -27
  68. data/lib/rgeo/impl_helper/math.rb +2 -0
  69. data/lib/rgeo/impl_helper/utils.rb +9 -15
  70. data/lib/rgeo/version.rb +3 -1
  71. data/lib/rgeo/wkrep.rb +20 -30
  72. data/lib/rgeo/wkrep/wkb_generator.rb +87 -84
  73. data/lib/rgeo/wkrep/wkb_parser.rb +93 -93
  74. data/lib/rgeo/wkrep/wkt_generator.rb +67 -63
  75. data/lib/rgeo/wkrep/wkt_parser.rb +172 -168
  76. metadata +17 -32
  77. data/lib/rgeo/feature/mixins.rb +0 -143
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # -----------------------------------------------------------------------------
2
4
  #
3
5
  # Geographic data factory implementation
@@ -12,74 +14,69 @@ module RGeo
12
14
 
13
15
  class Factory
14
16
  include Feature::Factory::Instance
15
-
16
- def initialize(impl_prefix_, opts_ = {}) # :nodoc:
17
- @impl_prefix = impl_prefix_
18
- @point_class = Geographic.const_get("#{impl_prefix_}PointImpl")
19
- @line_string_class = Geographic.const_get("#{impl_prefix_}LineStringImpl")
20
- @linear_ring_class = Geographic.const_get("#{impl_prefix_}LinearRingImpl")
21
- @line_class = Geographic.const_get("#{impl_prefix_}LineImpl")
22
- @polygon_class = Geographic.const_get("#{impl_prefix_}PolygonImpl")
23
- @geometry_collection_class = Geographic.const_get("#{impl_prefix_}GeometryCollectionImpl")
24
- @multi_point_class = Geographic.const_get("#{impl_prefix_}MultiPointImpl")
25
- @multi_line_string_class = Geographic.const_get("#{impl_prefix_}MultiLineStringImpl")
26
- @multi_polygon_class = Geographic.const_get("#{impl_prefix_}MultiPolygonImpl")
27
- @support_z = opts_[:has_z_coordinate] ? true : false
28
- @support_m = opts_[:has_m_coordinate] ? true : false
29
- @srid = (opts_[:srid] || 4326).to_i
30
- @proj4 = opts_[:proj4]
17
+ include ImplHelper::Utils
18
+
19
+ attr_writer :projector
20
+
21
+ def initialize(impl_prefix, opts = {}) # :nodoc:
22
+ @impl_prefix = impl_prefix
23
+ @point_class = Geographic.const_get("#{impl_prefix}PointImpl")
24
+ @line_string_class = Geographic.const_get("#{impl_prefix}LineStringImpl")
25
+ @linear_ring_class = Geographic.const_get("#{impl_prefix}LinearRingImpl")
26
+ @line_class = Geographic.const_get("#{impl_prefix}LineImpl")
27
+ @polygon_class = Geographic.const_get("#{impl_prefix}PolygonImpl")
28
+ @geometry_collection_class = Geographic.const_get("#{impl_prefix}GeometryCollectionImpl")
29
+ @multi_point_class = Geographic.const_get("#{impl_prefix}MultiPointImpl")
30
+ @multi_line_string_class = Geographic.const_get("#{impl_prefix}MultiLineStringImpl")
31
+ @multi_polygon_class = Geographic.const_get("#{impl_prefix}MultiPolygonImpl")
32
+ @support_z = opts[:has_z_coordinate] ? true : false
33
+ @support_m = opts[:has_m_coordinate] ? true : false
34
+ @srid = (opts[:srid] || 4326).to_i
35
+ @proj4 = opts[:proj4]
31
36
  if @proj4 && CoordSys.check!(:proj4)
32
- if @proj4.is_a?(::String) || @proj4.is_a?(::Hash)
37
+ if @proj4.is_a?(String) || @proj4.is_a?(Hash)
33
38
  @proj4 = CoordSys::Proj4.create(@proj4)
34
39
  end
35
40
  end
36
- @coord_sys = opts_[:coord_sys]
37
- if @coord_sys.is_a?(::String)
38
- @coord_sys = begin
39
- CoordSys::CS.create_from_wkt(@coord_sys)
40
- rescue
41
- nil
42
- end
41
+ @coord_sys = opts[:coord_sys]
42
+ if @coord_sys.is_a?(String)
43
+ @coord_sys = CoordSys::CS.create_from_wkt(@coord_sys)
43
44
  end
44
- @lenient_assertions = opts_[:uses_lenient_assertions] ? true : false
45
- @buffer_resolution = opts_[:buffer_resolution].to_i
45
+ @lenient_assertions = opts[:uses_lenient_assertions] ? true : false
46
+ @buffer_resolution = opts[:buffer_resolution].to_i
46
47
  @buffer_resolution = 1 if @buffer_resolution < 1
47
48
 
48
- wkt_generator_ = opts_[:wkt_generator]
49
- case wkt_generator_
50
- when ::Hash
51
- @wkt_generator = WKRep::WKTGenerator.new(wkt_generator_)
49
+ wkt_generator = opts[:wkt_generator]
50
+ case wkt_generator
51
+ when Hash
52
+ @wkt_generator = WKRep::WKTGenerator.new(wkt_generator)
52
53
  else
53
54
  @wkt_generator = WKRep::WKTGenerator.new(convert_case: :upper)
54
55
  end
55
- wkb_generator_ = opts_[:wkb_generator]
56
- case wkb_generator_
57
- when ::Hash
58
- @wkb_generator = WKRep::WKBGenerator.new(wkb_generator_)
56
+ wkb_generator = opts[:wkb_generator]
57
+ case wkb_generator
58
+ when Hash
59
+ @wkb_generator = WKRep::WKBGenerator.new(wkb_generator)
59
60
  else
60
61
  @wkb_generator = WKRep::WKBGenerator.new
61
62
  end
62
- wkt_parser_ = opts_[:wkt_parser]
63
- case wkt_parser_
64
- when ::Hash
65
- @wkt_parser = WKRep::WKTParser.new(self, wkt_parser_)
63
+ wkt_parser = opts[:wkt_parser]
64
+ case wkt_parser
65
+ when Hash
66
+ @wkt_parser = WKRep::WKTParser.new(self, wkt_parser)
66
67
  else
67
68
  @wkt_parser = WKRep::WKTParser.new(self)
68
69
  end
69
- wkb_parser_ = opts_[:wkb_parser]
70
- case wkb_parser_
71
- when ::Hash
72
- @wkb_parser = WKRep::WKBParser.new(self, wkb_parser_)
70
+ wkb_parser = opts[:wkb_parser]
71
+ case wkb_parser
72
+ when Hash
73
+ @wkb_parser = WKRep::WKBParser.new(self, wkb_parser)
73
74
  else
74
75
  @wkb_parser = WKRep::WKBParser.new(self)
75
76
  end
76
77
  @projector = nil
77
78
  end
78
79
 
79
- def _set_projector(projector_) # :nodoc:
80
- @projector = projector_
81
- end
82
-
83
80
  # Equivalence test.
84
81
 
85
82
  def eql?(rhs_)
@@ -105,10 +102,10 @@ module RGeo
105
102
  "hasz" => @support_z,
106
103
  "hasm" => @support_m,
107
104
  "srid" => @srid,
108
- "wktg" => @wkt_generator._properties,
109
- "wkbg" => @wkb_generator._properties,
110
- "wktp" => @wkt_parser._properties,
111
- "wkbp" => @wkb_parser._properties,
105
+ "wktg" => @wkt_generator.properties,
106
+ "wkbg" => @wkb_generator.properties,
107
+ "wktp" => @wkt_parser.properties,
108
+ "wkbp" => @wkb_parser.properties,
112
109
  "lena" => @lenient_assertions,
113
110
  "bufr" => @buffer_resolution
114
111
  }
@@ -122,107 +119,99 @@ module RGeo
122
119
  end
123
120
 
124
121
  def marshal_load(data_) # :nodoc:
125
- if (proj4_data_ = data_["proj4"]) && CoordSys.check!(:proj4)
126
- proj4_ = CoordSys::Proj4.allocate
127
- proj4_.marshal_load(proj4_data_)
122
+ if (proj4_data = data_["proj4"]) && CoordSys.check!(:proj4)
123
+ proj4 = CoordSys::Proj4.allocate
124
+ proj4.marshal_load(proj4_data)
128
125
  else
129
- proj4_ = nil
126
+ proj4 = nil
130
127
  end
131
- if (coord_sys_data_ = data_["cs"])
132
- coord_sys_ = CoordSys::CS.create_from_wkt(coord_sys_data_)
128
+ if (coord_sys_data = data_["cs"])
129
+ coord_sys = CoordSys::CS.create_from_wkt(coord_sys_data)
133
130
  else
134
- coord_sys_ = nil
131
+ coord_sys = nil
135
132
  end
136
133
  initialize(data_["pref"],
137
134
  has_z_coordinate: data_["hasz"],
138
135
  has_m_coordinate: data_["hasm"],
139
136
  srid: data_["srid"],
140
- wkt_generator: ImplHelper::Utils.symbolize_hash(data_["wktg"]),
141
- wkb_generator: ImplHelper::Utils.symbolize_hash(data_["wkbg"]),
142
- wkt_parser: ImplHelper::Utils.symbolize_hash(data_["wktp"]),
143
- wkb_parser: ImplHelper::Utils.symbolize_hash(data_["wkbp"]),
137
+ wkt_generator: symbolize_hash(data_["wktg"]),
138
+ wkb_generator: symbolize_hash(data_["wkbg"]),
139
+ wkt_parser: symbolize_hash(data_["wktp"]),
140
+ wkb_parser: symbolize_hash(data_["wkbp"]),
144
141
  uses_lenient_assertions: data_["lena"],
145
142
  buffer_resolution: data_["bufr"],
146
- proj4: proj4_,
147
- coord_sys: coord_sys_
148
- )
149
- if (projklass_ = data_["prjc"]) && (projfactory_ = data_["prjf"])
150
- klass_ = begin
151
- RGeo::Geographic.const_get(projklass_)
152
- rescue
153
- nil
154
- end
143
+ proj4: proj4,
144
+ coord_sys: coord_sys
145
+ )
146
+ if (proj_klass = data_["prjc"]) && (proj_factory = data_["prjf"])
147
+ klass_ = RGeo::Geographic.const_get(proj_klass)
155
148
  if klass_
156
- projector_ = klass_.allocate
157
- projector_._set_factories(self, projfactory_)
158
- _set_projector(projector_)
149
+ projector = klass_.allocate
150
+ projector.set_factories(self, proj_factory)
151
+ @projector = projector
159
152
  end
160
153
  end
161
154
  end
162
155
 
163
156
  # Psych support
164
157
 
165
- def encode_with(coder_) # :nodoc:
166
- coder_["impl_prefix"] = @impl_prefix
167
- coder_["has_z_coordinate"] = @support_z
168
- coder_["has_m_coordinate"] = @support_m
169
- coder_["srid"] = @srid
170
- coder_["wkt_generator"] = @wkt_generator._properties
171
- coder_["wkb_generator"] = @wkb_generator._properties
172
- coder_["wkt_parser"] = @wkt_parser._properties
173
- coder_["wkb_parser"] = @wkb_parser._properties
174
- coder_["lenient_assertions"] = @lenient_assertions
175
- coder_["buffer_resolution"] = @buffer_resolution
158
+ def encode_with(coder) # :nodoc:
159
+ coder["impl_prefix"] = @impl_prefix
160
+ coder["has_z_coordinate"] = @support_z
161
+ coder["has_m_coordinate"] = @support_m
162
+ coder["srid"] = @srid
163
+ coder["wkt_generator"] = @wkt_generator.properties
164
+ coder["wkb_generator"] = @wkb_generator.properties
165
+ coder["wkt_parser"] = @wkt_parser.properties
166
+ coder["wkb_parser"] = @wkb_parser.properties
167
+ coder["lenient_assertions"] = @lenient_assertions
168
+ coder["buffer_resolution"] = @buffer_resolution
176
169
  if @proj4
177
- str_ = @proj4.original_str || @proj4.canonical_str
178
- coder_["proj4"] = @proj4.radians? ? { "proj4" => str_, "radians" => true } : str_
170
+ str = @proj4.original_str || @proj4.canonical_str
171
+ coder["proj4"] = @proj4.radians? ? { "proj4" => str, "radians" => true } : str
179
172
  end
180
- coder_["coord_sys"] = @coord_sys.to_wkt if @coord_sys
173
+ coder["coord_sys"] = @coord_sys.to_wkt if @coord_sys
181
174
  if @projector
182
- coder_["projector_class"] = @projector.class.name.sub(/.*::/, "")
183
- coder_["projection_factory"] = @projector.projection_factory
175
+ coder["projectorclass"] = @projector.class.name.sub(/.*::/, "")
176
+ coder["projection_factory"] = @projector.projection_factory
184
177
  end
185
178
  end
186
179
 
187
- def init_with(coder_) # :nodoc:
188
- if (proj4_data_ = coder_["proj4"])
180
+ def init_with(coder) # :nodoc:
181
+ if (proj4_data = coder["proj4"])
189
182
  CoordSys.check!(:proj4)
190
- if proj4_data_.is_a?(::Hash)
191
- proj4_ = CoordSys::Proj4.create(proj4_data_["proj4"], radians: proj4_data_["radians"])
183
+ if proj4_data.is_a?(Hash)
184
+ proj4 = CoordSys::Proj4.create(proj4_data["proj4"], radians: proj4_data["radians"])
192
185
  else
193
- proj4_ = CoordSys::Proj4.create(proj4_data_.to_s)
186
+ proj4 = CoordSys::Proj4.create(proj4_data.to_s)
194
187
  end
195
188
  else
196
- proj4_ = nil
189
+ proj4 = nil
197
190
  end
198
- if (coord_sys_data_ = coder_["cs"])
199
- coord_sys_ = CoordSys::CS.create_from_wkt(coord_sys_data_.to_s)
191
+ if (coord_sys_data = coder["cs"])
192
+ coord_sys = CoordSys::CS.create_from_wkt(coord_sys_data.to_s)
200
193
  else
201
- coord_sys_ = nil
194
+ coord_sys = nil
202
195
  end
203
- initialize(coder_["impl_prefix"],
204
- has_z_coordinate: coder_["has_z_coordinate"],
205
- has_m_coordinate: coder_["has_m_coordinate"],
206
- srid: coder_["srid"],
207
- wkt_generator: ImplHelper::Utils.symbolize_hash(coder_["wkt_generator"]),
208
- wkb_generator: ImplHelper::Utils.symbolize_hash(coder_["wkb_generator"]),
209
- wkt_parser: ImplHelper::Utils.symbolize_hash(coder_["wkt_parser"]),
210
- wkb_parser: ImplHelper::Utils.symbolize_hash(coder_["wkb_parser"]),
211
- uses_lenient_assertions: coder_["lenient_assertions"],
212
- buffer_resolution: coder_["buffer_resolution"],
213
- proj4: proj4_,
214
- coord_sys: coord_sys_
215
- )
216
- if (projklass_ = coder_["projector_class"]) && (projfactory_ = coder_["projection_factory"])
217
- klass_ = begin
218
- RGeo::Geographic.const_get(projklass_)
219
- rescue
220
- nil
221
- end
196
+ initialize(coder["impl_prefix"],
197
+ has_z_coordinate: coder["has_z_coordinate"],
198
+ has_m_coordinate: coder["has_m_coordinate"],
199
+ srid: coder["srid"],
200
+ wkt_generator: symbolize_hash(coder["wkt_generator"]),
201
+ wkb_generator: symbolize_hash(coder["wkb_generator"]),
202
+ wkt_parser: symbolize_hash(coder["wkt_parser"]),
203
+ wkb_parser: symbolize_hash(coder["wkb_parser"]),
204
+ uses_lenient_assertions: coder["lenient_assertions"],
205
+ buffer_resolution: coder["buffer_resolution"],
206
+ proj4: proj4,
207
+ coord_sys: coord_sys
208
+ )
209
+ if (proj_klass = coder["projectorclass"]) && (proj_factory = coder["projection_factory"])
210
+ klass_ = RGeo::Geographic.const_get(proj_klass)
222
211
  if klass_
223
- projector_ = klass_.allocate
224
- projector_._set_factories(self, projfactory_)
225
- _set_projector(projector_)
212
+ projector = klass_.allocate
213
+ projector.set_factories(self, proj_factory)
214
+ @projector = projector
226
215
  end
227
216
  end
228
217
  end
@@ -241,7 +230,7 @@ module RGeo
241
230
  # or nil if this factory does not support a projection.
242
231
 
243
232
  def projection_factory
244
- @projector ? @projector.projection_factory : nil
233
+ @projector&.projection_factory
245
234
  end
246
235
 
247
236
  # Projects the given geometry into the projected coordinate space,
@@ -250,12 +239,12 @@ module RGeo
250
239
  # Raises Error::InvalidGeometry if the given geometry is not of
251
240
  # this factory.
252
241
 
253
- def project(geometry_)
254
- return nil unless @projector && geometry_
255
- unless geometry_.factory == self
242
+ def project(geometry)
243
+ return unless @projector && geometry
244
+ unless geometry.factory == self
256
245
  raise Error::InvalidGeometry, "Wrong geometry type"
257
246
  end
258
- @projector.project(geometry_)
247
+ @projector.project(geometry)
259
248
  end
260
249
 
261
250
  # Reverse-projects the given geometry from the projected coordinate
@@ -263,12 +252,12 @@ module RGeo
263
252
  # Raises Error::InvalidGeometry if the given geometry is not of
264
253
  # the projection defined by this factory.
265
254
 
266
- def unproject(geometry_)
267
- return nil unless geometry_
268
- unless @projector && @projector.projection_factory == geometry_.factory
255
+ def unproject(geometry)
256
+ return unless geometry
257
+ unless @projector && @projector.projection_factory == geometry.factory
269
258
  raise Error::InvalidGeometry, "You can unproject only features that are in the projected coordinate space."
270
259
  end
271
- @projector.unproject(geometry_)
260
+ @projector.unproject(geometry)
272
261
  end
273
262
 
274
263
  # Returns true if this factory supports a projection and the
@@ -298,8 +287,8 @@ module RGeo
298
287
 
299
288
  # See RGeo::Feature::Factory#property
300
289
 
301
- def property(name_)
302
- case name_
290
+ def property(name)
291
+ case name
303
292
  when :has_z_coordinate
304
293
  @support_z
305
294
  when :has_m_coordinate
@@ -315,86 +304,68 @@ module RGeo
315
304
 
316
305
  # See RGeo::Feature::Factory#parse_wkt
317
306
 
318
- def parse_wkt(str_)
319
- @wkt_parser.parse(str_)
307
+ def parse_wkt(str)
308
+ @wkt_parser.parse(str)
320
309
  end
321
310
 
322
311
  # See RGeo::Feature::Factory#parse_wkb
323
312
 
324
- def parse_wkb(str_)
325
- @wkb_parser.parse(str_)
313
+ def parse_wkb(str)
314
+ @wkb_parser.parse(str)
326
315
  end
327
316
 
328
317
  # See RGeo::Feature::Factory#point
329
318
 
330
- def point(x_, y_, *extra_)
331
- @point_class.new(self, x_, y_, *extra_)
332
- rescue
333
- nil
319
+ def point(x, y, *extra)
320
+ @point_class.new(self, x, y, *extra)
334
321
  end
335
322
 
336
323
  # See RGeo::Feature::Factory#line_string
337
324
 
338
- def line_string(points_)
339
- @line_string_class.new(self, points_)
340
- rescue
341
- nil
325
+ def line_string(points)
326
+ @line_string_class.new(self, points)
342
327
  end
343
328
 
344
329
  # See RGeo::Feature::Factory#line
345
330
 
346
- def line(start_, end_)
347
- @line_class.new(self, start_, end_)
348
- rescue
349
- nil
331
+ def line(start, stop)
332
+ @line_class.new(self, start, stop)
350
333
  end
351
334
 
352
335
  # See RGeo::Feature::Factory#linear_ring
353
336
 
354
- def linear_ring(points_)
355
- @linear_ring_class.new(self, points_)
356
- rescue
357
- nil
337
+ def linear_ring(points)
338
+ @linear_ring_class.new(self, points)
358
339
  end
359
340
 
360
341
  # See RGeo::Feature::Factory#polygon
361
342
 
362
- def polygon(outer_ring_, inner_rings_ = nil)
363
- @polygon_class.new(self, outer_ring_, inner_rings_)
364
- rescue
365
- nil
343
+ def polygon(outer_ring, inner_rings = nil)
344
+ @polygon_class.new(self, outer_ring, inner_rings)
366
345
  end
367
346
 
368
347
  # See RGeo::Feature::Factory#collection
369
348
 
370
- def collection(elems_)
371
- @geometry_collection_class.new(self, elems_)
372
- rescue
373
- nil
349
+ def collection(elems)
350
+ @geometry_collection_class.new(self, elems)
374
351
  end
375
352
 
376
353
  # See RGeo::Feature::Factory#multi_point
377
354
 
378
- def multi_point(elems_)
379
- @multi_point_class.new(self, elems_)
380
- rescue
381
- nil
355
+ def multi_point(elems)
356
+ @multi_point_class.new(self, elems)
382
357
  end
383
358
 
384
359
  # See RGeo::Feature::Factory#multi_line_string
385
360
 
386
- def multi_line_string(elems_)
387
- @multi_line_string_class.new(self, elems_)
388
- rescue
389
- nil
361
+ def multi_line_string(elems)
362
+ @multi_line_string_class.new(self, elems)
390
363
  end
391
364
 
392
365
  # See RGeo::Feature::Factory#multi_polygon
393
366
 
394
- def multi_polygon(elems_)
395
- @multi_polygon_class.new(self, elems_)
396
- rescue
397
- nil
367
+ def multi_polygon(elems)
368
+ @multi_polygon_class.new(self, elems)
398
369
  end
399
370
 
400
371
  # See RGeo::Feature::Factory#proj4
@@ -405,44 +376,28 @@ module RGeo
405
376
 
406
377
  attr_reader :coord_sys
407
378
 
408
- def _generate_wkt(obj_) # :nodoc:
409
- @wkt_generator.generate(obj_)
379
+ def generate_wkt(obj)
380
+ @wkt_generator.generate(obj)
410
381
  end
411
382
 
412
- def _generate_wkb(obj_) # :nodoc:
413
- @wkb_generator.generate(obj_)
383
+ def generate_wkb(obj) # :nodoc:
384
+ @wkb_generator.generate(obj)
414
385
  end
415
386
 
416
- def _marshal_wkb_generator # :nodoc:
417
- unless defined?(@marshal_wkb_generator)
418
- @marshal_wkb_generator = RGeo::WKRep::WKBGenerator.new(
419
- type_format: :wkb12)
420
- end
421
- @marshal_wkb_generator
387
+ def marshal_wkb_generator
388
+ @marshal_wkb_generator ||= RGeo::WKRep::WKBGenerator.new(type_format: :wkb12)
422
389
  end
423
390
 
424
- def _marshal_wkb_parser # :nodoc:
425
- unless defined?(@marshal_wkb_parser)
426
- @marshal_wkb_parser = RGeo::WKRep::WKBParser.new(self,
427
- support_wkb12: true)
428
- end
429
- @marshal_wkb_parser
391
+ def marshal_wkb_parser
392
+ @marshal_wkb_parser ||= RGeo::WKRep::WKBParser.new(self, support_wkb12: true)
430
393
  end
431
394
 
432
- def _psych_wkt_generator # :nodoc:
433
- unless defined?(@psych_wkt_generator)
434
- @psych_wkt_generator = RGeo::WKRep::WKTGenerator.new(
435
- tag_format: :wkt12)
436
- end
437
- @psych_wkt_generator
395
+ def psych_wkt_generator
396
+ @psych_wkt_generator ||= RGeo::WKRep::WKTGenerator.new(tag_format: :wkt12)
438
397
  end
439
398
 
440
- def _psych_wkt_parser # :nodoc:
441
- unless defined?(@psych_wkt_parser)
442
- @psych_wkt_parser = RGeo::WKRep::WKTParser.new(self,
443
- support_wkt12: true, support_ewkt: true)
444
- end
445
- @psych_wkt_parser
399
+ def psych_wkt_parser
400
+ @psych_wkt_parser ||= RGeo::WKRep::WKTParser.new(self, support_wkt12: true, support_ewkt: true)
446
401
  end
447
402
  end
448
403
  end