summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xbin/bacon5
-rw-r--r--lib/bacon.rb7
2 files changed, 9 insertions, 3 deletions
diff --git a/bin/bacon b/bin/bacon
index 60997d8..dd01064 100755
--- a/bin/bacon
+++ b/bin/bacon
@@ -2,6 +2,7 @@
 # -*- ruby -*-
 
 require 'optparse'
+module Bacon; end
 
 automatic = false
 output = 'SpecDoxOutput'
@@ -56,12 +57,12 @@ opts = OptionParser.new("", 24, '  ') { |opts|
 
   opts.on('-n', '--name NAME', String,
           "runs tests matching regexp NAME") { |n|
-    # TODO
+    Bacon.const_set :RestrictName, Regexp.new(n)
   }
   
   opts.on('-t', '--testcase TESTCASE', String,
           "runs tests in TestCases matching regexp TESTCASE") { |t|
-    # TODO
+    Bacon.const_set :RestrictContext, Regexp.new(t)
   }
 
   opts.separator ""
diff --git a/lib/bacon.rb b/lib/bacon.rb
index 627f79d..0261c88 100644
--- a/lib/bacon.rb
+++ b/lib/bacon.rb
@@ -10,6 +10,9 @@ module Bacon
     raise NameError, "no such context: #{name.inspect}"
   }
 
+  RestrictName    = //  unless defined? RestrictName
+  RestrictContext = //  unless defined? RestrictContext
+
   module SpecDoxOutput
     def handle_specification(name)
       puts name
@@ -102,7 +105,8 @@ module Bacon
       @before = []
       @after = []
       @name = name
-      
+
+      return  unless name =~ RestrictContext
       Bacon.handle_specification(name) do
         instance_eval(&block)
       end
@@ -116,6 +120,7 @@ module Bacon
     end
 
     def it(description, &block)
+      return  unless description =~ RestrictName
       Bacon::Counter[:specifications] += 1
       run_requirement description, block
     end