]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/lib/spec/runner/example_group_runner.rb
7275c6a882bf16d39359bc7a247f61b17305d337
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / runner / example_group_runner.rb
1 module Spec
2   module Runner
3     class ExampleGroupRunner
4       def initialize(options)
5         @options = options
6       end
7
8       def load_files(files)
9         # It's important that loading files (or choosing not to) stays the
10         # responsibility of the ExampleGroupRunner. Some implementations (like)
11         # the one using DRb may choose *not* to load files, but instead tell
12         # someone else to do it over the wire.
13         files.each do |file|
14           load file
15         end
16       end
17
18       def run
19         prepare
20         success = true
21         example_groups.each do |example_group|
22           success = success & example_group.run
23         end
24         return success
25       ensure
26         finish
27       end
28
29       protected
30       def prepare
31         reporter.start(number_of_examples)
32         example_groups.reverse! if reverse
33       end
34
35       def finish
36         reporter.end
37         reporter.dump
38       end
39
40       def reporter
41         @options.reporter
42       end
43
44       def reverse
45         @options.reverse
46       end
47
48       def example_groups
49         @options.example_groups
50       end
51
52       def number_of_examples
53         @options.number_of_examples
54       end
55     end
56     # TODO: BT - Deprecate BehaviourRunner?
57     BehaviourRunner = ExampleGroupRunner
58   end
59 end