Class Yapra::PipelineBase
In: lib/yapra/pipeline_base.rb
Parent: Object

Methods

Attributes

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

Public Class methods

[Source]

    # File lib/yapra/pipeline_base.rb, line 9
 9:   def initialize pipeline_name, yapra=Yapra::Runtime.new
10:     @logger             = nil
11:     @yapra              = yapra
12:     @context            = { 'pipeline_name' => pipeline_name }
13:     
14:     @module_name_prefix = construct_module_name_prefix yapra.env
15:   end

Public Instance methods

[Source]

    # File lib/yapra/pipeline_base.rb, line 25
25:   def load plugin_name
26:     load_error_stack = []
27:     plugin_class = nil
28:     @module_name_prefix.each do |prefix|
29:       yapra_module_name = "#{prefix}#{plugin_name}"
30:       begin
31:         plugin_class      = Yapra.load_class_constant(yapra_module_name)
32:         break if plugin_class
33:       rescue LoadError, NameError => ex
34:         load_error_stack << ex
35:       end
36:     end
37:     raise_load_error(load_error_stack, command) unless plugin_class
38:     
39:     plugin = initialize_plugin( plugin_class )
40:     
41:     plugin
42:   end

[Source]

    # File lib/yapra/pipeline_base.rb, line 21
21:   def logger
22:     return @logger || Yapra::Runtime.logger
23:   end

[Source]

    # File lib/yapra/pipeline_base.rb, line 17
17:   def name
18:     self.context[ 'pipeline_name' ]
19:   end

Protected Instance methods

[Source]

    # File lib/yapra/pipeline_base.rb, line 53
53:   def construct_module_name_prefix env
54:     module_name_prefix = [ 'Yapra::Plugin::', '' ]
55:     if env['module_name_prefix']
56:       if env['module_name_prefix'].kind_of?(Array)
57:         module_name_prefix = env['module_name_prefix']
58:       else
59:         module_name_prefix = [ env['module_name_prefix'] ]
60:       end
61:     end
62:     module_name_prefix
63:   end

[Source]

    # File lib/yapra/pipeline_base.rb, line 45
45:   def initialize_plugin plugin_class
46:     plugin                = plugin_class.new
47:     plugin.yapra          = yapra if plugin.respond_to?('yapra=')
48:     plugin.pipeline       = self  if plugin.respond_to?('pipeline=')
49:     
50:     plugin
51:   end

[Validate]