Parent

Files

Yapra::PipelineBase

Attributes

context[R]
logger[W]
yapra[R]

Public Class Methods

new(pipeline_name, yapra=Yapra::Runtime.new) click to toggle source
# File lib/yapra/pipeline_base.rb, line 9
def initialize pipeline_name, yapra=Yapra::Runtime.new
  @logger             = nil
  @yapra              = yapra
  @context            = { 'pipeline_name' => pipeline_name }
  
  @module_name_prefix = construct_module_name_prefix yapra.env
end

Public Instance Methods

load(plugin_name) click to toggle source
# File lib/yapra/pipeline_base.rb, line 25
def load plugin_name
  load_error_stack = []
  plugin_class = nil
  @module_name_prefix.each do |prefix|
    yapra_module_name = "#{prefix}#{plugin_name}"
    begin
      plugin_class      = Yapra.load_class_constant(yapra_module_name)
      break if plugin_class
    rescue LoadError, NameError => ex
      load_error_stack << ex
    end
  end
  raise_load_error(load_error_stack, command) unless plugin_class
  
  plugin = initialize_plugin( plugin_class )
  
  plugin
end
logger() click to toggle source
# File lib/yapra/pipeline_base.rb, line 21
def logger
  return @logger || Yapra::Runtime.logger
end
name() click to toggle source
# File lib/yapra/pipeline_base.rb, line 17
def name
  self.context[ 'pipeline_name' ]
end

Protected Instance Methods

construct_module_name_prefix(env) click to toggle source
# File lib/yapra/pipeline_base.rb, line 53
def construct_module_name_prefix env
  module_name_prefix = [ 'Yapra::Plugin::', '' ]
  if env['module_name_prefix']
    if env['module_name_prefix'].kind_of?(Array)
      module_name_prefix = env['module_name_prefix']
    else
      module_name_prefix = [ env['module_name_prefix'] ]
    end
  end
  module_name_prefix
end
initialize_plugin(plugin_class) click to toggle source
# File lib/yapra/pipeline_base.rb, line 45
def initialize_plugin plugin_class
  plugin                = plugin_class.new
  plugin.yapra          = yapra if plugin.respond_to?('yapra=')
  plugin.pipeline       = self  if plugin.respond_to?('pipeline=')
  
  plugin
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.