module Pakyow::Support::Pipeline::ClassMethods

Public Instance Methods

action(action = nil, *options, before: nil, after: nil, &block) click to toggle source

Defines an action on the current pipeline.

# File lib/pakyow/support/pipeline.rb, line 156
def action(action = nil, *options, before: nil, after: nil, &block)
  @__pipeline.action(action, *options, before: before, after: after, &block)
end
exclude_pipeline(name_or_pipeline) click to toggle source

Excludes actions from the current pipeline.

# File lib/pakyow/support/pipeline.rb, line 149
def exclude_pipeline(name_or_pipeline)
  pipeline = find_pipeline(name_or_pipeline)
  @__pipeline.exclude_actions(pipeline.actions)
end
include_pipeline(name_or_pipeline) click to toggle source

Includes actions into the current pipeline.

# File lib/pakyow/support/pipeline.rb, line 141
def include_pipeline(name_or_pipeline)
  pipeline = find_pipeline(name_or_pipeline)
  include name_or_pipeline if name_or_pipeline.is_a?(Pipeline)
  @__pipeline.include_actions(pipeline.actions)
end
pipeline(name, &block) click to toggle source

Defines a pipeline.

# File lib/pakyow/support/pipeline.rb, line 127
def pipeline(name, &block)
  @__pipelines[name.to_sym] = Internal.new(&block)
end
skip(*actions) click to toggle source
# File lib/pakyow/support/pipeline.rb, line 160
def skip(*actions)
  @__pipeline.skip(*actions)
end
use_pipeline(name_or_pipeline) click to toggle source

Uses a pipeline.

# File lib/pakyow/support/pipeline.rb, line 133
def use_pipeline(name_or_pipeline)
  pipeline = find_pipeline(name_or_pipeline)
  include name_or_pipeline if name_or_pipeline.is_a?(Pipeline)
  @__pipeline = pipeline
end

Private Instance Methods

find_pipeline(name_or_pipeline) click to toggle source
# File lib/pakyow/support/pipeline.rb, line 166
def find_pipeline(name_or_pipeline)
  if name_or_pipeline.is_a?(Pipeline)
    name_or_pipeline.instance_variable_get(:@__pipeline)
  elsif name_or_pipeline.is_a?(Internal)
    name_or_pipeline
  else
    name_or_pipeline = name_or_pipeline.to_sym
    if @__pipelines.key?(name_or_pipeline)
      @__pipelines[name_or_pipeline]
    else
      raise ArgumentError, "could not find a pipeline named `#{name_or_pipeline}'"
    end
  end
end