Sha256: 3b6ca58bad1fe5f1be8c919f16d85adfc174e204269c20de2ee6869f94ac214d

Contents?: true

Size: 725 Bytes

Versions: 1

Compression:

Stored size: 725 Bytes

Contents

require_relative '../output'

module Arli
  module Actions
    # Represents an abstract action related to the library
    class Action
      include Arli::Output

      extend Forwardable
      def_delegators :@library, :exists?, :path, :dir, :libraries_home

      class << self
        def inherited(klazz)
          action_name = klazz.name.gsub(/.*::/, '').underscore.to_sym
          ::Arli::Actions.actions[action_name] = klazz
        end
      end

      attr_accessor :library, :config

      def initialize(library, config: Arli.config)
        self.library = library
        self.config  = config
      end

      def act(**_opts)
        raise 'Abstract method #act called on Action'
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arli-0.6.1 lib/arli/actions/action.rb