rgeo 1.1.2 → 2.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.
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