lib/power_stencil/plugins/base.rb in power_stencil-0.4.22 vs lib/power_stencil/plugins/base.rb in power_stencil-0.5.0
- old
+ new
@@ -1,52 +1,67 @@
-require 'power_stencil/plugins/dependencies'
+require 'power_stencil/plugins/type'
require 'power_stencil/plugins/config'
require 'power_stencil/plugins/command_line'
+require 'power_stencil/plugins/entity_definitions'
require 'power_stencil/plugins/templates'
require 'power_stencil/plugins/require'
require 'power_stencil/plugins/capabilities'
require 'power_stencil/plugins/gem'
+require 'power_stencil/plugins/build'
+require 'power_stencil/plugins/dsl'
module PowerStencil
module Plugins
class Base
extend PowerStencil::Plugins::Gem
include Climatic::Proxy
- include PowerStencil::Plugins::Dependencies
+ include PowerStencil::Plugins::Type
include PowerStencil::Plugins::Config
include PowerStencil::Plugins::CommandLine
include PowerStencil::Plugins::Require
include PowerStencil::Plugins::Capabilities
+ include PowerStencil::Plugins::EntityDefinitions
include PowerStencil::Plugins::Templates
+ include PowerStencil::Plugins::Build
attr_reader :name, :version, :entry_point_path
- def initialize(name, project)
+ def initialize(name, project, type = :local)
@name = name
@project = project
@version = PowerStencil::Utils::SemanticVersion.new '0.0.0-not-specified'
+ raise PowerStencil::Error, "Invalid plugin type (#{type}) for plugin '#{name}'" unless PLUGIN_TYPES.include? type
+ @type = type
logger.debug "Loading plugin '#{name}'..."
setup_plugin
logger.info "Plugin '#{name}' successfully available"
logger.debug "Plugin '#{name}' has following capabilities: #{capabilities.inspect}"
end
def path
- project.project_plugin_path(name)
+ case type
+ when :local
+ project.project_plugin_path(name)
+ end
end
+ def plugin_module
+ Object.const_get plugin_definition[:plugin_module]
+ end
+
private
attr_reader :project
def setup_plugin
- require_entry_point
+ load_capabilities
load_plugin_specific_config
load_yaml_command_definition
+ require_entry_point
end
end
end
\ No newline at end of file