| Class | Needle::Pipeline::Element |
| In: |
lib/needle/pipeline/element.rb
|
| Parent: | Object |
The base class of instantiation pipeline elements. All subclasses MUST implement is the call method, to define the logic that instances of that pipeline element should perform when invoked.
| default_priority | [R] | The default priority to use for elements of this type. |
| name | [R] | The name of this element (may be nil). |
| options | [R] | The hash of options that were given to this element. |
| priority | [R] | The priority of this element, used to determine ordering. Higher ordered elements are invoked before lower-ordered elements. |
| service_point | [R] | The service definition that this element belongs to. |
| succ | [RW] | The next element in the chain. This value is only valid during pipeline execution—its value should not be relied upon at any other time. |
Create a new element instance with the given name and priority. This will call initialize_element, so that subclasses only need to implement that method if they have any initialization logic to perform.
# File lib/needle/pipeline/element.rb, line 59
59: def initialize( point, name=nil, priority=nil, options={} )
60: @service_point = point
61: @name, @priority = name, ( priority || self.class.default_priority )
62: @options = options
63: initialize_element
64: end
Set the default priority for elements of this type. Subclasses may use this method to set their default priority.
# File lib/needle/pipeline/element.rb, line 49
49: def set_default_priority( priority )
50: @default_priority = priority
51: end
Orders elements by their priority.
# File lib/needle/pipeline/element.rb, line 72
72: def <=>( element )
73: priority <=> element.priority
74: end
Invoke this element’s logic.
# File lib/needle/pipeline/element.rb, line 77
77: def call( *args )
78: raise NotImplementedError
79: end