class GrassCookbook::Data

Datasets used by recipes, consist of parmeters, maps and files (or directories). Recipes use them to define both required and generated data.

Attributes

files[R]
maps[R]
parameters[R]

Public Class Methods

[](params) click to toggle source
# File lib/grassgis/cookbook.rb, line 132
def self.[](params)
  unless params.is_a?(Data)
    params = Data.new(params)
  end
  params
end
new(params = {}) click to toggle source
# File lib/grassgis/cookbook.rb, line 104
def initialize(params = {})
  @parameters = params[:parameters] || []
  @files = params[:files] || []
  @maps = params[:maps] || []
end

Public Instance Methods

+(other) click to toggle source
# File lib/grassgis/cookbook.rb, line 156
def +(other)
  dup.merge! other
end
-(other) click to toggle source
# File lib/grassgis/cookbook.rb, line 147
def -(other)
  other = Data[other]
  Data[
    parameters: parameters - other.parameters,
    files: files - other.files,
    maps: maps - other.maps
  ]
end
dup() click to toggle source
# File lib/grassgis/cookbook.rb, line 128
def dup
  Data.new.merge! self
end
empty?() click to toggle source
# File lib/grassgis/cookbook.rb, line 143
def empty?
  !present?
end
merge!(data) click to toggle source
# File lib/grassgis/cookbook.rb, line 120
def merge!(data)
  data = Data[data]
  @parameters = (@parameters + data.parameters).uniq
  @maps = (@maps + data.maps).uniq
  @files = (@files + data.files).uniq
  self
end
missing(required) click to toggle source

data which is requiered but not provided here

# File lib/grassgis/cookbook.rb, line 161
def missing(required)
  Data[required] - self
end
present?() click to toggle source
# File lib/grassgis/cookbook.rb, line 139
def present?
  @parameters.size > 0 || @files.size > 0 || @maps.size > 0
end
raster_maps() click to toggle source
# File lib/grassgis/cookbook.rb, line 116
def raster_maps
  @maps.select { |m, t| t == :raster }
end
to_s() click to toggle source
# File lib/grassgis/cookbook.rb, line 165
def to_s
  txt = "Datos:\n"
  txt << "  Parametros: #{parameters.inspect}\n"
  txt << "  Archivos: #{files.inspect}\n"
  txt << "  Mapas: #{maps.inspect}\n"
  txt
end
vector_maps() click to toggle source
# File lib/grassgis/cookbook.rb, line 112
def vector_maps
  @maps.select { |m, t| t == :vector }.map(&:first)
end