Module: WorkList

Defined in:
lib/work_list.rb,
lib/work_list/results.rb,
lib/work_list/version.rb

Defined Under Namespace

Classes: Results

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.perform(items, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/work_list.rb', line 5

def self.perform(items, &block)
  results = Results.new

  items.each do |item|
    begin
      results.success(block.call(item))
    rescue => exception
      results.failure(exception)
    end
  end

  if results.failure?
    # Raise the first exception, as if we weren't rescuing them.
    raise results.exceptions.first
  else
    results
  end
end