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.

Methods

Included Modules

Comparable

Attributes

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.

Public Class methods

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.

[Source]

    # 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.

[Source]

    # File lib/needle/pipeline/element.rb, line 49
49:         def set_default_priority( priority )
50:           @default_priority = priority
51:         end

Public Instance methods

Orders elements by their priority.

[Source]

    # File lib/needle/pipeline/element.rb, line 72
72:       def <=>( element )
73:         priority <=> element.priority
74:       end
[]( *args )

Alias for call

Invoke this element’s logic.

[Source]

    # File lib/needle/pipeline/element.rb, line 77
77:       def call( *args )
78:         raise NotImplementedError
79:       end

Invoked by the constructor to perform any subclass-specific initialization logic.

[Source]

    # File lib/needle/pipeline/element.rb, line 68
68:       def initialize_element
69:       end

Invoked by Pipeline::Collection#reset!. Subclasses of Element that save any kind of state should override this method to clear that state on demand.

[Source]

    # File lib/needle/pipeline/element.rb, line 84
84:       def reset!
85:       end

[Validate]