ffi-gdal 1.0.0.beta6 → 1.0.0.beta11

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 (303) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +54 -19
  3. data/.rubocop_todo.yml +65 -0
  4. data/.ruby-version +1 -1
  5. data/Gemfile +2 -0
  6. data/History.md +74 -0
  7. data/README.md +5 -0
  8. data/Rakefile +11 -1
  9. data/bitbucket-pipelines.yml +16 -0
  10. data/examples/extract_and_colorize.rb +7 -10
  11. data/examples/geometries.rb +68 -1
  12. data/examples/gridding.rb +2 -0
  13. data/examples/ogr_layer_to_layer.rb +2 -0
  14. data/examples/raster_erasing.rb +15 -8
  15. data/examples/remove_small_polygons.rb +2 -0
  16. data/examples/testing_gdal.rb +9 -2
  17. data/examples/warping.rb +23 -5
  18. data/ffi-gdal.gemspec +7 -4
  19. data/lib/ext/error_symbols.rb +2 -0
  20. data/lib/ext/ffi_library_function_checks.rb +2 -0
  21. data/lib/ext/float_ext.rb +2 -0
  22. data/lib/ext/narray_ext.rb +2 -0
  23. data/lib/ext/numeric_as_data_type.rb +2 -0
  24. data/lib/ext/to_bool.rb +5 -3
  25. data/lib/ffi-gdal.rb +2 -0
  26. data/lib/ffi/cpl.rb +2 -0
  27. data/lib/ffi/cpl/conv.rb +4 -2
  28. data/lib/ffi/cpl/error.rb +2 -0
  29. data/lib/ffi/cpl/hash_set.rb +2 -0
  30. data/lib/ffi/cpl/http.rb +2 -0
  31. data/lib/ffi/cpl/http_result.rb +2 -0
  32. data/lib/ffi/cpl/list.rb +2 -0
  33. data/lib/ffi/cpl/mime_part.rb +2 -0
  34. data/lib/ffi/cpl/minixml.rb +2 -0
  35. data/lib/ffi/cpl/port.rb +2 -0
  36. data/lib/ffi/cpl/progress.rb +2 -0
  37. data/lib/ffi/cpl/quad_tree.rb +2 -0
  38. data/lib/ffi/cpl/rect_obj.rb +2 -0
  39. data/lib/ffi/cpl/string.rb +2 -0
  40. data/lib/ffi/cpl/vsi.rb +2 -0
  41. data/lib/ffi/cpl/xml_node.rb +2 -0
  42. data/lib/ffi/gdal.rb +3 -3
  43. data/lib/ffi/gdal/alg.rb +2 -0
  44. data/lib/ffi/gdal/color_entry.rb +2 -0
  45. data/lib/ffi/gdal/exceptions.rb +2 -0
  46. data/lib/ffi/gdal/gcp.rb +2 -0
  47. data/lib/ffi/gdal/gdal.rb +2 -0
  48. data/lib/ffi/gdal/grid.rb +2 -0
  49. data/lib/ffi/gdal/grid_data_metrics_options.rb +2 -0
  50. data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +2 -0
  51. data/lib/ffi/gdal/grid_moving_average_options.rb +2 -0
  52. data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +2 -0
  53. data/lib/ffi/gdal/matching.rb +2 -0
  54. data/lib/ffi/gdal/rpc_info.rb +2 -0
  55. data/lib/ffi/gdal/transformer_info.rb +2 -0
  56. data/lib/ffi/gdal/version.rb +3 -1
  57. data/lib/ffi/gdal/vrt.rb +2 -0
  58. data/lib/ffi/gdal/warp_options.rb +9 -4
  59. data/lib/ffi/gdal/warper.rb +19 -1
  60. data/lib/ffi/ogr.rb +2 -0
  61. data/lib/ffi/ogr/api.rb +2 -0
  62. data/lib/ffi/ogr/contour_writer_info.rb +2 -0
  63. data/lib/ffi/ogr/core.rb +2 -0
  64. data/lib/ffi/ogr/envelope.rb +2 -0
  65. data/lib/ffi/ogr/envelope_3d.rb +2 -0
  66. data/lib/ffi/ogr/featurestyle.rb +2 -0
  67. data/lib/ffi/ogr/field.rb +2 -0
  68. data/lib/ffi/ogr/geocoding.rb +2 -0
  69. data/lib/ffi/ogr/srs_api.rb +3 -0
  70. data/lib/ffi/ogr/style_param.rb +2 -0
  71. data/lib/ffi/ogr/style_value.rb +2 -0
  72. data/lib/gdal.rb +3 -0
  73. data/lib/gdal/color_entry.rb +2 -0
  74. data/lib/gdal/color_entry_mixins/extensions.rb +2 -14
  75. data/lib/gdal/color_interpretation.rb +2 -0
  76. data/lib/gdal/color_table.rb +2 -0
  77. data/lib/gdal/color_table_mixins/extensions.rb +3 -17
  78. data/lib/gdal/color_table_types/cmyk.rb +2 -0
  79. data/lib/gdal/color_table_types/gray.rb +2 -0
  80. data/lib/gdal/color_table_types/hls.rb +2 -0
  81. data/lib/gdal/color_table_types/rgb.rb +2 -0
  82. data/lib/gdal/cpl_error_handler.rb +2 -0
  83. data/lib/gdal/data_type.rb +2 -0
  84. data/lib/gdal/dataset.rb +11 -7
  85. data/lib/gdal/dataset_mixins/algorithm_methods.rb +7 -4
  86. data/lib/gdal/dataset_mixins/extensions.rb +7 -47
  87. data/lib/gdal/dataset_mixins/matching.rb +4 -1
  88. data/lib/gdal/dataset_mixins/warp_methods.rb +52 -11
  89. data/lib/gdal/driver.rb +6 -8
  90. data/lib/gdal/driver_mixins/extensions.rb +2 -0
  91. data/lib/gdal/environment_methods.rb +2 -0
  92. data/lib/gdal/exceptions.rb +2 -0
  93. data/lib/gdal/geo_transform.rb +3 -3
  94. data/lib/gdal/geo_transform_mixins/extensions.rb +2 -17
  95. data/lib/gdal/grid.rb +4 -1
  96. data/lib/gdal/grid_algorithms.rb +2 -0
  97. data/lib/gdal/grid_algorithms/data_metrics_base.rb +2 -0
  98. data/lib/gdal/grid_algorithms/inverse_distance_to_a_power.rb +2 -0
  99. data/lib/gdal/grid_algorithms/metric_average_distance.rb +2 -0
  100. data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +2 -0
  101. data/lib/gdal/grid_algorithms/metric_count.rb +2 -0
  102. data/lib/gdal/grid_algorithms/metric_maximum.rb +2 -0
  103. data/lib/gdal/grid_algorithms/metric_minimum.rb +2 -0
  104. data/lib/gdal/grid_algorithms/metric_range.rb +2 -0
  105. data/lib/gdal/grid_algorithms/moving_average.rb +2 -0
  106. data/lib/gdal/grid_algorithms/nearest_neighbor.rb +2 -0
  107. data/lib/gdal/gridder.rb +11 -3
  108. data/lib/gdal/gridder/point_extracting.rb +3 -2
  109. data/lib/gdal/gridder_options.rb +2 -0
  110. data/lib/gdal/internal_helpers.rb +3 -4
  111. data/lib/gdal/logger.rb +2 -0
  112. data/lib/gdal/major_object.rb +2 -0
  113. data/lib/gdal/merger.rb +2 -0
  114. data/lib/gdal/options.rb +16 -13
  115. data/lib/gdal/raster_attribute_table.rb +2 -0
  116. data/lib/gdal/raster_attribute_table_mixins/extensions.rb +3 -16
  117. data/lib/gdal/raster_band.rb +11 -6
  118. data/lib/gdal/raster_band_classifier.rb +52 -19
  119. data/lib/gdal/raster_band_mixins/algorithm_extensions.rb +2 -0
  120. data/lib/gdal/raster_band_mixins/algorithm_methods.rb +12 -5
  121. data/lib/gdal/raster_band_mixins/coloring_extensions.rb +3 -1
  122. data/lib/gdal/raster_band_mixins/extensions.rb +6 -35
  123. data/lib/gdal/raster_band_mixins/io_extensions.rb +7 -4
  124. data/lib/gdal/rpc_info.rb +2 -0
  125. data/lib/gdal/transformer.rb +2 -0
  126. data/lib/gdal/transformers/approximate_transformer.rb +4 -1
  127. data/lib/gdal/transformers/base_general_image_projection_transformer.rb +4 -1
  128. data/lib/gdal/transformers/gcp_transformer.rb +6 -2
  129. data/lib/gdal/transformers/general_image_projection_transformer.rb +2 -0
  130. data/lib/gdal/transformers/general_image_projection_transformer2.rb +4 -1
  131. data/lib/gdal/transformers/general_image_projection_transformer3.rb +4 -1
  132. data/lib/gdal/transformers/geolocation_transformer.rb +4 -1
  133. data/lib/gdal/transformers/reprojection_transformer.rb +2 -0
  134. data/lib/gdal/transformers/rpc_transformer.rb +4 -1
  135. data/lib/gdal/transformers/tps_transformer.rb +2 -0
  136. data/lib/gdal/version_info.rb +9 -7
  137. data/lib/gdal/virtual_dataset.rb +2 -0
  138. data/lib/gdal/warp_operation.rb +2 -0
  139. data/lib/gdal/warp_options.rb +105 -35
  140. data/lib/ogr.rb +2 -0
  141. data/lib/ogr/coordinate_transformation.rb +2 -0
  142. data/lib/ogr/data_source.rb +5 -9
  143. data/lib/ogr/data_source_extensions.rb +2 -19
  144. data/lib/ogr/data_source_mixins/capability_methods.rb +2 -0
  145. data/lib/ogr/driver.rb +4 -6
  146. data/lib/ogr/driver_mixins/capability_methods.rb +2 -0
  147. data/lib/ogr/envelope.rb +4 -2
  148. data/lib/ogr/envelope_extensions.rb +2 -22
  149. data/lib/ogr/error_handling.rb +3 -1
  150. data/lib/ogr/exceptions.rb +3 -1
  151. data/lib/ogr/feature.rb +17 -9
  152. data/lib/ogr/feature_definition.rb +7 -4
  153. data/lib/ogr/feature_definition_extensions.rb +2 -18
  154. data/lib/ogr/feature_extensions.rb +2 -27
  155. data/lib/ogr/field.rb +5 -1
  156. data/lib/ogr/field_definition.rb +5 -6
  157. data/lib/ogr/geocoder.rb +2 -0
  158. data/lib/ogr/geometries/geometry_collection.rb +2 -0
  159. data/lib/ogr/geometries/geometry_collection_25d.rb +2 -0
  160. data/lib/ogr/geometries/line_string.rb +2 -1
  161. data/lib/ogr/geometries/line_string_25d.rb +2 -0
  162. data/lib/ogr/geometries/linear_ring.rb +2 -0
  163. data/lib/ogr/geometries/multi_line_string.rb +2 -0
  164. data/lib/ogr/geometries/multi_line_string_25d.rb +2 -0
  165. data/lib/ogr/geometries/multi_point.rb +2 -0
  166. data/lib/ogr/geometries/multi_point_25d.rb +2 -0
  167. data/lib/ogr/geometries/multi_polygon.rb +2 -0
  168. data/lib/ogr/geometries/multi_polygon_25d.rb +2 -0
  169. data/lib/ogr/geometries/none_geometry.rb +2 -0
  170. data/lib/ogr/geometries/point.rb +2 -0
  171. data/lib/ogr/geometries/point_25d.rb +2 -0
  172. data/lib/ogr/geometries/polygon.rb +2 -0
  173. data/lib/ogr/geometries/polygon_25d.rb +2 -0
  174. data/lib/ogr/geometries/unknown_geometry.rb +2 -0
  175. data/lib/ogr/geometry.rb +3 -4
  176. data/lib/ogr/geometry_field_definition.rb +3 -4
  177. data/lib/ogr/geometry_mixins/container_mixins.rb +2 -0
  178. data/lib/ogr/geometry_mixins/extensions.rb +10 -39
  179. data/lib/ogr/geometry_types/container.rb +2 -0
  180. data/lib/ogr/geometry_types/curve.rb +3 -1
  181. data/lib/ogr/geometry_types/surface.rb +2 -0
  182. data/lib/ogr/internal_helpers.rb +2 -0
  183. data/lib/ogr/layer.rb +5 -1
  184. data/lib/ogr/layer_mixins/capability_methods.rb +2 -0
  185. data/lib/ogr/layer_mixins/extensions.rb +9 -27
  186. data/lib/ogr/layer_mixins/ogr_feature_methods.rb +6 -12
  187. data/lib/ogr/layer_mixins/ogr_field_methods.rb +10 -14
  188. data/lib/ogr/layer_mixins/ogr_layer_method_methods.rb +2 -0
  189. data/lib/ogr/layer_mixins/ogr_query_filter_methods.rb +8 -3
  190. data/lib/ogr/layer_mixins/ogr_sql_methods.rb +3 -3
  191. data/lib/ogr/spatial_reference.rb +12 -2
  192. data/lib/ogr/spatial_reference_extensions.rb +2 -26
  193. data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +12 -5
  194. data/lib/ogr/spatial_reference_mixins/exporters.rb +2 -0
  195. data/lib/ogr/spatial_reference_mixins/importers.rb +6 -2
  196. data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -0
  197. data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +2 -0
  198. data/lib/ogr/spatial_reference_mixins/type_checks.rb +2 -0
  199. data/lib/ogr/style_table.rb +2 -0
  200. data/lib/ogr/style_table_extensions.rb +2 -10
  201. data/lib/ogr/style_tool.rb +2 -0
  202. data/spec/ffi-gdal_spec.rb +2 -0
  203. data/spec/integration/gdal/color_table_info_spec.rb +2 -0
  204. data/spec/integration/gdal/dataset_info_spec.rb +15 -13
  205. data/spec/integration/gdal/driver_info_spec.rb +3 -1
  206. data/spec/integration/gdal/geo_transform_info_spec.rb +2 -0
  207. data/spec/integration/gdal/gridder_spec.rb +2 -0
  208. data/spec/integration/gdal/raster_attribute_table_info_spec.rb +2 -0
  209. data/spec/integration/gdal/raster_band_algorithms_spec.rb +2 -0
  210. data/spec/integration/gdal/raster_band_info_spec.rb +37 -15
  211. data/spec/integration/ogr/layer_spec.rb +2 -6
  212. data/spec/spec_helper.rb +3 -1
  213. data/spec/support/images/123.tiff +0 -0
  214. data/spec/support/integration_help.rb +2 -0
  215. data/spec/support/shared_contexts.rb +2 -0
  216. data/spec/support/shared_examples/gdal/major_object_examples.rb +2 -0
  217. data/spec/support/shared_examples/ogr/{a_25D_geometry.rb → a_25d_geometry.rb} +2 -0
  218. data/spec/support/shared_examples/ogr/a_container_geometry.rb +2 -0
  219. data/spec/support/shared_examples/ogr/a_geometry.rb +3 -1
  220. data/spec/support/shared_examples/ogr/a_line_string.rb +2 -0
  221. data/spec/unit/ext/error_symbols_spec.rb +2 -0
  222. data/spec/unit/ext/numeric_as_data_type_spec.rb +2 -0
  223. data/spec/unit/ffi/gdal_spec.rb +3 -0
  224. data/spec/unit/gdal/color_entry_spec.rb +2 -0
  225. data/spec/unit/gdal/color_interpretation_spec.rb +2 -0
  226. data/spec/unit/gdal/color_table_mixins/extensions_spec.rb +2 -0
  227. data/spec/unit/gdal/color_table_spec.rb +2 -0
  228. data/spec/unit/gdal/data_type_spec.rb +2 -0
  229. data/spec/unit/gdal/dataset_mixins/warp_methods_spec.rb +55 -0
  230. data/spec/unit/gdal/dataset_spec.rb +2 -0
  231. data/spec/unit/gdal/driver_mixins/extensions_spec.rb +2 -0
  232. data/spec/unit/gdal/driver_spec.rb +2 -0
  233. data/spec/unit/gdal/environment_methods_spec.rb +2 -0
  234. data/spec/unit/gdal/geo_transform_mixins/extensions_spec.rb +2 -0
  235. data/spec/unit/gdal/geo_transform_spec.rb +2 -13
  236. data/spec/unit/gdal/grid_spec.rb +10 -0
  237. data/spec/unit/gdal/gridder/point_extracting_spec.rb +2 -0
  238. data/spec/unit/gdal/gridder_options_spec.rb +2 -0
  239. data/spec/unit/gdal/gridder_spec.rb +42 -0
  240. data/spec/unit/gdal/internal_helpers_spec.rb +2 -0
  241. data/spec/unit/gdal/major_object_spec.rb +2 -0
  242. data/spec/unit/gdal/options_spec.rb +28 -1
  243. data/spec/unit/gdal/raster_attribute_table_spec.rb +2 -0
  244. data/spec/unit/gdal/raster_band_classifier_spec.rb +43 -5
  245. data/spec/unit/gdal/raster_band_mixins/extensions_spec.rb +2 -0
  246. data/spec/unit/gdal/raster_band_mixins/io_extensions_spec.rb +2 -0
  247. data/spec/unit/gdal/raster_band_spec.rb +2 -0
  248. data/spec/unit/gdal/rpc_info_spec.rb +2 -0
  249. data/spec/unit/gdal/version_info_spec.rb +2 -0
  250. data/spec/unit/gdal/virtual_dataset_spec.rb +2 -0
  251. data/spec/unit/gdal/warp_operation_spec.rb +2 -0
  252. data/spec/unit/gdal/warp_options_spec.rb +338 -0
  253. data/spec/unit/ogr/coordinate_transformation_spec.rb +2 -0
  254. data/spec/unit/ogr/data_source_mixins/capability_methods_spec.rb +2 -0
  255. data/spec/unit/ogr/data_source_spec.rb +2 -0
  256. data/spec/unit/ogr/driver_mixins/capability_methods_spec.rb +2 -0
  257. data/spec/unit/ogr/driver_spec.rb +3 -1
  258. data/spec/unit/ogr/envelope_spec.rb +2 -0
  259. data/spec/unit/ogr/feature_definition_spec.rb +2 -19
  260. data/spec/unit/ogr/feature_extensions_spec.rb +3 -1
  261. data/spec/unit/ogr/feature_spec.rb +3 -3
  262. data/spec/unit/ogr/field_definition_spec.rb +2 -19
  263. data/spec/unit/ogr/field_spec.rb +3 -1
  264. data/spec/unit/ogr/geometries/geometry_collection_25d_spec.rb +2 -0
  265. data/spec/unit/ogr/geometries/geometry_collection_spec.rb +2 -0
  266. data/spec/unit/ogr/geometries/line_string_25d_spec.rb +2 -0
  267. data/spec/unit/ogr/geometries/line_string_spec.rb +2 -0
  268. data/spec/unit/ogr/geometries/linear_ring_spec.rb +2 -0
  269. data/spec/unit/ogr/geometries/multi_line_string_25d_spec.rb +2 -0
  270. data/spec/unit/ogr/geometries/multi_line_string_spec.rb +2 -0
  271. data/spec/unit/ogr/geometries/multi_point_25d_spec.rb +2 -0
  272. data/spec/unit/ogr/geometries/multi_point_spec.rb +2 -0
  273. data/spec/unit/ogr/geometries/multi_polygon_25d_spec.rb +2 -0
  274. data/spec/unit/ogr/geometries/multi_polygon_spec.rb +2 -0
  275. data/spec/unit/ogr/geometries/none_geometry_spec.rb +2 -0
  276. data/spec/unit/ogr/geometries/point_25d_spec.rb +2 -0
  277. data/spec/unit/ogr/geometries/point_spec.rb +2 -0
  278. data/spec/unit/ogr/geometries/polygon_25d_spec.rb +2 -0
  279. data/spec/unit/ogr/geometries/polygon_spec.rb +2 -0
  280. data/spec/unit/ogr/geometries/unknown_geometry_spec.rb +2 -0
  281. data/spec/unit/ogr/geometry_field_definition_spec.rb +2 -16
  282. data/spec/unit/ogr/geometry_spec.rb +2 -0
  283. data/spec/unit/ogr/internal_helpers_spec.rb +2 -0
  284. data/spec/unit/ogr/layer_mixins/capability_methods_spec.rb +2 -0
  285. data/spec/unit/ogr/layer_mixins/ogr_feature_methods_spec.rb +2 -0
  286. data/spec/unit/ogr/layer_mixins/ogr_field_methods_spec.rb +2 -0
  287. data/spec/unit/ogr/layer_mixins/ogr_layer_method_methods_spec.rb +2 -0
  288. data/spec/unit/ogr/layer_mixins/ogr_query_filter_methods_spec.rb +2 -0
  289. data/spec/unit/ogr/layer_mixins/ogr_sql_methods_spec.rb +2 -0
  290. data/spec/unit/ogr/layer_spec.rb +2 -0
  291. data/spec/unit/ogr/spatial_reference_mixins/coordinate_system_getter_setters_spec.rb +2 -0
  292. data/spec/unit/ogr/spatial_reference_mixins/exporters_spec.rb +19 -15
  293. data/spec/unit/ogr/spatial_reference_mixins/importers_spec.rb +2 -0
  294. data/spec/unit/ogr/spatial_reference_mixins/morphers_spec.rb +9 -7
  295. data/spec/unit/ogr/spatial_reference_mixins/parameter_getter_setters_spec.rb +2 -0
  296. data/spec/unit/ogr/spatial_reference_mixins/type_checks_spec.rb +2 -0
  297. data/spec/unit/ogr/spatial_reference_spec.rb +4 -2
  298. data/spec/unit/ogr/style_table_spec.rb +2 -26
  299. data/spec/unit/ogr/style_tool_spec.rb +2 -0
  300. data/spec/unit/version_info_spec.rb +2 -0
  301. metadata +47 -15
  302. data/lib/ogr/field_definition_extensions.rb +0 -22
  303. data/lib/ogr/geometry_field_definition_extensions.rb +0 -19
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module LayerMixins
3
5
  module OGRSQLMethods
@@ -35,9 +37,7 @@ module OGR
35
37
 
36
38
  # @return [Boolean]
37
39
  def transact
38
- unless supports_transactions?
39
- raise OGR::UnsupportedOperation, 'This layer does not support transactions.'
40
- end
40
+ raise OGR::UnsupportedOperation, 'This layer does not support transactions.' unless supports_transactions?
41
41
 
42
42
  ogr_err = yield
43
43
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
  require_relative '../gdal'
3
5
  require_relative 'spatial_reference_extensions'
@@ -22,9 +24,17 @@ module OGR
22
24
  include SpatialReferenceMixins::ParameterGetterSetters
23
25
  include SpatialReferenceMixins::TypeChecks
24
26
 
25
- class_eval FFI::OGR::SRSAPI::SRS_UL.to_ruby
27
+ # class_eval FFI::OGR::SRSAPI::SRS_UL.to_ruby
28
+ FFI::OGR::SRSAPI::SRS_UL.constants.each do |_name, obj|
29
+ const_set(obj.ruby_name, obj.value)
30
+ end
31
+
26
32
  METER_TO_METER = 1.0
27
- class_eval FFI::OGR::SRSAPI::SRS_UA.to_ruby
33
+
34
+ FFI::OGR::SRSAPI::SRS_UA.constants.each do |_name, obj|
35
+ const_set(obj.ruby_name, obj.value)
36
+ end
37
+
28
38
  RADIAN_TO_RADIAN = 1.0
29
39
 
30
40
  # @return [Array<String>]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module OGR
@@ -28,31 +30,5 @@ module OGR
28
30
  rescue NameError
29
31
  raise NameError, "Param must be a known linear unit type: #{unit_label}"
30
32
  end
31
-
32
- # @return [Hash]
33
- def as_json(_options = nil)
34
- {
35
- angular_units: angular_units,
36
- epsg_treats_as_lat_long: epsg_treats_as_lat_long?,
37
- epsg_treats_as_northing_easting: epsg_treats_as_northing_easting?,
38
- is_compound: compound?,
39
- is_geocentric: geocentric?,
40
- is_geographic: geographic?,
41
- is_local: local?,
42
- is_projected: projected?,
43
- is_vertical: vertical?,
44
- linear_units: linear_units,
45
- prime_meridian: prime_meridian,
46
- semi_major: semi_major,
47
- semi_minor: semi_minor,
48
- spheroid_inverse_flattening: spheroid_inverse_flattening,
49
- utm_zone: utm_zone
50
- }
51
- end
52
-
53
- # @return [String]
54
- def to_json(options = nil)
55
- as_json(options).to_json
56
- end
57
33
  end
58
34
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module CoordinateSystemGetterSetters
@@ -76,7 +78,8 @@ module OGR
76
78
  @c_pointer,
77
79
  x_distance, y_distance, z_distance,
78
80
  x_rotation, y_rotation, z_rotation,
79
- scaling_factor)
81
+ scaling_factor
82
+ )
80
83
 
81
84
  ogr_err.handle_result
82
85
  end
@@ -93,7 +96,8 @@ module OGR
93
96
  @c_pointer,
94
97
  name,
95
98
  horizontal_spatial_ref_ptr,
96
- vertical_spatial_ref_ptr)
99
+ vertical_spatial_ref_ptr
100
+ )
97
101
 
98
102
  ogr_err.handle_result
99
103
  end
@@ -186,7 +190,8 @@ module OGR
186
190
  @c_pointer,
187
191
  target_key,
188
192
  authority,
189
- code)
193
+ code
194
+ )
190
195
 
191
196
  ogr_err.handle_result
192
197
  end
@@ -278,7 +283,8 @@ module OGR
278
283
  zone,
279
284
  nad83,
280
285
  override_unit_label,
281
- override_unit_transform)
286
+ override_unit_transform
287
+ )
282
288
 
283
289
  ogr_err.handle_result
284
290
  end
@@ -458,7 +464,8 @@ module OGR
458
464
  @c_pointer,
459
465
  center_lat, center_long,
460
466
  scale,
461
- false_easting, false_northing)
467
+ false_easting, false_northing
468
+ )
462
469
 
463
470
  ogr_err.handle_result
464
471
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module Exporters
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module Importers
@@ -198,7 +200,8 @@ module OGR
198
200
  projection_system_code,
199
201
  zone,
200
202
  proj_ptr,
201
- datum)
203
+ datum
204
+ )
202
205
 
203
206
  ogr_err.handle_result
204
207
  end
@@ -227,7 +230,8 @@ module OGR
227
230
  @c_pointer,
228
231
  projection_name,
229
232
  datum_name,
230
- linear_unit_name)
233
+ linear_unit_name
234
+ )
231
235
 
232
236
  ogr_err.handle_result
233
237
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module Morphers
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module ParameterGetterSetters
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module SpatialReferenceMixins
3
5
  module TypeChecks
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
  require_relative 'style_table_extensions'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module OGR
@@ -20,15 +22,5 @@ module OGR
20
22
 
21
23
  styles
22
24
  end
23
-
24
- # @return [Hash]
25
- def as_json(_options = nil)
26
- styles
27
- end
28
-
29
- # @return [String]
30
- def to_json(options = nil)
31
- as_json(options).to_json
32
- end
33
25
  end
34
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
 
3
5
  module OGR
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -77,18 +79,18 @@ RSpec.describe 'Dataset Info', type: :integration do
77
79
 
78
80
  context 'param is an valid projection string' do
79
81
  let(:wkt) do
80
- <<-WKT
81
- GEOGCS["WGS 84",
82
- DATUM["WGS_1984",
83
- SPHEROID["WGS 84",6378137,298.257223563,
84
- AUTHORITY["EPSG",7030]],
85
- TOWGS84[0,0,0,0,0,0,0],
86
- AUTHORITY["EPSG",6326]],
87
- PRIMEM["Greenwich",0,AUTHORITY["EPSG",8901]],
88
- UNIT["DMSH",0.0174532925199433,AUTHORITY["EPSG",9108]],
89
- AXIS["Lat",NORTH],
90
- AXIS["Long",EAST],
91
- AUTHORITY["EPSG",4326]]
82
+ <<~WKT
83
+ GEOGCS["WGS 84",
84
+ DATUM["WGS_1984",
85
+ SPHEROID["WGS 84",6378137,298.257223563,
86
+ AUTHORITY["EPSG",7030]],
87
+ TOWGS84[0,0,0,0,0,0,0],
88
+ AUTHORITY["EPSG",6326]],
89
+ PRIMEM["Greenwich",0,AUTHORITY["EPSG",8901]],
90
+ UNIT["DMSH",0.0174532925199433,AUTHORITY["EPSG",9108]],
91
+ AXIS["Lat",NORTH],
92
+ AXIS["Long",EAST],
93
+ AUTHORITY["EPSG",4326]]
92
94
  WKT
93
95
  end
94
96
 
@@ -185,7 +187,7 @@ GEOGCS["WGS 84",
185
187
 
186
188
  describe '#gcp_count' do
187
189
  it 'is a Fixnum' do
188
- expect(subject.gcp_count).to be_a Fixnum
190
+ expect(subject.gcp_count).to be_a Integer
189
191
  end
190
192
  end
191
193
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -20,7 +22,7 @@ RSpec.describe 'Driver Info', type: :integration do
20
22
 
21
23
  describe '.count' do
22
24
  it 'is a non-zero Integer' do
23
- expect(GDAL::Driver.count).to be_a Fixnum
25
+ expect(GDAL::Driver.count).to be_a Integer
24
26
  expect(GDAL::Driver.count).to be > 0
25
27
  end
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'gdal/gridder'
3
5
  require 'ogr/data_source'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'gdal/dataset'
3
5
  require 'gdal/raster_band'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ffi-gdal'
3
5
  require 'gdal'
@@ -8,6 +10,13 @@ RSpec.describe 'Raster Band Info', type: :integration do
8
10
  File.expand_path(path, __dir__)
9
11
  end
10
12
 
13
+ let(:nodata_tiff) do
14
+ path = '../../../spec/support/images/123.tiff'
15
+ File.expand_path(path, __dir__)
16
+ end
17
+
18
+ let(:nodata_dataset) { GDAL::Dataset.open(nodata_tiff, 'r') }
19
+
11
20
  let(:tmp_tiff) { make_temp_test_file(original_tiff) }
12
21
  let(:dataset) { GDAL::Dataset.open(tmp_tiff, 'w') }
13
22
  after { dataset.close }
@@ -17,14 +26,14 @@ RSpec.describe 'Raster Band Info', type: :integration do
17
26
 
18
27
  describe '#x_size' do
19
28
  it 'is a non-zero Integer' do
20
- expect(subject.x_size).to be_a Fixnum
29
+ expect(subject.x_size).to be_a Integer
21
30
  expect(subject.x_size).to be > 0
22
31
  end
23
32
  end
24
33
 
25
34
  describe '#y_size' do
26
35
  it 'is a non-zero Integer' do
27
- expect(subject.y_size).to be_a Fixnum
36
+ expect(subject.y_size).to be_a Integer
28
37
  expect(subject.y_size).to be > 0
29
38
  end
30
39
  end
@@ -35,7 +44,7 @@ RSpec.describe 'Raster Band Info', type: :integration do
35
44
 
36
45
  describe '#number' do
37
46
  it 'is a non-zero Integer' do
38
- expect(subject.number).to be_a Fixnum
47
+ expect(subject.number).to be_a Integer
39
48
  expect(subject.number).to be > 0
40
49
  end
41
50
  end
@@ -49,9 +58,7 @@ RSpec.describe 'Raster Band Info', type: :integration do
49
58
 
50
59
  describe '#color_table' do
51
60
  it 'is a GDAL::ColorTable' do
52
- if subject.color_table
53
- expect(subject.color_table).to be_a GDAL::ColorTable
54
- end
61
+ expect(subject.color_table).to be_a GDAL::ColorTable if subject.color_table
55
62
  end
56
63
  end
57
64
 
@@ -89,18 +96,33 @@ RSpec.describe 'Raster Band Info', type: :integration do
89
96
  end
90
97
  end
91
98
 
92
- describe '#no_data_value' do
93
- it 'is a Hash with :value and :is_associated keys' do
94
- expect(subject.no_data_value).to be_an Hash
99
+ context 'no data not set' do
100
+ describe '#no_data_value' do
101
+ it 'is a Hash with :value and :is_associated keys' do
102
+ expect(subject.no_data_value).to be_an Hash
95
103
 
96
- expect(subject.no_data_value[:value]).to be_a Float
97
- expect(subject.no_data_value[:is_associated]).to_not be_nil
104
+ expect(subject.no_data_value[:value]).to be_nil
105
+ expect(subject.no_data_value[:is_associated]).to_not be_nil
106
+ end
107
+ end
108
+ end
109
+
110
+ context 'no data is set' do
111
+ subject { nodata_dataset.raster_band(1) }
112
+
113
+ describe '#no_data_value' do
114
+ it 'is a Hash with :value and :is_associated keys' do
115
+ expect(subject.no_data_value).to be_an Hash
116
+
117
+ expect(subject.no_data_value[:value]).to be_a Float
118
+ expect(subject.no_data_value[:is_associated]).to_not be_nil
119
+ end
98
120
  end
99
121
  end
100
122
 
101
123
  describe '#overview_count' do
102
124
  it 'is a Fixnum' do
103
- expect(subject.overview_count).to be_a Fixnum
125
+ expect(subject.overview_count).to be_a Integer
104
126
  end
105
127
  end
106
128
 
@@ -147,7 +169,7 @@ RSpec.describe 'Raster Band Info', type: :integration do
147
169
  it 'has a :minimum that ranges between 0.0/-32768.0 and 255.0' do
148
170
  min = subject.statistics[:minimum]
149
171
  unless min == -32_768.0
150
- expect(subject.statistics[:minimum]).to satisfy { |v| v >= 0 || v == -32_768 }
172
+ expect(subject.statistics[:minimum]).to(satisfy { |v| v >= 0 || v == -32_768 })
151
173
  expect(subject.statistics[:minimum]).to be <= 255.0
152
174
  end
153
175
  end
@@ -233,14 +255,14 @@ RSpec.describe 'Raster Band Info', type: :integration do
233
255
  end
234
256
 
235
257
  it 'has :buckets as a Fixnum' do
236
- expect(histogram[:buckets]).to be_a Fixnum if histogram
258
+ expect(histogram[:buckets]).to be_a Integer if histogram
237
259
  end
238
260
 
239
261
  it 'has :totals as an Array of 0 or 256 Fixnums' do
240
262
  if histogram
241
263
  expect(histogram[:totals]).to be_an Array
242
264
  expect(histogram[:totals].size).to eq(256).or eq(0)
243
- expect(histogram[:totals].all? { |t| t.class == Fixnum }).to eq true
265
+ expect(histogram[:totals].all? { |t| t.class == Integer }).to eq true
244
266
  end
245
267
  end
246
268
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'ogr'
3
5
 
@@ -90,10 +92,4 @@ RSpec.describe 'OGR::Layer' do
90
92
  expect(geometry).to be_a OGR::Polygon
91
93
  end
92
94
  end
93
-
94
- describe '#as_json' do
95
- specify do
96
- expect { subject.as_json }.to_not raise_exception
97
- end
98
- end
99
95
  end