class SmartCore::Operation::StepSet
@api private @since 0.5.0
Attributes
steps[R]
@return [Array<SmartCore:::Operation::Step>]
@api private @since 0.5.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.5.0
# File lib/smart_core/operation/step_set.rb, line 19 def initialize @steps = [] @access_lock = Mutex.new end
Public Instance Methods
add_step(step)
click to toggle source
@param step [SmartCore::Operation::Step] @return [void]
@api private @since 0.5.0
# File lib/smart_core/operation/step_set.rb, line 29 def add_step(step) thread_safe { steps << step } end
Also aliased as: <<
concat(step_set)
click to toggle source
@param step_set [SmartCore::Operation::Step] @return [void]
@api private @sinec 0.5.0
# File lib/smart_core/operation/step_set.rb, line 39 def concat(step_set) thread_safe { steps.concat(step_set.dup.steps) } end
dup()
click to toggle source
@retun [SmartCore::Operation::StepSet]
@api private @since 0.5.0
# File lib/smart_core/operation/step_set.rb, line 47 def dup thread_safe do self.class.new.tap do |duplicate| steps.each { |step| duplicate.add_step(step.dup) } end end end
each(&block)
click to toggle source
@return [Enumerable]
@api private @since 0.5.0
# File lib/smart_core/operation/step_set.rb, line 59 def each(&block) thread_safe { block_given? ? steps.each(&block) : steps.each } end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Proc] @return [Any]
@api private @since 0.5.0
# File lib/smart_core/operation/step_set.rb, line 70 def thread_safe(&block) @access_lock.synchronize(&block) end