Sha256: f1a40ad6556df436b4ac45067745474ad8bf2ab31a4b147e1c25bc8e4c9acf12

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

require 'ruby_fly'
require_relative '../tasklib'

module RakeFly
  module Tasks
    class GetPipeline < TaskLib
      parameter :name, :default => :get_pipeline
      parameter :argument_names, :default => []

      parameter :target, :required => true
      parameter :pipeline, :required => true

      parameter :ensure_task, :default => :'fly:ensure'

      def process_arguments(args)
        self.name = args[0] if args[0]
      end

      def define
        desc "Get pipeline #{pipeline} for target #{target}"
        task name, argument_names => [ensure_task] do |_, args|
          derived_target = target.respond_to?(:call) ?
              target.call(*[args].slice(0, target.arity)) :
              target
          derived_pipeline = pipeline.respond_to?(:call) ?
              pipeline.call(*[args].slice(0, pipeline.arity)) :
              pipeline

          puts "Getting pipeline #{pipeline} for target #{target}..."
          RubyFly.get_pipeline(
              target: derived_target,
              pipeline: derived_pipeline)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rake_fly-0.5.0 lib/rake_fly/tasks/get_pipeline.rb
rake_fly-0.4.0 lib/rake_fly/tasks/get_pipeline.rb