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