class Pipely::Tasks::Definition
Attributes
definition[RW]
Pipeline definition instance
name[RW]
Name of task.
default:
:definition
path[RW]
Path where rendered definitions are written.
default:
"definitions"
verbose[RW]
Use verbose output. If this is set to true, the task will print the local and remote paths of each step file it uploads to S3.
default:
true
Public Class Methods
new(*args, &task_block)
click to toggle source
# File lib/pipely/tasks/definition.rb, line 34 def initialize(*args, &task_block) setup_ivars(args) # First non-name parameter allows overriding the configured scheduler. args.unshift(:scheduler) directory path desc "Generates the pipeline definition file" task name, *args do |_, task_args| RakeFileUtils.send(:verbose, verbose) do if task_block task_block.call(*[self, task_args].slice(0, task_block.arity)) end if scheduler_override = task_args[:scheduler] definition.config[:scheduler] = scheduler_override end run_task verbose end end end
Public Instance Methods
run_task(verbose)
click to toggle source
# File lib/pipely/tasks/definition.rb, line 64 def run_task(verbose) puts "Generating #{target_filename}" if verbose json = definition.to_json unless ENV['UGLY'] json = JSON.pretty_generate(JSON.parse(json)) end File.open(target_filename, 'w') do |file| file.write(json) end end
setup_ivars(args)
click to toggle source
# File lib/pipely/tasks/definition.rb, line 58 def setup_ivars(args) @name = args.shift || :definition @verbose = true @path = "definitions" end
target_filename()
click to toggle source
# File lib/pipely/tasks/definition.rb, line 78 def target_filename "#{path}/#{definition.base_filename}.json" end