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