class SmartCore::Container::DefinitionDSL::CommandSet
@api private @since 0.1.0
Attributes
commands[R]
@return [Array<SmartCore::Container::DefinitionDSL::Commands::Base>]
@api private @since 0.1.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/smart_core/container/definition_dsl/command_set.rb, line 19 def initialize @commands = [] @access_lock = SmartCore::Container::ArbitraryLock.new end
Public Instance Methods
add_command(command)
click to toggle source
@param [SmartCore::Container::DefinitionDSL::Commands::Base] @return [void]
@api private @since 0.1.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) { |command| ... }
click to toggle source
@param command_set [SmartCore::Container::DefinitionDSL::CommandSet] @param concat_condition [Block] @yield [command] @yieldparam command [SmartCore::Container::DefinitionDSL::Commands::Base] @return [void]
@api private @since 0.1.0
# File lib/smart_core/container/definition_dsl/command_set.rb, line 51 def concat(command_set, &concat_condition) thread_safe do if block_given? command_set.dup.each { |command| (commands << command) if yield(command) } else # :nocov: commands.concat(command_set.dup.commands) # NOTE: unreachable code at this moment # :nocov: end end end
dup()
click to toggle source
@return [SmartCore::Container::DefinitionDSL::CommandSet]
@api private @since 0.1.0
# File lib/smart_core/container/definition_dsl/command_set.rb, line 67 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.1.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.1.0
# File lib/smart_core/container/definition_dsl/command_set.rb, line 84 def thread_safe(&block) @access_lock.thread_safe(&block) end