Module: GDAL::MajorObject
- Included in:
- Dataset, Driver, RasterBand, VirtualDataset, OGR::DataSource, OGR::Driver, OGR::Layer
- Defined in:
- lib/gdal/major_object.rb
Instance Method Summary collapse
- #all_metadata ⇒ Hash{domain => Array<String>}
- #description ⇒ String
- #description=(description) ⇒ String
- #metadata(domain = nil) ⇒ Hash
- #metadata_domain_list ⇒ Array<String>
- #metadata_item(name, domain = "") ⇒ String
- #null? ⇒ Boolean
- #set_metadata_item(name, value, domain = "") ⇒ Object
Instance Method Details
#all_metadata ⇒ Hash{domain => Array<String>}
61 62 63 64 65 66 67 68 |
# File 'lib/gdal/major_object.rb', line 61 def = .each_with_object({}) do |subdomain, obj| = (subdomain) obj[subdomain] = end { DEFAULT: }.merge() end |
#description ⇒ String
71 72 73 74 75 76 |
# 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) ⇒ String
80 81 82 |
# File 'lib/gdal/major_object.rb', line 80 def description=(description) FFI::GDAL::GDAL.GDALSetDescription(@c_pointer, description) end |
#metadata(domain = nil) ⇒ Hash
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/gdal/major_object.rb', line 25 def (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 ⇒ Array<String>
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/gdal/major_object.rb', line 9 def 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 = "") ⇒ String
47 48 49 50 51 52 |
# File 'lib/gdal/major_object.rb', line 47 def (name, domain = "") item, ptr = FFI::GDAL::GDAL.GDALGetMetadataItem(@c_pointer, name, domain) ptr.autorelease = false item end |
#null? ⇒ Boolean
84 85 86 |
# File 'lib/gdal/major_object.rb', line 84 def null? @c_pointer.null? end |
#set_metadata_item(name, value, domain = "") ⇒ Object
54 55 56 57 58 |
# File 'lib/gdal/major_object.rb', line 54 def (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 |