v-yarotsky/taketo

View on GitHub
lib/taketo/actions/base_action.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'taketo/config_traverser'
require 'taketo/config_validator'

module Taketo
  module Actions

    class BaseAction
      attr_reader :options, :destination_path

      def initialize(options)
        @options          = options
        @destination_path = options[:destination_path]
      end

      def config
        @config ||= begin
          config_file = options[:config]

          DSL.new.configure(config_file).tap do |config|
            traverser = ConfigTraverser.new(config)
            ConfigValidator.new(traverser).validate!
          end
        end
      end
    end

  end
end