class SmartCore::Container::DefinitionDSL::CommandSet

@api private @since 0.7.0

Attributes

commands[R]

@return [Array<SmartCore::Container::DefinitionDSL::Commands::Base>]

@api private @since 0.7.0

Public Class Methods

new() click to toggle source

@return [void]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 19
def initialize
  @commands = []
  @access_lock = SmartCore::Container::ArbitaryLock.new
end

Public Instance Methods

<<(command)
Alias for: add_command
add_command(command) click to toggle source

@param [SmartCore::Container::DefinitionDSL::Commands::Base] @return [void]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 29
def add_command(command)
  thread_safe { commands << command }
end
Also aliased as: <<
concat(command_set) click to toggle source

@param command_set [SmartCore::Container::DefinitionDSL::CommandSet] @return [void]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 48
def concat(command_set)
  thread_safe { commands.concat(command_set.dup.commands) }
end
dup() click to toggle source

@return [SmartCore::Container::DefinitionDSL::CommandSet]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 56
def dup
  thread_safe do
    self.class.new.tap do |duplicate|
      commands.each do |command|
        duplicate.add_command(command.dup)
      end
    end
  end
end
each(&block) click to toggle source

@param block [Block] @return [Enumerable]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 39
def each(&block)
  thread_safe { block_given? ? commands.each(&block) : commands.each }
end

Private Instance Methods

thread_safe(&block) click to toggle source

@param block [Block] @return [Any]

@api private @since 0.7.0

# File lib/smart_core/container/definition_dsl/command_set.rb, line 73
def thread_safe(&block)
  @access_lock.thread_safe(&block)
end