module GDAL::MajorObject
Public Instance Methods
all_metadata()
click to toggle source
@return [Hash{domain => Array<String>}]
# File lib/gdal/major_object.rb, line 61 def all_metadata sub_metadata = metadata_domain_list.each_with_object({}) do |subdomain, obj| metadata_array = metadata(subdomain) obj[subdomain] = metadata_array end { DEFAULT: metadata }.merge(sub_metadata) end
description()
click to toggle source
@return [String]
# File lib/gdal/major_object.rb, line 71 def description desc, ptr = FFI::GDAL::GDAL.GDALGetDescription(@c_pointer) ptr.autorelease = false desc end
description=(description)
click to toggle source
@param description [String] @return [String]
# File lib/gdal/major_object.rb, line 80 def description=(description) FFI::GDAL::GDAL.GDALSetDescription(@c_pointer, description) end
metadata(domain = nil)
click to toggle source
@param domain [String] Name of the domain to get metadata for. @return [Hash]
# File lib/gdal/major_object.rb, line 25 def metadata(domain = nil) return unless @c_pointer m = FFI::GDAL::GDAL.GDALGetMetadata(@c_pointer, domain) return {} if m.null? data_array = m.get_array_of_string(0) data_array.each_with_object({}) do |key_value_pair, obj| key, value = key_value_pair.split("=", 2) begin obj[key] = MultiXml.parse(value) rescue MultiXml::ParseError obj[key] = value end end end
metadata_domain_list()
click to toggle source
@return [Array<String>]
# File lib/gdal/major_object.rb, line 9 def metadata_domain_list unless defined? FFI::GDAL::GDAL.GDALGetMetadataDomainList warn "GDALGetMetadataDomainList is't defined. GDAL::MajorObject#metadata_domain_list disabled." return [] end list_pointer = FFI::GDAL::GDAL.GDALGetMetadataDomainList(@c_pointer) return [] if list_pointer.null? strings = list_pointer.get_array_of_string(0) strings.compact.delete_if(&:empty?) end
metadata_item(name, domain = "")
click to toggle source
@param name [String] @param domain [String] @return [String]
# File lib/gdal/major_object.rb, line 47 def metadata_item(name, domain = "") item, ptr = FFI::GDAL::GDAL.GDALGetMetadataItem(@c_pointer, name, domain) ptr.autorelease = false item end
null?()
click to toggle source
# File lib/gdal/major_object.rb, line 84 def null? @c_pointer.null? end
set_metadata_item(name, value, domain = "")
click to toggle source
# File lib/gdal/major_object.rb, line 54 def set_metadata_item(name, value, domain = "") GDAL::CPLErrorHandler.manually_handle("Unable to set metadata item") do FFI::GDAL::GDAL.GDALSetMetadataItem(@c_pointer, name, value.to_s, domain) end end