Sha256: 0531ac1d1ddb6d04cada5bd6e797c06f3552eac3e8fd9c064844541f27a593dd

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

require 'leeroy'
require 'leeroy/env'
require 'leeroy/helpers'
require 'leeroy/helpers/env'
require 'leeroy/helpers/logging'
require 'leeroy/helpers/state'
require 'leeroy/state'
require 'leeroy/task'
require 'leeroy/types/mash'

module Leeroy
  module Task
    class Base

      include Leeroy::Task
      include Leeroy::Helpers
      include Leeroy::Helpers::Env
      include Leeroy::Helpers::Logging
      include Leeroy::Helpers::State

      def initialize(params = {})
        begin
          @global_options = params.fetch(:global_options, {})
          @options = params.fetch(:options, {})
          @args = params.fetch(:args, {})

          @env = Leeroy::Env.new({}, params.fetch(:env, ENV))

          @state = Leeroy::State.new(state_from_pipe(params.fetch(:state, {})))
          rotate_task_metadata

        rescue StandardError => e
          raise e
        end
      end

      def perform(args = self.args, options = self.options, global_options = self.global_options)
        begin
          logger.info("performing #{self.class.to_s}")
          logger.debug("args: #{args.inspect}")
          logger.debug("options: #{options.inspect}")
          logger.debug("global_options: #{global_options.inspect}")

        rescue StandardError => e
          raise e
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
leeroy_app-0.3.1 lib/leeroy/task/base.rb
leeroy_app-0.3.0 lib/leeroy/task/base.rb
leeroy_app-0.2.1 lib/leeroy/task/base.rb