ffi-gdal 1.0.1 → 1.0.3

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 (199) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +15 -0
  3. data/.github/workflows/codacy.yml +1 -1
  4. data/.github/workflows/dependency-review.yml +1 -1
  5. data/.github/workflows/specs-in-docker.yml +3 -1
  6. data/.prettierrc.yml +4 -0
  7. data/.rubocop.yml +9 -5
  8. data/.rubocop_todo.yml +5 -11
  9. data/.solargraph.yml +13 -0
  10. data/Changelog-0.x.md +229 -174
  11. data/Changelog.md +20 -4
  12. data/Dockerfile.gdal2 +2 -85
  13. data/Gemfile +12 -2
  14. data/LICENSE.txt +1 -1
  15. data/README.md +14 -16
  16. data/Rakefile +6 -6
  17. data/bin/bundle +12 -12
  18. data/bin/rake +6 -6
  19. data/bin/rspec +6 -6
  20. data/bin/rubocop +6 -6
  21. data/examples/extract_and_colorize.rb +15 -15
  22. data/examples/geometries.rb +12 -12
  23. data/examples/gridding.rb +17 -17
  24. data/examples/ogr_layer_to_layer.rb +3 -3
  25. data/examples/raster_erasing.rb +9 -9
  26. data/examples/remove_small_polygons.rb +11 -11
  27. data/examples/testing_gdal.rb +20 -20
  28. data/examples/warping.rb +13 -13
  29. data/ffi-gdal.gemspec +16 -27
  30. data/lib/ext/ffi_library_function_checks.rb +3 -3
  31. data/lib/ext/narray_ext.rb +1 -1
  32. data/lib/ext/to_bool.rb +2 -2
  33. data/lib/ffi/cpl/conv.rb +2 -2
  34. data/lib/ffi/cpl/error.rb +1 -1
  35. data/lib/ffi/cpl/hash_set.rb +2 -2
  36. data/lib/ffi/cpl/http.rb +3 -3
  37. data/lib/ffi/cpl/http_result.rb +2 -2
  38. data/lib/ffi/cpl/list.rb +1 -1
  39. data/lib/ffi/cpl/mime_part.rb +1 -1
  40. data/lib/ffi/cpl/minixml.rb +2 -2
  41. data/lib/ffi/cpl/port.rb +1 -1
  42. data/lib/ffi/cpl/progress.rb +2 -2
  43. data/lib/ffi/cpl/quad_tree.rb +3 -3
  44. data/lib/ffi/cpl/rect_obj.rb +1 -1
  45. data/lib/ffi/cpl/string.rb +1 -1
  46. data/lib/ffi/cpl/vsi.rb +2 -2
  47. data/lib/ffi/cpl/xml_node.rb +1 -1
  48. data/lib/ffi/cpl.rb +11 -11
  49. data/lib/ffi/extensions/gdal/extensions/all.rb +2 -2
  50. data/lib/ffi/extensions/gdal/extensions.rb +2 -2
  51. data/lib/ffi/extensions/rttopo/gbox.rb +1 -1
  52. data/lib/ffi/extensions/rttopo/geom.rb +2 -2
  53. data/lib/ffi/extensions/rttopo.rb +3 -3
  54. data/lib/ffi/gdal/alg.rb +2 -2
  55. data/lib/ffi/gdal/color_entry.rb +1 -1
  56. data/lib/ffi/gdal/gcp.rb +1 -1
  57. data/lib/ffi/gdal/gdal.rb +3 -3
  58. data/lib/ffi/gdal/grid.rb +2 -2
  59. data/lib/ffi/gdal/grid_data_metrics_options.rb +1 -1
  60. data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +1 -1
  61. data/lib/ffi/gdal/grid_moving_average_options.rb +1 -1
  62. data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +1 -1
  63. data/lib/ffi/gdal/matching.rb +2 -2
  64. data/lib/ffi/gdal/rpc_info.rb +1 -1
  65. data/lib/ffi/gdal/transformer_info.rb +1 -1
  66. data/lib/ffi/gdal/version.rb +1 -1
  67. data/lib/ffi/gdal/vrt.rb +2 -2
  68. data/lib/ffi/gdal/warp_options.rb +1 -1
  69. data/lib/ffi/gdal/warper.rb +2 -2
  70. data/lib/ffi/gdal.rb +22 -22
  71. data/lib/ffi/ogr/api.rb +3 -3
  72. data/lib/ffi/ogr/contour_writer_info.rb +1 -1
  73. data/lib/ffi/ogr/core.rb +9 -9
  74. data/lib/ffi/ogr/envelope.rb +1 -1
  75. data/lib/ffi/ogr/envelope_3d.rb +1 -1
  76. data/lib/ffi/ogr/featurestyle.rb +1 -1
  77. data/lib/ffi/ogr/field.rb +1 -1
  78. data/lib/ffi/ogr/geocoding.rb +2 -2
  79. data/lib/ffi/ogr/srs_api.rb +63 -63
  80. data/lib/ffi/ogr/style_param.rb +2 -2
  81. data/lib/ffi/ogr/style_value.rb +1 -1
  82. data/lib/ffi/ogr.rb +11 -11
  83. data/lib/ffi-gdal.rb +8 -8
  84. data/lib/gdal/color_table.rb +6 -6
  85. data/lib/gdal/dataset/accessors.rb +101 -0
  86. data/lib/gdal/{dataset_mixins → dataset}/algorithm_methods.rb +1 -1
  87. data/lib/gdal/dataset/class_methods.rb +69 -0
  88. data/lib/gdal/dataset/internal_functions.rb +22 -0
  89. data/lib/gdal/{dataset_mixins → dataset}/matching.rb +1 -1
  90. data/lib/gdal/dataset/raster_band_methods.rb +181 -0
  91. data/lib/gdal/{dataset_mixins → dataset}/warp_methods.rb +1 -1
  92. data/lib/gdal/dataset.rb +21 -359
  93. data/lib/gdal/driver.rb +10 -10
  94. data/lib/gdal/environment_methods.rb +1 -1
  95. data/lib/gdal/extensions/all.rb +1 -1
  96. data/lib/gdal/extensions/color_entry/extensions.rb +2 -2
  97. data/lib/gdal/extensions/color_table/extensions.rb +2 -2
  98. data/lib/gdal/extensions/dataset/extensions.rb +11 -11
  99. data/lib/gdal/extensions/driver/extensions.rb +7 -7
  100. data/lib/gdal/extensions/geo_transform/extensions.rb +2 -2
  101. data/lib/gdal/extensions/gridder.rb +8 -8
  102. data/lib/gdal/extensions/gridder_options.rb +6 -6
  103. data/lib/gdal/extensions/raster_attribute_table/extensions.rb +1 -1
  104. data/lib/gdal/extensions/raster_band/algorithm_extensions.rb +4 -4
  105. data/lib/gdal/extensions/raster_band/coloring_extensions.rb +1 -1
  106. data/lib/gdal/extensions/raster_band/extensions.rb +3 -3
  107. data/lib/gdal/extensions/raster_band/io_extensions.rb +4 -4
  108. data/lib/gdal/extensions/raster_band_classifier.rb +3 -3
  109. data/lib/gdal/geo_transform.rb +1 -1
  110. data/lib/gdal/grid.rb +6 -6
  111. data/lib/gdal/grid_algorithms/metric_average_distance.rb +1 -1
  112. data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +1 -1
  113. data/lib/gdal/grid_algorithms/metric_count.rb +1 -1
  114. data/lib/gdal/grid_algorithms/metric_maximum.rb +1 -1
  115. data/lib/gdal/grid_algorithms/metric_minimum.rb +1 -1
  116. data/lib/gdal/grid_algorithms/metric_range.rb +1 -1
  117. data/lib/gdal/grid_algorithms.rb +9 -9
  118. data/lib/gdal/internal_helpers.rb +3 -3
  119. data/lib/gdal/logger.rb +1 -1
  120. data/lib/gdal/major_object.rb +6 -6
  121. data/lib/gdal/options.rb +2 -2
  122. data/lib/gdal/raster_attribute_table.rb +5 -5
  123. data/lib/gdal/raster_band.rb +24 -24
  124. data/lib/gdal/rpc_info.rb +2 -2
  125. data/lib/gdal/transformer.rb +1 -1
  126. data/lib/gdal/transformers/general_image_projection_transformer.rb +1 -1
  127. data/lib/gdal/transformers/general_image_projection_transformer2.rb +1 -1
  128. data/lib/gdal/transformers/general_image_projection_transformer3.rb +1 -1
  129. data/lib/gdal/version_info.rb +9 -9
  130. data/lib/gdal/virtual_dataset.rb +4 -4
  131. data/lib/gdal/warp_operation.rb +2 -2
  132. data/lib/gdal/warp_options.rb +2 -2
  133. data/lib/gdal.rb +17 -17
  134. data/lib/ogr/coordinate_transformation.rb +5 -5
  135. data/lib/ogr/data_source.rb +9 -9
  136. data/lib/ogr/driver.rb +9 -9
  137. data/lib/ogr/envelope.rb +1 -1
  138. data/lib/ogr/error_handling.rb +1 -1
  139. data/lib/ogr/extensions/all.rb +1 -1
  140. data/lib/ogr/extensions/data_source/capability_methods.rb +4 -4
  141. data/lib/ogr/extensions/data_source/data_source_extensions.rb +1 -1
  142. data/lib/ogr/extensions/driver/capability_methods.rb +3 -3
  143. data/lib/ogr/extensions/envelope/extensions.rb +1 -1
  144. data/lib/ogr/extensions/feature/extensions.rb +1 -1
  145. data/lib/ogr/extensions/feature_definition/extensions.rb +1 -1
  146. data/lib/ogr/extensions/geometries/point/extensions.rb +1 -1
  147. data/lib/ogr/extensions/geometry/container_mixins.rb +10 -10
  148. data/lib/ogr/extensions/geometry/ewkb_io_extensions.rb +3 -3
  149. data/lib/ogr/extensions/geometry/ewkb_record.rb +4 -4
  150. data/lib/ogr/extensions/geometry/extensions.rb +4 -7
  151. data/lib/ogr/extensions/geometry/rttopo_extensions.rb +2 -2
  152. data/lib/ogr/extensions/geometry/wkb_record.rb +3 -3
  153. data/lib/ogr/extensions/geometry_types/curve/extensions.rb +2 -2
  154. data/lib/ogr/extensions/layer/capability_methods.rb +17 -17
  155. data/lib/ogr/extensions/layer/extensions.rb +1 -1
  156. data/lib/ogr/extensions/spatial_reference/extensions.rb +1 -1
  157. data/lib/ogr/extensions/spatial_reference/initializers.rb +2 -2
  158. data/lib/ogr/extensions/style_table/extensions.rb +1 -1
  159. data/lib/ogr/feature.rb +15 -15
  160. data/lib/ogr/feature_definition.rb +2 -2
  161. data/lib/ogr/field.rb +5 -5
  162. data/lib/ogr/field_definition.rb +1 -1
  163. data/lib/ogr/geocoder.rb +1 -1
  164. data/lib/ogr/geometries/geometry_collection.rb +2 -2
  165. data/lib/ogr/geometries/geometry_collection_25d.rb +1 -1
  166. data/lib/ogr/geometries/line_string.rb +1 -1
  167. data/lib/ogr/geometries/line_string_25d.rb +1 -1
  168. data/lib/ogr/geometries/linear_ring.rb +2 -2
  169. data/lib/ogr/geometries/multi_line_string.rb +2 -2
  170. data/lib/ogr/geometries/multi_line_string_25d.rb +1 -1
  171. data/lib/ogr/geometries/multi_point.rb +1 -1
  172. data/lib/ogr/geometries/multi_point_25d.rb +1 -1
  173. data/lib/ogr/geometries/multi_polygon.rb +2 -2
  174. data/lib/ogr/geometries/multi_polygon_25d.rb +1 -1
  175. data/lib/ogr/geometries/point_25d.rb +1 -1
  176. data/lib/ogr/geometries/polygon.rb +2 -2
  177. data/lib/ogr/geometries/polygon_25d.rb +1 -1
  178. data/lib/ogr/geometry.rb +11 -11
  179. data/lib/ogr/geometry_types/container.rb +1 -1
  180. data/lib/ogr/geometry_types/curve.rb +1 -1
  181. data/lib/ogr/internal_helpers.rb +4 -4
  182. data/lib/ogr/layer.rb +8 -8
  183. data/lib/ogr/layer_mixins/ogr_feature_methods.rb +9 -9
  184. data/lib/ogr/layer_mixins/ogr_field_methods.rb +15 -15
  185. data/lib/ogr/layer_mixins/ogr_sql_methods.rb +2 -2
  186. data/lib/ogr/spatial_reference.rb +19 -19
  187. data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +4 -4
  188. data/lib/ogr/spatial_reference_mixins/exporters.rb +9 -9
  189. data/lib/ogr/spatial_reference_mixins/importers.rb +2 -2
  190. data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -2
  191. data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +1 -1
  192. data/lib/ogr/style_table.rb +3 -3
  193. data/lib/ogr/style_tool.rb +1 -1
  194. data/lib/ogr.rb +33 -33
  195. data/rakelib/docker.rake +2 -2
  196. metadata +14 -150
  197. data/bitbucket-pipelines.yml +0 -16
  198. data/tilt/gdal2.yml +0 -22
  199. data/tilt/gdal3.yml +0 -22
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'date'
3
+ require "date"
4
4
 
5
5
  module GDAL
6
6
  module VersionInfo
@@ -8,42 +8,42 @@ module GDAL
8
8
  #
9
9
  # @return [String]
10
10
  def version_num
11
- FFI::GDAL.GDALVersionInfo('VERSION_NUM')
11
+ FFI::GDAL.GDALVersionInfo("VERSION_NUM")
12
12
  end
13
13
 
14
14
  # @return [Date]
15
15
  def release_date
16
- Date.parse(FFI::GDAL.GDALVersionInfo('RELEASE_DATE'))
16
+ Date.parse(FFI::GDAL.GDALVersionInfo("RELEASE_DATE"))
17
17
  end
18
18
 
19
19
  # Version in the form "1.1.7".
20
20
  #
21
21
  # @return [String]
22
22
  def release_name
23
- FFI::GDAL.GDALVersionInfo('RELEASE_NAME')
23
+ FFI::GDAL.GDALVersionInfo("RELEASE_NAME")
24
24
  end
25
25
 
26
26
  # The long licensing info.
27
27
  #
28
28
  # @return [String]
29
29
  def license
30
- FFI::GDAL.GDALVersionInfo('LICENSE')
30
+ FFI::GDAL.GDALVersionInfo("LICENSE")
31
31
  end
32
32
 
33
33
  # Options used when building GDAL.
34
34
  #
35
35
  # @return [Hash{String => String}]
36
36
  def build_info
37
- key_value_pairs = FFI::GDAL.GDALVersionInfo('BUILD_INFO')
37
+ key_value_pairs = FFI::GDAL.GDALVersionInfo("BUILD_INFO")
38
38
  key_value_pairs.split.each_with_object({}) do |kv, obj|
39
- key, value = kv.split('=', 2)
39
+ key, value = kv.split("=", 2)
40
40
  obj[key] = value
41
41
  end
42
42
  end
43
43
 
44
44
  # @return [String]
45
45
  def long_version
46
- FFI::GDAL.GDALVersionInfo('--version')
46
+ FFI::GDAL.GDALVersionInfo("--version")
47
47
  end
48
48
 
49
49
  # @param major [Integer]
@@ -51,7 +51,7 @@ module GDAL
51
51
  # @return [Boolean] +true+ if the runtime GDAL library matches the given
52
52
  # version params.
53
53
  def check_version(major, minor)
54
- FFI::GDAL.GDALCheckVersion(major, minor, 'FFI::GDAL')
54
+ FFI::GDAL.GDALCheckVersion(major, minor, "FFI::GDAL")
55
55
  end
56
56
  end
57
57
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
4
- require_relative 'major_object'
3
+ require_relative "../gdal"
4
+ require_relative "major_object"
5
5
 
6
6
  module GDAL
7
7
  class VirtualDataset
@@ -19,7 +19,7 @@ module GDAL
19
19
  end
20
20
 
21
21
  # TODO: Build the xml string
22
- def to_xml(path = '')
22
+ def to_xml(path = "")
23
23
  xml_node = FFI::GDAL::VRT.VRTSerializeToXML(@c_pointer, path)
24
24
 
25
25
  FFI::CPL::MiniXML.CPLSerializeXMLTree(xml_node)
@@ -46,7 +46,7 @@ module GDAL
46
46
  def add_simple_source(vrt_band, source_band, no_data_value,
47
47
  src_x_offset: 0, src_y_offset: 0, src_x_size: nil, src_y_size: nil,
48
48
  dst_x_offset: 0, dst_y_offset: 0, dst_x_size: nil, dst_y_size: nil,
49
- resampling: '')
49
+ resampling: "")
50
50
  FFI::GDAL::VRT.VRTAddSimpleSource(
51
51
  vrt_band,
52
52
  source_band, # hSrcBand
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
3
+ require_relative "../gdal"
4
4
 
5
5
  module GDAL
6
6
  class WarpOperation
@@ -18,7 +18,7 @@ module GDAL
18
18
  def initialize(warp_options)
19
19
  pointer = FFI::GDAL::Warper.GDALCreateWarpOperation(warp_options.c_struct)
20
20
 
21
- raise GDAL::Error, 'Unable to create warp operation' if pointer.null?
21
+ raise GDAL::Error, "Unable to create warp operation" if pointer.null?
22
22
 
23
23
  @c_pointer = FFI::AutoPointer.new(pointer, WarpOperation.method(:release))
24
24
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
3
+ require_relative "../gdal"
4
4
 
5
5
  module GDAL
6
6
  class WarpOptions
@@ -97,7 +97,7 @@ module GDAL
97
97
 
98
98
  # @param geometry [OGR::Geometry]
99
99
  def cutline=(geometry)
100
- raise 'Not a geom' unless geometry.is_a?(OGR::Geometry)
100
+ raise "Not a geom" unless geometry.is_a?(OGR::Geometry)
101
101
 
102
102
  @cutline = geometry
103
103
 
data/lib/gdal.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ffi-gdal'
4
- require_relative 'ffi/gdal'
3
+ require_relative "ffi-gdal"
4
+ require_relative "ffi/gdal"
5
5
 
6
6
  module GDAL
7
7
  class << self
@@ -27,23 +27,23 @@ module GDAL
27
27
  end
28
28
 
29
29
  # Autoload just the core GDAL object types.
30
- autoload :ColorTable, gdal_require('gdal/color_table')
31
- autoload :Dataset, gdal_require('gdal/dataset')
32
- autoload :DataType, gdal_require('gdal/data_type')
33
- autoload :Driver, gdal_require('gdal/driver')
34
- autoload :GeoTransform, gdal_require('gdal/geo_transform')
35
- autoload :Logger, gdal_require('gdal/logger')
36
- autoload :MajorObject, gdal_require('gdal/major_object')
37
- autoload :Options, gdal_require('gdal/options')
38
- autoload :RasterAttributeTable, gdal_require('gdal/raster_attribute_table')
39
- autoload :RasterBand, gdal_require('gdal/raster_band')
30
+ autoload :ColorTable, gdal_require("gdal/color_table")
31
+ autoload :Dataset, gdal_require("gdal/dataset")
32
+ autoload :DataType, gdal_require("gdal/data_type")
33
+ autoload :Driver, gdal_require("gdal/driver")
34
+ autoload :GeoTransform, gdal_require("gdal/geo_transform")
35
+ autoload :Logger, gdal_require("gdal/logger")
36
+ autoload :MajorObject, gdal_require("gdal/major_object")
37
+ autoload :Options, gdal_require("gdal/options")
38
+ autoload :RasterAttributeTable, gdal_require("gdal/raster_attribute_table")
39
+ autoload :RasterBand, gdal_require("gdal/raster_band")
40
40
  end
41
41
 
42
- require_relative 'gdal/exceptions'
43
- require_relative 'gdal/version_info'
44
- require_relative 'gdal/environment_methods'
45
- require_relative 'gdal/internal_helpers'
46
- require_relative 'gdal/cpl_error_handler'
42
+ require_relative "gdal/exceptions"
43
+ require_relative "gdal/version_info"
44
+ require_relative "gdal/environment_methods"
45
+ require_relative "gdal/internal_helpers"
46
+ require_relative "gdal/cpl_error_handler"
47
47
 
48
48
  module GDAL
49
49
  extend VersionInfo
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'narray'
4
- require_relative '../ogr'
5
- require_relative '../gdal'
3
+ require "narray"
4
+ require_relative "../ogr"
5
+ require_relative "../gdal"
6
6
 
7
7
  module OGR
8
8
  class CoordinateTransformation
@@ -13,7 +13,7 @@ module OGR
13
13
  FFI::GDAL::GDAL.OCTProj4Normalize(proj4_source)
14
14
  else
15
15
  raise OGR::UnsupportedOperation,
16
- 'Your version of GDAL/OGR does not support OCTProj4Normalize'
16
+ "Your version of GDAL/OGR does not support OCTProj4Normalize"
17
17
  end
18
18
  end
19
19
 
@@ -46,7 +46,7 @@ module OGR
46
46
  # by the null-pointer check below.
47
47
  pointer = FFI::OGR::SRSAPI.OCTNewCoordinateTransformation(source_ptr, destination_ptr)
48
48
 
49
- raise GDAL::Error, 'Unable to create coordinate transformation' if pointer.null?
49
+ raise GDAL::Error, "Unable to create coordinate transformation" if pointer.null?
50
50
 
51
51
  @c_pointer = pointer
52
52
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../gdal'
4
- require_relative '../ogr'
5
- require_relative '../gdal/major_object'
3
+ require_relative "../gdal"
4
+ require_relative "../ogr"
5
+ require_relative "../gdal/major_object"
6
6
 
7
7
  module OGR
8
8
  class DataSource
@@ -14,7 +14,7 @@ module OGR
14
14
  # @param path [String]
15
15
  # @param access_flag [String] 'r' for read, 'w', for write.
16
16
  # @return [OGR::DataSource]
17
- def self.open(path, access_flag = 'r')
17
+ def self.open(path, access_flag = "r")
18
18
  ds = new(path, access_flag)
19
19
 
20
20
  if block_given?
@@ -138,9 +138,9 @@ module OGR
138
138
  # @param options [Hash] Driver-specific options.
139
139
  # @return [OGR::Layer]
140
140
  def create_layer(name, geometry_type: :wkbUnknown, spatial_reference: nil, **options)
141
- unless test_capability('CreateLayer')
141
+ unless test_capability("CreateLayer")
142
142
  raise OGR::UnsupportedOperation,
143
- 'This data source does not support creating layers.'
143
+ "This data source does not support creating layers."
144
144
  end
145
145
 
146
146
  spatial_ref_ptr = GDAL._pointer(OGR::SpatialReference, spatial_reference, autorelease: false) if spatial_reference
@@ -174,9 +174,9 @@ module OGR
174
174
  # @param index [Integer]
175
175
  # @raise [OGR::Failure]
176
176
  def delete_layer(index)
177
- unless test_capability('DeleteLayer')
177
+ unless test_capability("DeleteLayer")
178
178
  raise OGR::UnsupportedOperation,
179
- 'This data source does not support deleting layers.'
179
+ "This data source does not support deleting layers."
180
180
  end
181
181
 
182
182
  OGR::ErrorHandling.handle_ogr_err("Unable to delete layer at index #{index}") do
@@ -236,7 +236,7 @@ module OGR
236
236
 
237
237
  # @raise [OGR::Failure]
238
238
  def sync_to_disk
239
- OGR::ErrorHandling.handle_ogr_err('Unable to syn datasource to disk') do
239
+ OGR::ErrorHandling.handle_ogr_err("Unable to syn datasource to disk") do
240
240
  FFI::OGR::API.OGR_DS_SyncToDisk(@c_pointer)
241
241
  end
242
242
  end
data/lib/ogr/driver.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../ogr'
4
- require_relative '../gdal'
5
- require_relative '../gdal/major_object'
3
+ require_relative "../ogr"
4
+ require_relative "../gdal"
5
+ require_relative "../gdal/major_object"
6
6
 
7
7
  module OGR
8
8
  # Wrapper for OGR's Driver class. In this case, to use a driver, find the
@@ -69,7 +69,7 @@ module OGR
69
69
  # @param file_name [String]
70
70
  # @param access_flag [String] 'r' or 'w'.
71
71
  # @return [OGR::DataSource, nil]
72
- def open(file_name, access_flag = 'r')
72
+ def open(file_name, access_flag = "r")
73
73
  update = OGR._boolean_access_flag(access_flag)
74
74
 
75
75
  data_source_ptr = FFI::OGR::API.OGR_Dr_Open(@c_pointer, file_name, update)
@@ -87,8 +87,8 @@ module OGR
87
87
  # @param options [Hash]
88
88
  # @return [OGR::DataSource, nil]
89
89
  def create_data_source(file_name, **options)
90
- unless test_capability('CreateDataSource')
91
- raise OGR::UnsupportedOperation, 'This driver does not support data source creation.'
90
+ unless test_capability("CreateDataSource")
91
+ raise OGR::UnsupportedOperation, "This driver does not support data source creation."
92
92
  end
93
93
 
94
94
  options_ptr = GDAL::Options.pointer(options)
@@ -97,7 +97,7 @@ module OGR
97
97
  file_name, options_ptr)
98
98
  raise OGR::CreateFailure, "Unable to create DataSource '#{file_name}'" if data_source_ptr.null?
99
99
 
100
- ds = OGR::DataSource.new(data_source_ptr, 'w')
100
+ ds = OGR::DataSource.new(data_source_ptr, "w")
101
101
  yield ds if block_given?
102
102
 
103
103
  ds
@@ -106,8 +106,8 @@ module OGR
106
106
  # @param file_name [String]
107
107
  # @raise [OGR::Failure]
108
108
  def delete_data_source(file_name)
109
- unless test_capability('DeleteDataSource')
110
- raise OGR::UnsupportedOperation, 'This driver does not support deleting data sources.'
109
+ unless test_capability("DeleteDataSource")
110
+ raise OGR::UnsupportedOperation, "This driver does not support deleting data sources."
111
111
  end
112
112
 
113
113
  OGR::ErrorHandling.handle_ogr_err("Unable to delete data source '#{file_name}'") do
data/lib/ogr/envelope.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../ogr'
3
+ require_relative "../ogr"
4
4
 
5
5
  module OGR
6
6
  class Envelope
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'exceptions'
3
+ require_relative "exceptions"
4
4
 
5
5
  module OGR
6
6
  # OGR returns errors as Integers--not as part of the GDAL/CPLErr error
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir[File.join(__dir__, '**/extensions/**/*.rb')].sort.each { |f| require f }
3
+ Dir[File.join(__dir__, "**/*.rb")].sort.each { |f| require f }
@@ -6,23 +6,23 @@ module OGR
6
6
  module CapabilityMethods
7
7
  # @return [Boolean] +true+ if the DataSource can create existing Layers.
8
8
  def can_create_layer?
9
- test_capability('CreateLayer')
9
+ test_capability("CreateLayer")
10
10
  end
11
11
 
12
12
  # @return [Boolean] +true+ if the DataSource can delete existing Layers.
13
13
  def can_delete_layer?
14
- test_capability('DeleteLayer')
14
+ test_capability("DeleteLayer")
15
15
  end
16
16
 
17
17
  # @return [Boolean] +true+ if the DataSource supports creating a
18
18
  # GeometryField after a Layer has been created.
19
19
  def can_create_geometry_field_after_create_layer?
20
- test_capability('CreateGeomFieldAfterCreateLayer')
20
+ test_capability("CreateGeomFieldAfterCreateLayer")
21
21
  end
22
22
 
23
23
  # @return [Boolean] +true+ if the DataSource supports curve geometries.
24
24
  def supports_curve_geometries?
25
- test_capability('CurveGeometries')
25
+ test_capability("CurveGeometries")
26
26
  end
27
27
  end
28
28
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/data_source'
3
+ require "ogr/data_source"
4
4
 
5
5
  module OGR
6
6
  class DataSource
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/driver'
3
+ require "ogr/driver"
4
4
 
5
5
  module OGR
6
6
  module DriverMixins
@@ -8,12 +8,12 @@ module OGR
8
8
  module CapabilityMethods
9
9
  # @return [Boolean] +true+ if this driver supports creating data sources.
10
10
  def can_create_data_source?
11
- test_capability('CreateDataSource')
11
+ test_capability("CreateDataSource")
12
12
  end
13
13
 
14
14
  # @return [Boolean] +true+ if this driver supports deleting data sources.
15
15
  def can_delete_data_source?
16
- test_capability('DeleteDataSource')
16
+ test_capability("DeleteDataSource")
17
17
  end
18
18
  end
19
19
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/envelope'
3
+ require "ogr/envelope"
4
4
 
5
5
  module OGR
6
6
  class Envelope
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/feature'
3
+ require "ogr/feature"
4
4
 
5
5
  module OGR
6
6
  class Feature
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/feature_definition'
3
+ require "ogr/feature_definition"
4
4
 
5
5
  module OGR
6
6
  class FeatureDefinition
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/geometry'
3
+ require "ogr/geometry"
4
4
 
5
5
  module OGR
6
6
  class Point
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/geometries/geometry_collection'
4
- require 'ogr/geometries/geometry_collection_25d'
5
- require 'ogr/geometries/multi_line_string'
6
- require 'ogr/geometries/multi_line_string_25d'
7
- require 'ogr/geometries/multi_point'
8
- require 'ogr/geometries/multi_point_25d'
9
- require 'ogr/geometries/multi_polygon'
10
- require 'ogr/geometries/multi_polygon_25d'
11
- require 'ogr/geometries/polygon'
12
- require 'ogr/geometries/polygon_25d'
3
+ require "ogr/geometries/geometry_collection"
4
+ require "ogr/geometries/geometry_collection_25d"
5
+ require "ogr/geometries/multi_line_string"
6
+ require "ogr/geometries/multi_line_string_25d"
7
+ require "ogr/geometries/multi_point"
8
+ require "ogr/geometries/multi_point_25d"
9
+ require "ogr/geometries/multi_polygon"
10
+ require "ogr/geometries/multi_polygon_25d"
11
+ require "ogr/geometries/polygon"
12
+ require "ogr/geometries/polygon_25d"
13
13
 
14
14
  module OGR
15
15
  module GeometryMixins
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/spatial_reference'
4
- require_relative 'ewkb_record'
5
- require_relative 'wkb_record'
3
+ require "ogr/spatial_reference"
4
+ require_relative "ewkb_record"
5
+ require_relative "wkb_record"
6
6
 
7
7
  module OGR
8
8
  module Geometry
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bindata'
4
- require 'ffi-gdal'
5
- require 'ogr'
6
- require_relative 'wkb_record'
3
+ require "bindata"
4
+ require "ffi-gdal"
5
+ require "ogr"
6
+ require_relative "wkb_record"
7
7
 
8
8
  # rubocop:disable Naming/PredicateName
9
9
  module OGR
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/geometry'
3
+ require "ogr/geometry"
4
4
 
5
5
  module OGR
6
6
  module GeometryMixins
@@ -10,15 +10,12 @@ module OGR
10
10
  return unless spatial_reference
11
11
 
12
12
  self_as4326 =
13
- if spatial_reference.authority_code == '4326'
13
+ if spatial_reference.authority_code == "4326"
14
14
  self
15
15
  else
16
16
  # NOTE: #clone here has overridden Ruby's clone and calls OGR_G_Clone;
17
17
  # it's important to do this and
18
- as4326 = clone
19
- return unless as4326.transform_to!(OGR::SpatialReference.new.import_from_epsg(4326))
20
-
21
- as4326
18
+ clone.tap { |as4326| as4326.transform_to!(OGR::SpatialReference.new.import_from_epsg(4326)) }
22
19
  end
23
20
 
24
21
  self_as4326 = self_as4326.buffer(0) unless valid?
@@ -64,7 +61,7 @@ module OGR
64
61
  false
65
62
  end
66
63
 
67
- def to_vector(file_name, driver, layer_name: 'vectorized_geometry', spatial_reference: nil)
64
+ def to_vector(file_name, driver, layer_name: "vectorized_geometry", spatial_reference: nil)
68
65
  driver = OGR::Driver.by_name(driver)
69
66
 
70
67
  data_source = driver.create_data_source(file_name)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr'
4
- require 'ffi/extensions/rttopo'
3
+ require "ogr"
4
+ require "ffi/extensions/rttopo"
5
5
 
6
6
  module OGR
7
7
  module Geometry
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bindata'
4
- require 'ffi-gdal'
5
- require 'ogr'
3
+ require "bindata"
4
+ require "ffi-gdal"
5
+ require "ogr"
6
6
 
7
7
  module OGR
8
8
  module Geometry
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ogr/geometry'
4
- require 'gdal/extensions/geo_transform/extensions'
3
+ require "ogr/geometry"
4
+ require "gdal/extensions/geo_transform/extensions"
5
5
 
6
6
  module OGR
7
7
  module GeometryTypes