From 07067fa6f2af63b3e9f69556dfa24674790026d2 Mon Sep 17 00:00:00 2001 From: David Chelimsky Date: Mon, 2 Feb 2009 02:18:43 -0600 Subject: [PATCH] add example of formatter that filters based on options passed to describe() and it() methods. --- examples/passing/filtered_formatter.rb | 18 +++++++++++ .../passing/filtered_formatter_example.rb | 31 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 examples/passing/filtered_formatter.rb create mode 100644 examples/passing/filtered_formatter_example.rb diff --git a/examples/passing/filtered_formatter.rb b/examples/passing/filtered_formatter.rb new file mode 100644 index 000000000..144107953 --- /dev/null +++ b/examples/passing/filtered_formatter.rb @@ -0,0 +1,18 @@ +$:.unshift File.join(File.dirname(__FILE__), "/../../lib") +require 'spec/runner/formatter/nested_text_formatter' + +class FilteredFormatter < Spec::Runner::Formatter::NestedTextFormatter + def add_example_group(example_group) + if example_group.options[:show] == false + @showing = false + else + @showing = true + puts example_group.description + end + end + + def example_passed(example) + puts " " << example.description if @showing unless example.options[:show] == false + end +end + diff --git a/examples/passing/filtered_formatter_example.rb b/examples/passing/filtered_formatter_example.rb new file mode 100644 index 000000000..3c9d067f1 --- /dev/null +++ b/examples/passing/filtered_formatter_example.rb @@ -0,0 +1,31 @@ +# This demonstrates how you can write custom formatters to handle arbitrary +# options passed to the +describe+ and +it+ methods. To see it in action, stand +# in the project root and say: +# +# bin/spec -r examples/passing/filtered_formatter.rb examples/passing/filtered_formatter_example.rb -f FilteredFormatter +# +# You should only see the examples and groups below that are not explicitly +# marked :show => false +# +# group 1 +# example 1 a +# group 3 +# example 3 + + +describe "group 1", :show => true do + it "example 1 a", :show => true do + end + it "example 1 b", :show => false do + end +end + +describe "group 2", :show => false do + it "example 2" do + end +end + +describe "group 3" do + it "example 3" do + end +end \ No newline at end of file