Sha256: 0cf7e35d0e61c06656a054c026a082b3fb563e696ec6a72b142d72b0bebf771f

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

require 'json'

module GDAL
  module RasterAttributeTableMixins
    module Extensions
      # @param row [Fixnum]
      # @param field [Fixnum]
      # @param value [String, Float, Fixnum]
      def set_value(row, field, value)
        case value.class
        when String then set_value_as_string(row, field, value)
        when Float then set_value_as_double(row, field, value)
        when Fixnum then set_value_as_integer(row, field, value)
        else raise GDAL::UnknownRasterAttributeTableType, "Unknown value type for value '#{value}'"
        end
      end

      # Get +column_name+, +column_usage+, +column_type+ as a Hash.
      #
      # @param index [Fixnum]
      # @return [Hash]
      def column(index)
        {
          name: column_name(index),
          usage: column_usage(index),
          type: column_type(index)
        }
      end

      # @return [Array<Hash>]
      def columns
        each_column.to_a
      end

      # @return [Enumerator]
      # @yieldparam [Hash]
      def each_column
        return enum_for(:each_column) unless block_given?

        column_count.times { |i| yield column(i) }
      end

      # @return [Hash]
      def as_json(_options = nil)
        {
          column_count: column_count,
          columns: columns,
          linear_binning: linear_binning,
          row_count: row_count
        }
      end

      # @return [String]
      def to_json(options = nil)
        as_json(options).to_json
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ffi-gdal-1.0.0.beta6 lib/gdal/raster_attribute_table_mixins/extensions.rb