Files

Class/Module Index [+]

Quicksearch

Capistrano::Processable

Public Instance Methods

ensure_each_session() click to toggle source
# File lib/capistrano/processable.rb, line 40
def ensure_each_session
  errors = []

  sessions.each do |session|
    begin
      yield session
    rescue Exception => error
      errors << SessionAssociation.on(error, session)
    end
  end

  raise errors.first if errors.any?
  sessions
end
process_iteration(wait=nil, &block) click to toggle source
# File lib/capistrano/processable.rb, line 16
def process_iteration(wait=nil, &block)
  ensure_each_session { |session| session.preprocess }

  return false if block && !block.call(self)

  readers = sessions.map { |session| session.listeners.keys }.flatten.reject { |io| io.closed? }
  writers = readers.select { |io| io.respond_to?(:pending_write?) && io.pending_write? }

  if readers.any? || writers.any?
    readers, writers, = IO.select(readers, writers, nil, wait)
  else
    return false
  end

  if readers
    ensure_each_session do |session|
      ios = session.listeners.keys
      session.postprocess(ios & readers, ios & writers)
    end
  end

  true
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.