]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/rspec-1.1.2/lib/spec/runner/example_group_runner.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / runner / example_group_runner.rb
diff --git a/vendor/gems/rspec-1.1.2/lib/spec/runner/example_group_runner.rb b/vendor/gems/rspec-1.1.2/lib/spec/runner/example_group_runner.rb
new file mode 100644 (file)
index 0000000..7275c6a
--- /dev/null
@@ -0,0 +1,59 @@
+module Spec
+  module Runner
+    class ExampleGroupRunner
+      def initialize(options)
+        @options = options
+      end
+
+      def load_files(files)
+        # It's important that loading files (or choosing not to) stays the
+        # responsibility of the ExampleGroupRunner. Some implementations (like)
+        # the one using DRb may choose *not* to load files, but instead tell
+        # someone else to do it over the wire.
+        files.each do |file|
+          load file
+        end
+      end
+
+      def run
+        prepare
+        success = true
+        example_groups.each do |example_group|
+          success = success & example_group.run
+        end
+        return success
+      ensure
+        finish
+      end
+
+      protected
+      def prepare
+        reporter.start(number_of_examples)
+        example_groups.reverse! if reverse
+      end
+
+      def finish
+        reporter.end
+        reporter.dump
+      end
+
+      def reporter
+        @options.reporter
+      end
+
+      def reverse
+        @options.reverse
+      end
+
+      def example_groups
+        @options.example_groups
+      end
+
+      def number_of_examples
+        @options.number_of_examples
+      end
+    end
+    # TODO: BT - Deprecate BehaviourRunner?
+    BehaviourRunner = ExampleGroupRunner
+  end
+end
\ No newline at end of file