Sha256: 1dddf42e542e8cf01938c33491df2a3dd88b2e896b5b958b2d0df022e4db0682
Contents?: true
Size: 915 Bytes
Versions: 1
Compression:
Stored size: 915 Bytes
Contents
module Pallets module DSL module Workflow def task(*args, **options, &block) name, depends_on = if args.any? [args.first, options[:depends_on]] else options.first end unless name raise WorkflowError, "Task has no name. Provide a name using " \ "`task :name, *args` or `task name: :arg` syntax" end # Handle nils, symbols or arrays consistently name = name.to_sym dependencies = Array(depends_on).compact.map(&:to_sym) graph.add(name, dependencies) class_name = options[:class_name] || Pallets::Util.camelize(name) max_failures = options[:max_failures] || Pallets.configuration.max_failures task_config[name] = { 'class_name' => class_name, 'max_failures' => max_failures } nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pallets-0.3.0 | lib/pallets/dsl/workflow.rb |