class WipeOut::Plans::Plan

Attributes

attributes[R]
callbacks[R]
config[R]
ignored[R]
relations[R]

Public Class Methods

new(config) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 4
def initialize(config)
  @attributes = {}
  @ignored = []
  @callbacks = []
  @relations = {}
  @on_execute = nil
  @config = config
end

Public Instance Methods

add_attribute(name, strategy:) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 15
def add_attribute(name, strategy:)
  @attributes[name.to_sym] = strategy
end
add_callback(callback) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 54
def add_callback(callback)
  @callbacks << callback
end
add_relation(name, plan) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 19
def add_relation(name, plan)
  @relations[name.to_sym] = plan
end
add_relation_union(name, plans, &block) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 23
def add_relation_union(name, plans, &block)
  @relations[name.to_sym] = Union.new(plans, block)
end
establish_execution_plan(_record) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 50
def establish_execution_plan(_record)
  self
end
ignore(name) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 31
def ignore(name)
  @ignored << name.to_sym
end
include_plan(other) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 35
def include_plan(other)
  @attributes.merge! other.attributes
  @ignored += other.ignored
  @relations.merge! other.relations
  @on_execute = other.on_execute
  other.callbacks.each do |callback|
    @callbacks << callback
  end
end
inspect() click to toggle source
# File lib/wipe_out/plans/plan.rb, line 58
def inspect
  "Plan(attributes=#{attributes.keys})"
end
on_execute(arg = nil, &block) click to toggle source
# File lib/wipe_out/plans/plan.rb, line 27
def on_execute(arg = nil, &block)
  @on_execute = arg || block || @on_execute
end
plans() click to toggle source

Duck typing for plans union

# File lib/wipe_out/plans/plan.rb, line 46
def plans
  [self]
end