Sha256: ab34c150691d0e4381028fbffcc9abda642e6b3acf0f8ee4ecdcbf28e8002a47

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

module PowerStencil
  module Plugins

    module Capabilities

      include PowerStencil::Utils::FileHelper

      CAPABILITIES = %i(config command_line processors build dsl entity_definitions templates).freeze

      attr_reader :plugin_definition

      def capabilities
        @capabilities ||= CAPABILITIES.dup.zip([false] * CAPABILITIES.size).to_h
      end

      private

      def load_capabilities
        yaml_file = plugin_capabilities_definition_file
        unless File.exists? yaml_file and File.file? yaml_file and File.readable? yaml_file
          raise PowerStencil::Error, "Plugin '#{self.name}' has no definition file !"
        end
        logger.debug "Loading plugin '#{self.name}' capabilities..."
        @plugin_definition = yaml_file_to_hash yaml_file
        %i(processors entity_definitions templates build dsl).each do |capability|
          unless plugin_definition[capability].nil? or plugin_definition[capability].empty?
            capabilities[capability] = true
          end
        end

      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
power_stencil-0.6.0 lib/power_stencil/plugins/capabilities.rb