Sha256: 88a941bec685211a510bb17039c5a2812d63b4d39692e1ce598dd60194672b41

Contents?: true

Size: 1010 Bytes

Versions: 4

Compression:

Stored size: 1010 Bytes

Contents

module Pione
  module Package
    class ScenarioInfo < StructX
      member :name
      member :textual_param_sets
      member :inputs, default: lambda {Array.new}
      member :outputs, default: lambda {Array.new}

      # Read the scenario information JSON source. The source is a string or
      # location of the file.
      def self.read(src)
        data = JSON.load(src.is_a?(Location::DataLocation) ? src.read : src)
        new(name: data["ScenarioName"], textual_param_sets: data["ParamSet"], inputs: data["Inputs"], outputs: data["Outputs"])
      end

      # Return file paths of the scenario.
      def filepaths
        list = []
        list << "Scenario.pione"
        list += inputs
        list += outputs
        return list
      end

      def to_json(*args)
        data = Hash.new
        data["ScenarioName"] = name
        data["ParamSet"] = textual_param_sets
        data["Inputs"] = inputs
        data["Outputs"] = outputs
        data.to_json(*args)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pione-0.4.2 lib/pione/package/scenario-info.rb
pione-0.4.1 lib/pione/package/scenario-info.rb
pione-0.4.0 lib/pione/package/scenario-info.rb
pione-0.3.2 lib/pione/package/scenario-info.rb