Sha256: 223ec9d8af7c43f96119bbd7dab8a4c39207ca9de308f74de2cd8af2078e6a16

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

module Pione
  module Tuple
    # TaskTuple is a class for rule application job with inputs, outpus and parameters.
    class TaskTuple < BasicTuple
      define_format [:task,
        # rule location path
        [:rule_path, String],
        # input data list
        [:inputs, Array],
        # parameter list
        [:params, Model::Parameters],
        # request features
        [:features, Model::Feature::Expr],
        # task domain
        [:domain, String],
        # call stack(domain list)
        [:call_stack, Array]
      ]

      # Returns the digest string of the task.
      # @return [String]
      #   task digest string
      def digest
        "%s([%s],{%s})" % [
          rule_path,
          inputs.map{|i|
            if i.kind_of?(Array)
              i.empty? ? "[]" : "[%s, ...]" % i[0].name
            else
              i.name
            end
          }.join(","),
          params.data.select{|k,_|
            not(k.toplevel?)
          }.map{|k,v| "%s:%s" % [k.name, v.textize]}.join(",")
        ]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pione-0.2.2 lib/pione/tuple/task-tuple.rb
pione-0.2.1 lib/pione/tuple/task-tuple.rb
pione-0.2.0 lib/pione/tuple/task-tuple.rb
pione-0.1.4 lib/pione/tuple/task-tuple.rb
pione-0.1.3 lib/pione/tuple/task-tuple.rb