ffi-gdal 1.0.0.beta7 → 1.0.0.beta8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (298) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +31 -5
  3. data/.rubocop_todo.yml +70 -0
  4. data/.ruby-version +1 -1
  5. data/Gemfile +2 -0
  6. data/History.md +12 -0
  7. data/Rakefile +11 -1
  8. data/examples/extract_and_colorize.rb +7 -10
  9. data/examples/geometries.rb +68 -1
  10. data/examples/gridding.rb +2 -0
  11. data/examples/ogr_layer_to_layer.rb +2 -0
  12. data/examples/raster_erasing.rb +15 -8
  13. data/examples/remove_small_polygons.rb +2 -0
  14. data/examples/testing_gdal.rb +9 -2
  15. data/examples/warping.rb +23 -5
  16. data/ffi-gdal.gemspec +3 -0
  17. data/lib/ext/error_symbols.rb +2 -0
  18. data/lib/ext/ffi_library_function_checks.rb +2 -0
  19. data/lib/ext/float_ext.rb +2 -0
  20. data/lib/ext/narray_ext.rb +2 -0
  21. data/lib/ext/numeric_as_data_type.rb +2 -0
  22. data/lib/ext/to_bool.rb +5 -3
  23. data/lib/ffi/cpl/conv.rb +2 -0
  24. data/lib/ffi/cpl/error.rb +2 -0
  25. data/lib/ffi/cpl/hash_set.rb +2 -0
  26. data/lib/ffi/cpl/http.rb +2 -0
  27. data/lib/ffi/cpl/http_result.rb +2 -0
  28. data/lib/ffi/cpl/list.rb +2 -0
  29. data/lib/ffi/cpl/mime_part.rb +2 -0
  30. data/lib/ffi/cpl/minixml.rb +2 -0
  31. data/lib/ffi/cpl/port.rb +2 -0
  32. data/lib/ffi/cpl/progress.rb +2 -0
  33. data/lib/ffi/cpl/quad_tree.rb +2 -0
  34. data/lib/ffi/cpl/rect_obj.rb +2 -0
  35. data/lib/ffi/cpl/string.rb +2 -0
  36. data/lib/ffi/cpl/vsi.rb +2 -0
  37. data/lib/ffi/cpl/xml_node.rb +2 -0
  38. data/lib/ffi/cpl.rb +2 -0
  39. data/lib/ffi/gdal/alg.rb +2 -0
  40. data/lib/ffi/gdal/color_entry.rb +2 -0
  41. data/lib/ffi/gdal/exceptions.rb +2 -0
  42. data/lib/ffi/gdal/gcp.rb +2 -0
  43. data/lib/ffi/gdal/gdal.rb +2 -0
  44. data/lib/ffi/gdal/grid.rb +2 -0
  45. data/lib/ffi/gdal/grid_data_metrics_options.rb +2 -0
  46. data/lib/ffi/gdal/grid_inverse_distance_to_a_power_options.rb +2 -0
  47. data/lib/ffi/gdal/grid_moving_average_options.rb +2 -0
  48. data/lib/ffi/gdal/grid_nearest_neighbor_options.rb +2 -0
  49. data/lib/ffi/gdal/matching.rb +2 -0
  50. data/lib/ffi/gdal/rpc_info.rb +2 -0
  51. data/lib/ffi/gdal/transformer_info.rb +2 -0
  52. data/lib/ffi/gdal/version.rb +3 -1
  53. data/lib/ffi/gdal/vrt.rb +2 -0
  54. data/lib/ffi/gdal/warp_options.rb +2 -0
  55. data/lib/ffi/gdal/warper.rb +2 -0
  56. data/lib/ffi/gdal.rb +2 -0
  57. data/lib/ffi/ogr/api.rb +2 -0
  58. data/lib/ffi/ogr/contour_writer_info.rb +2 -0
  59. data/lib/ffi/ogr/core.rb +2 -0
  60. data/lib/ffi/ogr/envelope.rb +2 -0
  61. data/lib/ffi/ogr/envelope_3d.rb +2 -0
  62. data/lib/ffi/ogr/featurestyle.rb +2 -0
  63. data/lib/ffi/ogr/field.rb +2 -0
  64. data/lib/ffi/ogr/geocoding.rb +2 -0
  65. data/lib/ffi/ogr/srs_api.rb +5 -0
  66. data/lib/ffi/ogr/style_param.rb +2 -0
  67. data/lib/ffi/ogr/style_value.rb +2 -0
  68. data/lib/ffi/ogr.rb +2 -0
  69. data/lib/ffi-gdal.rb +2 -0
  70. data/lib/gdal/color_entry.rb +2 -0
  71. data/lib/gdal/color_entry_mixins/extensions.rb +2 -0
  72. data/lib/gdal/color_interpretation.rb +2 -0
  73. data/lib/gdal/color_table.rb +2 -0
  74. data/lib/gdal/color_table_mixins/extensions.rb +2 -0
  75. data/lib/gdal/color_table_types/cmyk.rb +2 -0
  76. data/lib/gdal/color_table_types/gray.rb +2 -0
  77. data/lib/gdal/color_table_types/hls.rb +2 -0
  78. data/lib/gdal/color_table_types/rgb.rb +2 -0
  79. data/lib/gdal/cpl_error_handler.rb +2 -0
  80. data/lib/gdal/data_type.rb +2 -0
  81. data/lib/gdal/dataset.rb +11 -7
  82. data/lib/gdal/dataset_mixins/algorithm_methods.rb +5 -2
  83. data/lib/gdal/dataset_mixins/extensions.rb +2 -0
  84. data/lib/gdal/dataset_mixins/matching.rb +4 -1
  85. data/lib/gdal/dataset_mixins/warp_methods.rb +3 -1
  86. data/lib/gdal/driver.rb +3 -1
  87. data/lib/gdal/driver_mixins/extensions.rb +2 -0
  88. data/lib/gdal/environment_methods.rb +2 -0
  89. data/lib/gdal/exceptions.rb +2 -0
  90. data/lib/gdal/geo_transform.rb +2 -0
  91. data/lib/gdal/geo_transform_mixins/extensions.rb +2 -0
  92. data/lib/gdal/grid.rb +4 -0
  93. data/lib/gdal/grid_algorithms/data_metrics_base.rb +2 -0
  94. data/lib/gdal/grid_algorithms/inverse_distance_to_a_power.rb +2 -0
  95. data/lib/gdal/grid_algorithms/metric_average_distance.rb +2 -0
  96. data/lib/gdal/grid_algorithms/metric_average_distance_pts.rb +2 -0
  97. data/lib/gdal/grid_algorithms/metric_count.rb +2 -0
  98. data/lib/gdal/grid_algorithms/metric_maximum.rb +2 -0
  99. data/lib/gdal/grid_algorithms/metric_minimum.rb +2 -0
  100. data/lib/gdal/grid_algorithms/metric_range.rb +2 -0
  101. data/lib/gdal/grid_algorithms/moving_average.rb +2 -0
  102. data/lib/gdal/grid_algorithms/nearest_neighbor.rb +2 -0
  103. data/lib/gdal/grid_algorithms.rb +2 -0
  104. data/lib/gdal/gridder/point_extracting.rb +2 -0
  105. data/lib/gdal/gridder.rb +4 -1
  106. data/lib/gdal/gridder_options.rb +2 -0
  107. data/lib/gdal/internal_helpers.rb +3 -4
  108. data/lib/gdal/logger.rb +2 -0
  109. data/lib/gdal/major_object.rb +2 -0
  110. data/lib/gdal/merger.rb +2 -0
  111. data/lib/gdal/options.rb +2 -0
  112. data/lib/gdal/raster_attribute_table.rb +2 -0
  113. data/lib/gdal/raster_attribute_table_mixins/extensions.rb +3 -1
  114. data/lib/gdal/raster_band.rb +4 -2
  115. data/lib/gdal/raster_band_classifier.rb +4 -6
  116. data/lib/gdal/raster_band_mixins/algorithm_extensions.rb +2 -0
  117. data/lib/gdal/raster_band_mixins/algorithm_methods.rb +12 -5
  118. data/lib/gdal/raster_band_mixins/coloring_extensions.rb +3 -1
  119. data/lib/gdal/raster_band_mixins/extensions.rb +2 -0
  120. data/lib/gdal/raster_band_mixins/io_extensions.rb +3 -1
  121. data/lib/gdal/rpc_info.rb +2 -0
  122. data/lib/gdal/transformer.rb +2 -0
  123. data/lib/gdal/transformers/approximate_transformer.rb +4 -1
  124. data/lib/gdal/transformers/base_general_image_projection_transformer.rb +4 -1
  125. data/lib/gdal/transformers/gcp_transformer.rb +6 -2
  126. data/lib/gdal/transformers/general_image_projection_transformer.rb +2 -0
  127. data/lib/gdal/transformers/general_image_projection_transformer2.rb +4 -1
  128. data/lib/gdal/transformers/general_image_projection_transformer3.rb +4 -1
  129. data/lib/gdal/transformers/geolocation_transformer.rb +4 -1
  130. data/lib/gdal/transformers/reprojection_transformer.rb +2 -0
  131. data/lib/gdal/transformers/rpc_transformer.rb +4 -1
  132. data/lib/gdal/transformers/tps_transformer.rb +2 -0
  133. data/lib/gdal/version_info.rb +9 -7
  134. data/lib/gdal/virtual_dataset.rb +2 -0
  135. data/lib/gdal/warp_operation.rb +2 -0
  136. data/lib/gdal/warp_options.rb +6 -0
  137. data/lib/gdal.rb +2 -0
  138. data/lib/ogr/coordinate_transformation.rb +2 -0
  139. data/lib/ogr/data_source.rb +2 -0
  140. data/lib/ogr/data_source_extensions.rb +2 -0
  141. data/lib/ogr/data_source_mixins/capability_methods.rb +2 -0
  142. data/lib/ogr/driver.rb +2 -0
  143. data/lib/ogr/driver_mixins/capability_methods.rb +2 -0
  144. data/lib/ogr/envelope.rb +2 -0
  145. data/lib/ogr/envelope_extensions.rb +2 -0
  146. data/lib/ogr/error_handling.rb +2 -0
  147. data/lib/ogr/exceptions.rb +3 -1
  148. data/lib/ogr/feature.rb +14 -8
  149. data/lib/ogr/feature_definition.rb +7 -4
  150. data/lib/ogr/feature_definition_extensions.rb +2 -0
  151. data/lib/ogr/feature_extensions.rb +2 -0
  152. data/lib/ogr/field.rb +2 -0
  153. data/lib/ogr/field_definition.rb +5 -3
  154. data/lib/ogr/geocoder.rb +2 -0
  155. data/lib/ogr/geometries/geometry_collection.rb +2 -0
  156. data/lib/ogr/geometries/geometry_collection_25d.rb +2 -0
  157. data/lib/ogr/geometries/line_string.rb +4 -0
  158. data/lib/ogr/geometries/line_string_25d.rb +2 -0
  159. data/lib/ogr/geometries/linear_ring.rb +2 -0
  160. data/lib/ogr/geometries/multi_line_string.rb +2 -0
  161. data/lib/ogr/geometries/multi_line_string_25d.rb +2 -0
  162. data/lib/ogr/geometries/multi_point.rb +2 -0
  163. data/lib/ogr/geometries/multi_point_25d.rb +2 -0
  164. data/lib/ogr/geometries/multi_polygon.rb +2 -0
  165. data/lib/ogr/geometries/multi_polygon_25d.rb +2 -0
  166. data/lib/ogr/geometries/none_geometry.rb +2 -0
  167. data/lib/ogr/geometries/point.rb +2 -0
  168. data/lib/ogr/geometries/point_25d.rb +2 -0
  169. data/lib/ogr/geometries/polygon.rb +2 -0
  170. data/lib/ogr/geometries/polygon_25d.rb +2 -0
  171. data/lib/ogr/geometries/unknown_geometry.rb +2 -0
  172. data/lib/ogr/geometry.rb +2 -0
  173. data/lib/ogr/geometry_field_definition.rb +4 -1
  174. data/lib/ogr/geometry_mixins/container_mixins.rb +2 -0
  175. data/lib/ogr/geometry_mixins/extensions.rb +9 -7
  176. data/lib/ogr/geometry_types/container.rb +2 -0
  177. data/lib/ogr/geometry_types/curve.rb +2 -0
  178. data/lib/ogr/geometry_types/surface.rb +2 -0
  179. data/lib/ogr/internal_helpers.rb +2 -0
  180. data/lib/ogr/layer.rb +2 -0
  181. data/lib/ogr/layer_mixins/capability_methods.rb +2 -0
  182. data/lib/ogr/layer_mixins/extensions.rb +8 -0
  183. data/lib/ogr/layer_mixins/ogr_feature_methods.rb +2 -0
  184. data/lib/ogr/layer_mixins/ogr_field_methods.rb +6 -2
  185. data/lib/ogr/layer_mixins/ogr_layer_method_methods.rb +2 -0
  186. data/lib/ogr/layer_mixins/ogr_query_filter_methods.rb +8 -3
  187. data/lib/ogr/layer_mixins/ogr_sql_methods.rb +2 -0
  188. data/lib/ogr/spatial_reference.rb +2 -0
  189. data/lib/ogr/spatial_reference_extensions.rb +2 -0
  190. data/lib/ogr/spatial_reference_mixins/coordinate_system_getter_setters.rb +12 -5
  191. data/lib/ogr/spatial_reference_mixins/exporters.rb +2 -0
  192. data/lib/ogr/spatial_reference_mixins/importers.rb +6 -2
  193. data/lib/ogr/spatial_reference_mixins/morphers.rb +2 -0
  194. data/lib/ogr/spatial_reference_mixins/parameter_getter_setters.rb +2 -0
  195. data/lib/ogr/spatial_reference_mixins/type_checks.rb +2 -0
  196. data/lib/ogr/style_table.rb +2 -0
  197. data/lib/ogr/style_table_extensions.rb +2 -0
  198. data/lib/ogr/style_tool.rb +2 -0
  199. data/lib/ogr.rb +2 -0
  200. data/spec/ffi-gdal_spec.rb +2 -0
  201. data/spec/integration/gdal/color_table_info_spec.rb +2 -0
  202. data/spec/integration/gdal/dataset_info_spec.rb +3 -1
  203. data/spec/integration/gdal/driver_info_spec.rb +3 -1
  204. data/spec/integration/gdal/geo_transform_info_spec.rb +2 -0
  205. data/spec/integration/gdal/gridder_spec.rb +2 -0
  206. data/spec/integration/gdal/raster_attribute_table_info_spec.rb +2 -0
  207. data/spec/integration/gdal/raster_band_algorithms_spec.rb +2 -0
  208. data/spec/integration/gdal/raster_band_info_spec.rb +9 -7
  209. data/spec/integration/ogr/layer_spec.rb +2 -0
  210. data/spec/spec_helper.rb +2 -0
  211. data/spec/support/integration_help.rb +2 -0
  212. data/spec/support/shared_contexts.rb +2 -0
  213. data/spec/support/shared_examples/gdal/major_object_examples.rb +2 -0
  214. data/spec/support/shared_examples/ogr/{a_25D_geometry.rb → a_25d_geometry.rb} +2 -0
  215. data/spec/support/shared_examples/ogr/a_container_geometry.rb +2 -0
  216. data/spec/support/shared_examples/ogr/a_geometry.rb +3 -1
  217. data/spec/support/shared_examples/ogr/a_line_string.rb +2 -0
  218. data/spec/unit/ext/error_symbols_spec.rb +2 -0
  219. data/spec/unit/ext/numeric_as_data_type_spec.rb +2 -0
  220. data/spec/unit/ffi/gdal_spec.rb +2 -0
  221. data/spec/unit/gdal/color_entry_spec.rb +2 -0
  222. data/spec/unit/gdal/color_interpretation_spec.rb +2 -0
  223. data/spec/unit/gdal/color_table_mixins/extensions_spec.rb +2 -0
  224. data/spec/unit/gdal/color_table_spec.rb +2 -0
  225. data/spec/unit/gdal/data_type_spec.rb +2 -0
  226. data/spec/unit/gdal/dataset_mixins/warp_methods_spec.rb +4 -1
  227. data/spec/unit/gdal/dataset_spec.rb +2 -0
  228. data/spec/unit/gdal/driver_mixins/extensions_spec.rb +2 -0
  229. data/spec/unit/gdal/driver_spec.rb +2 -0
  230. data/spec/unit/gdal/environment_methods_spec.rb +2 -0
  231. data/spec/unit/gdal/geo_transform_mixins/extensions_spec.rb +2 -0
  232. data/spec/unit/gdal/geo_transform_spec.rb +2 -0
  233. data/spec/unit/gdal/grid_spec.rb +2 -0
  234. data/spec/unit/gdal/gridder/point_extracting_spec.rb +2 -0
  235. data/spec/unit/gdal/gridder_options_spec.rb +2 -0
  236. data/spec/unit/gdal/gridder_spec.rb +2 -0
  237. data/spec/unit/gdal/internal_helpers_spec.rb +2 -0
  238. data/spec/unit/gdal/major_object_spec.rb +2 -0
  239. data/spec/unit/gdal/options_spec.rb +2 -0
  240. data/spec/unit/gdal/raster_attribute_table_spec.rb +2 -0
  241. data/spec/unit/gdal/raster_band_classifier_spec.rb +5 -3
  242. data/spec/unit/gdal/raster_band_mixins/extensions_spec.rb +2 -0
  243. data/spec/unit/gdal/raster_band_mixins/io_extensions_spec.rb +2 -0
  244. data/spec/unit/gdal/raster_band_spec.rb +2 -0
  245. data/spec/unit/gdal/rpc_info_spec.rb +2 -0
  246. data/spec/unit/gdal/version_info_spec.rb +2 -0
  247. data/spec/unit/gdal/virtual_dataset_spec.rb +2 -0
  248. data/spec/unit/gdal/warp_operation_spec.rb +2 -0
  249. data/spec/unit/gdal/warp_options_spec.rb +2 -0
  250. data/spec/unit/ogr/coordinate_transformation_spec.rb +2 -0
  251. data/spec/unit/ogr/data_source_mixins/capability_methods_spec.rb +2 -0
  252. data/spec/unit/ogr/data_source_spec.rb +2 -0
  253. data/spec/unit/ogr/driver_mixins/capability_methods_spec.rb +2 -0
  254. data/spec/unit/ogr/driver_spec.rb +3 -1
  255. data/spec/unit/ogr/envelope_spec.rb +2 -0
  256. data/spec/unit/ogr/feature_definition_spec.rb +2 -0
  257. data/spec/unit/ogr/feature_extensions_spec.rb +2 -0
  258. data/spec/unit/ogr/feature_spec.rb +3 -3
  259. data/spec/unit/ogr/field_definition_spec.rb +2 -0
  260. data/spec/unit/ogr/field_spec.rb +2 -0
  261. data/spec/unit/ogr/geometries/geometry_collection_25d_spec.rb +2 -0
  262. data/spec/unit/ogr/geometries/geometry_collection_spec.rb +2 -0
  263. data/spec/unit/ogr/geometries/line_string_25d_spec.rb +2 -0
  264. data/spec/unit/ogr/geometries/line_string_spec.rb +2 -0
  265. data/spec/unit/ogr/geometries/linear_ring_spec.rb +2 -0
  266. data/spec/unit/ogr/geometries/multi_line_string_25d_spec.rb +2 -0
  267. data/spec/unit/ogr/geometries/multi_line_string_spec.rb +2 -0
  268. data/spec/unit/ogr/geometries/multi_point_25d_spec.rb +2 -0
  269. data/spec/unit/ogr/geometries/multi_point_spec.rb +2 -0
  270. data/spec/unit/ogr/geometries/multi_polygon_25d_spec.rb +2 -0
  271. data/spec/unit/ogr/geometries/multi_polygon_spec.rb +2 -0
  272. data/spec/unit/ogr/geometries/none_geometry_spec.rb +2 -0
  273. data/spec/unit/ogr/geometries/point_25d_spec.rb +2 -0
  274. data/spec/unit/ogr/geometries/point_spec.rb +2 -0
  275. data/spec/unit/ogr/geometries/polygon_25d_spec.rb +2 -0
  276. data/spec/unit/ogr/geometries/polygon_spec.rb +2 -0
  277. data/spec/unit/ogr/geometries/unknown_geometry_spec.rb +2 -0
  278. data/spec/unit/ogr/geometry_field_definition_spec.rb +2 -0
  279. data/spec/unit/ogr/geometry_spec.rb +2 -0
  280. data/spec/unit/ogr/internal_helpers_spec.rb +2 -0
  281. data/spec/unit/ogr/layer_mixins/capability_methods_spec.rb +2 -0
  282. data/spec/unit/ogr/layer_mixins/ogr_feature_methods_spec.rb +2 -0
  283. data/spec/unit/ogr/layer_mixins/ogr_field_methods_spec.rb +2 -0
  284. data/spec/unit/ogr/layer_mixins/ogr_layer_method_methods_spec.rb +2 -0
  285. data/spec/unit/ogr/layer_mixins/ogr_query_filter_methods_spec.rb +2 -0
  286. data/spec/unit/ogr/layer_mixins/ogr_sql_methods_spec.rb +2 -0
  287. data/spec/unit/ogr/layer_spec.rb +2 -0
  288. data/spec/unit/ogr/spatial_reference_mixins/coordinate_system_getter_setters_spec.rb +2 -0
  289. data/spec/unit/ogr/spatial_reference_mixins/exporters_spec.rb +7 -3
  290. data/spec/unit/ogr/spatial_reference_mixins/importers_spec.rb +2 -0
  291. data/spec/unit/ogr/spatial_reference_mixins/morphers_spec.rb +9 -7
  292. data/spec/unit/ogr/spatial_reference_mixins/parameter_getter_setters_spec.rb +2 -0
  293. data/spec/unit/ogr/spatial_reference_mixins/type_checks_spec.rb +2 -0
  294. data/spec/unit/ogr/spatial_reference_spec.rb +4 -2
  295. data/spec/unit/ogr/style_table_spec.rb +2 -0
  296. data/spec/unit/ogr/style_tool_spec.rb +2 -0
  297. data/spec/unit/version_info_spec.rb +2 -0
  298. metadata +20 -6
data/lib/gdal/logger.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'log_switch'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
  require 'multi_xml'
3
5
 
data/lib/gdal/merger.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'driver'
2
4
 
3
5
  module GDAL
data/lib/gdal/options.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ffi'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
  require_relative 'raster_attribute_table_mixins/extensions'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module GDAL
@@ -10,7 +12,7 @@ module GDAL
10
12
  case value.class
11
13
  when String then set_value_as_string(row, field, value)
12
14
  when Float then set_value_as_double(row, field, value)
13
- when Fixnum then set_value_as_integer(row, field, value)
15
+ when Integer then set_value_as_integer(row, field, value)
14
16
  else raise GDAL::UnknownRasterAttributeTableType, "Unknown value type for value '#{value}'"
15
17
  end
16
18
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'narray'
2
4
  require_relative '../gdal'
3
5
  require_relative 'raster_band_mixins/algorithm_extensions'
@@ -216,7 +218,7 @@ module GDAL
216
218
  flag_list.reverse_each.with_index do |flag, i|
217
219
  flag = flag.to_i
218
220
 
219
- if i == 0 && flag == 1
221
+ if i.zero? && flag == 1
220
222
  flags << :GMF_ALL_VALID
221
223
  elsif i == 1 && flag == 1
222
224
  flags << :GMF_PER_DATASET
@@ -273,7 +275,7 @@ module GDAL
273
275
  standard_deviation = FFI::MemoryPointer.new(:double)
274
276
 
275
277
  handler = GDAL::CPLErrorHandler.new
276
- handler.on_warning = proc { Hash.new }
278
+ handler.on_warning = proc { {} }
277
279
  handler.on_none = proc do
278
280
  {
279
281
  minimum: min.read_double,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
 
3
5
  module GDAL
@@ -72,13 +74,9 @@ module GDAL
72
74
  range_for_type(min, max)
73
75
  end
74
76
 
75
- range_count.times.each_with_object([]) do |i, ranges|
77
+ Array.new(range_count) do |i|
76
78
  range = breakpoint_calculator.call(i)
77
-
78
- ranges << {
79
- range: range,
80
- map_to: (i + 1).to_data_type(@raster_band.data_type)
81
- }
79
+ { range: range, map_to: (i + 1).to_data_type(@raster_band.data_type) }
82
80
  end
83
81
  end
84
82
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../ogr'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module RasterBandMixins
3
5
  module AlgorithmMethods
@@ -34,7 +36,8 @@ module GDAL
34
36
  colors,
35
37
  color_table.c_pointer,
36
38
  progress_function,
37
- progress_arg)
39
+ progress_arg
40
+ )
38
41
 
39
42
  color_table
40
43
  end
@@ -75,7 +78,8 @@ module GDAL
75
78
  output_ptr,
76
79
  color_table_ptr,
77
80
  progress_function,
78
- progress_arg)
81
+ progress_arg
82
+ )
79
83
 
80
84
  output_band
81
85
  end
@@ -97,7 +101,8 @@ module GDAL
97
101
  x_offset,
98
102
  y_offset,
99
103
  x_size,
100
- y_size)
104
+ y_size
105
+ )
101
106
  end
102
107
 
103
108
  # Computes the proximity of all pixels in the proximity_band to those in
@@ -134,7 +139,8 @@ module GDAL
134
139
  proximity_band_ptr,
135
140
  options_ptr,
136
141
  progress_function,
137
- progress_arg)
142
+ progress_arg
143
+ )
138
144
  end
139
145
 
140
146
  # Fill selected raster regions by interpolation from the edges. It
@@ -324,7 +330,8 @@ module GDAL
324
330
  connectedness,
325
331
  options_ptr,
326
332
  progress_function,
327
- progress_arg)
333
+ progress_arg
334
+ )
328
335
  end
329
336
  end
330
337
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module RasterBandMixins
3
5
  # RasterBand methods added for dealing with colorizing.
@@ -74,7 +76,7 @@ module GDAL
74
76
 
75
77
  # @param hex [String]
76
78
  def hex_to_rgb(hex)
77
- hex.sub!(/^#/, '')
79
+ hex = hex.sub(/^#/, '')
78
80
  matches = hex.match(/(?<red>[a-zA-Z0-9]{2})(?<green>[a-zA-Z0-9]{2})(?<blue>[a-zA-Z0-9]{2})/)
79
81
 
80
82
  [matches[:red].to_i(16), matches[:green].to_i(16), matches[:blue].to_i(16)]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module RasterBandMixins
3
5
  # Methods for reading & writing RasterBands that didn't come from GDAL.
@@ -136,7 +138,7 @@ module GDAL
136
138
  read_block(x_block_number, y_block_number, data_pointer)
137
139
  pixels = GDAL._read_pointer(data_pointer, data_type, block_buffer_size)
138
140
 
139
- yield(pixels, x_block_size, y_block_size)
141
+ yield(Array(pixels), x_block_size, y_block_size)
140
142
  end
141
143
  end
142
144
  end
data/lib/gdal/rpc_info.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
  require_relative '../gdal'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class ApproximateTransformer
@@ -18,7 +20,8 @@ module GDAL
18
20
  @c_pointer = FFI::GDAL::Alg.GDALCreateApproxTransformer(
19
21
  base_transformer_function,
20
22
  transformer_arg_ptr,
21
- max_error)
23
+ max_error
24
+ )
22
25
  end
23
26
 
24
27
  def destroy!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class BaseGeneralImageProjectionTransformer
@@ -32,7 +34,8 @@ module GDAL
32
34
  geo_transform_ptr = GDAL._pointer(GDAL::GeoTransform, geo_transform)
33
35
 
34
36
  FFI::GDAL::Alg.GDALSetGenImgProjTransformerDstGeoTransform(
35
- @c_pointer, geo_transform_ptr)
37
+ @c_pointer, geo_transform_ptr
38
+ )
36
39
  end
37
40
  end
38
41
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class GCPTransformer
@@ -25,13 +27,15 @@ module GDAL
25
27
  gcp_list.size,
26
28
  gcp_list_ptr,
27
29
  requested_polynomial_order,
28
- reversed)
30
+ reversed
31
+ )
29
32
  else
30
33
  FFI::GDAL::Alg.GDALCreateGCPTransformer(
31
34
  gcp_list.size,
32
35
  gcp_list_ptr,
33
36
  requested_polynomial_order,
34
- reversed)
37
+ reversed
38
+ )
35
39
  end
36
40
  end
37
41
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base_general_image_projection_transformer'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base_general_image_projection_transformer'
2
4
 
3
5
  module GDAL
@@ -43,7 +45,8 @@ module GDAL
43
45
  @c_pointer = FFI::GDAL::Alg.GDALCreateGenImgProjTransformer2(
44
46
  source_ptr,
45
47
  destination_ptr,
46
- options_ptr)
48
+ options_ptr
49
+ )
47
50
 
48
51
  super()
49
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'base_general_image_projection_transformer'
2
4
 
3
5
  module GDAL
@@ -16,7 +18,8 @@ module GDAL
16
18
  source_wkt,
17
19
  source_ptr,
18
20
  destination_wkt,
19
- destination_ptr)
21
+ destination_ptr
22
+ )
20
23
 
21
24
  super()
22
25
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class GeolocationTransformer
@@ -19,7 +21,8 @@ module GDAL
19
21
  @c_pointer = FFI::GDAL::Alg.CreateGeoLocTransformer(
20
22
  base_dataset_ptr,
21
23
  geolocation_info_ptr,
22
- reversed)
24
+ reversed
25
+ )
23
26
  end
24
27
 
25
28
  def destroy!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class ReprojectionTransformer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class RPCTransformer
@@ -33,7 +35,8 @@ module GDAL
33
35
  rpc_info,
34
36
  reversed,
35
37
  pixel_error_threshold,
36
- options_ptr)
38
+ options_ptr
39
+ )
37
40
  end
38
41
 
39
42
  def destroy!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GDAL
2
4
  module Transformers
3
5
  class TPSTransformer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'date'
2
4
 
3
5
  module GDAL
@@ -6,33 +8,33 @@ module GDAL
6
8
  #
7
9
  # @return [String]
8
10
  def version_num
9
- FFI::GDAL.GDALVersionInfo('VERSION_NUM'.freeze)
11
+ FFI::GDAL.GDALVersionInfo('VERSION_NUM')
10
12
  end
11
13
 
12
14
  # @return [Date]
13
15
  def release_date
14
- Date.parse(FFI::GDAL.GDALVersionInfo('RELEASE_DATE'.freeze))
16
+ Date.parse(FFI::GDAL.GDALVersionInfo('RELEASE_DATE'))
15
17
  end
16
18
 
17
19
  # Version in the form "1.1.7".
18
20
  #
19
21
  # @return [String]
20
22
  def release_name
21
- FFI::GDAL.GDALVersionInfo('RELEASE_NAME'.freeze)
23
+ FFI::GDAL.GDALVersionInfo('RELEASE_NAME')
22
24
  end
23
25
 
24
26
  # The long licensing info.
25
27
  #
26
28
  # @return [String]
27
29
  def license
28
- FFI::GDAL.GDALVersionInfo('LICENSE'.freeze)
30
+ FFI::GDAL.GDALVersionInfo('LICENSE')
29
31
  end
30
32
 
31
33
  # Options used when building GDAL.
32
34
  #
33
35
  # @return [Hash{String => String}]
34
36
  def build_info
35
- key_value_pairs = FFI::GDAL.GDALVersionInfo('BUILD_INFO'.freeze)
37
+ key_value_pairs = FFI::GDAL.GDALVersionInfo('BUILD_INFO')
36
38
  key_value_pairs.split.each_with_object({}) do |kv, obj|
37
39
  key, value = kv.split('=', 2)
38
40
  obj[key] = value
@@ -41,7 +43,7 @@ module GDAL
41
43
 
42
44
  # @return [String]
43
45
  def long_version
44
- FFI::GDAL.GDALVersionInfo('--version'.freeze)
46
+ FFI::GDAL.GDALVersionInfo('--version')
45
47
  end
46
48
 
47
49
  # @param major [Fixnum]
@@ -49,7 +51,7 @@ module GDAL
49
51
  # @return [Boolean] +true+ if the runtime GDAL library matches the given
50
52
  # version params.
51
53
  def check_version(major, minor)
52
- FFI::GDAL.GDALCheckVersion(major, minor, 'FFI::GDAL'.freeze)
54
+ FFI::GDAL.GDALCheckVersion(major, minor, 'FFI::GDAL')
53
55
  end
54
56
  end
55
57
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
  require_relative 'major_object'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../gdal'
2
4
 
3
5
  module GDAL
@@ -192,5 +194,9 @@ module GDAL
192
194
 
193
195
  @c_struct[meth]
194
196
  end
197
+
198
+ def respond_to_missing?(method_name, include_private = false)
199
+ FFI::GDAL::WarpOptions.members.include?(method_name) || super
200
+ end
195
201
  end
196
202
  end
data/lib/gdal.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'ffi-gdal'
2
4
 
3
5
  module GDAL
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'narray'
2
4
  require_relative '../ogr'
3
5
  require_relative '../gdal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
  require 'json'
3
5
  require_relative '../gdal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module DataSourceExtensions
3
5
  # @return [Array<OGR::Layer>]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module DataSourceMixins
3
5
  # Helper methods for determining the current DataSource's capabilities.
data/lib/ogr/driver.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
  require_relative '../gdal'
3
5
  require_relative '../gdal/major_object'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  module DriverMixins
3
5
  # Helper methods for testing capabilities of the current driver.
data/lib/ogr/envelope.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
  require_relative 'envelope_extensions'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module OGR
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'exceptions'
2
4
 
3
5
  module OGR
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OGR
2
4
  class CorruptData < RuntimeError
3
5
  end
@@ -12,7 +14,7 @@ module OGR
12
14
  msg
13
15
  elsif driver.is_a? String
14
16
  "Driver not found with name '#{driver}'."
15
- elsif driver.is_a? Fixnum
17
+ elsif driver.is_a? Integer
16
18
  "Driver at index #{driver} not found."
17
19
  end
18
20
 
data/lib/ogr/feature.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'date'
2
4
  require_relative '../ogr'
3
5
  require_relative '../gdal'
@@ -20,9 +22,9 @@ module OGR
20
22
  fd_or_pointer
21
23
  end
22
24
 
23
- if !@c_pointer.is_a?(FFI::Pointer) || @c_pointer.null?
24
- raise OGR::InvalidFeature, "Unable to create Feature with #{fd_or_pointer}"
25
- end
25
+ return if @c_pointer.is_a?(FFI::Pointer) && !@c_pointer.null?
26
+
27
+ raise OGR::InvalidFeature, "Unable to create Feature with #{fd_or_pointer}"
26
28
  end
27
29
 
28
30
  def destroy!
@@ -101,7 +103,8 @@ module OGR
101
103
  FFI::OGR::API.OGR_F_SetFieldStringList(
102
104
  @c_pointer,
103
105
  index,
104
- values_ptr)
106
+ values_ptr
107
+ )
105
108
  end
106
109
 
107
110
  # @param index [Fixnum]
@@ -114,7 +117,8 @@ module OGR
114
117
  @c_pointer,
115
118
  index,
116
119
  values.size,
117
- values_ptr)
120
+ values_ptr
121
+ )
118
122
  end
119
123
 
120
124
  # @param index [Fixnum]
@@ -127,7 +131,8 @@ module OGR
127
131
  @c_pointer,
128
132
  index,
129
133
  values.size,
130
- values_ptr)
134
+ values_ptr
135
+ )
131
136
  end
132
137
 
133
138
  # @param index [Fixnum]
@@ -150,14 +155,15 @@ module OGR
150
155
  @c_pointer,
151
156
  index,
152
157
  value.length,
153
- value_ptr)
158
+ value_ptr
159
+ )
154
160
  end
155
161
 
156
162
  # @param index [Fixnum]
157
163
  # @param value [Date, Time, DateTime]
158
164
  def set_field_date_time(index, value)
159
165
  time = value.to_time
160
- zone = OGR._format_time_zone_for_ogr(time.zone)
166
+ zone = OGR._format_time_zone_for_ogr(value.zone)
161
167
 
162
168
  FFI::OGR::API.OGR_F_SetFieldDateTime(@c_pointer, index,
163
169
  time.year,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
  require_relative 'feature_definition_extensions'
3
5
 
@@ -19,9 +21,9 @@ module OGR
19
21
  name_or_pointer
20
22
  end
21
23
 
22
- if !@c_pointer.is_a?(FFI::Pointer) || @c_pointer.null?
23
- raise OGR::InvalidFeatureDefinition, "Unable to create #{self.class.name} from #{name_or_pointer}"
24
- end
24
+ return if @c_pointer.is_a?(FFI::Pointer) && !@c_pointer.null?
25
+
26
+ raise OGR::InvalidFeatureDefinition, "Unable to create #{self.class.name} from #{name_or_pointer}"
25
27
  end
26
28
 
27
29
  def release!
@@ -67,7 +69,8 @@ module OGR
67
69
  def delete_field_definition(index)
68
70
  ogr_err = FFI::OGR::API.OGR_FD_DeleteFieldDefn(
69
71
  @c_pointer,
70
- index)
72
+ index
73
+ )
71
74
 
72
75
  ogr_err.handle_result "Unable to delete field definition at index #{index}"
73
76
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module OGR
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module OGR
data/lib/ogr/field.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'date'
2
4
  require_relative '../ogr'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../ogr'
2
4
 
3
5
  module OGR
@@ -14,9 +16,9 @@ module OGR
14
16
  name_or_pointer
15
17
  end
16
18
 
17
- unless @c_pointer.is_a?(FFI::Pointer) && !@c_pointer.null?
18
- raise OGR::InvalidFieldDefinition, "Unable to create #{self.class.name} from #{name_or_pointer}"
19
- end
19
+ return if @c_pointer.is_a?(FFI::Pointer) && !@c_pointer.null?
20
+
21
+ raise OGR::InvalidFieldDefinition, "Unable to create #{self.class.name} from #{name_or_pointer}"
20
22
  end
21
23
 
22
24
  def destroy!