<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,6 @@
 = minitest/{unit,spec,mock}
 
-* http://rubyforge.org/projects/bfts
+* http://github.com/mattly/minitest
 
 == DESCRIPTION:
 
@@ -13,13 +13,8 @@ mini/spec is a functionally complete spec engine.
 
 mini/mock, by Steven Baker, is a beautifully tiny mock object framework.
 
-(This package was called miniunit once upon a time)
-
 == FEATURES/PROBLEMS:
 
-* Contains minitest/unit - a simple and clean test system (301 lines!).
-* Contains minitest/spec - a simple and clean spec system (52 lines!).
-* Contains minitest/mock - a simple and clean mock system (35 lines!).
 * Incredibly small and fast runner, but no bells and whistles.
 
 == RATIONALE:
@@ -28,11 +23,11 @@ See design_rationale.rb to see how specs and tests work in minitest.
 
 == REQUIREMENTS:
 
-+ Ruby 1.8, maybe even 1.6 or lower. No magic is involved.
++ Ruby 1.8, maybe even 1.6 or lower. No magic is involved. Works just fine with Ruby 1.9.1.
 
 == INSTALL:
 
-+ sudo gem install minitest
++ sudo gem install minitest-deluxe
 
 == LICENSE:
 </diff>
      <filename>README.txt</filename>
    </modified>
    <modified>
      <diff>@@ -49,31 +49,35 @@ end
 
 module Kernel
   def describe desc, &amp;block
-    stack = MiniTest::Spec.describe_stack
-    prev  = MiniTest::Spec.description_stack.join(' ')
-    name  = &quot;#{prev} #{desc}&quot;.split(/\W+/).map { |s| s.capitalize }.join + &quot;Spec&quot;
-    cls   = Object.class_eval &quot;class #{name} &lt; #{stack.last}; end; #{name}&quot;
+    stack = MiniTest::Spec.context_stack
+    name  = &quot;#{MiniTest::Spec.full_description} #{desc}&quot;.split(/\W+/).map { |s| s.capitalize }.join + &quot;Spec&quot;
+    cls   = Object.class_eval &quot;class #{name} &lt; #{stack.last.klass}; end; #{name}&quot;
 
     cls.nuke_test_methods!
 
-    stack.push cls
-    MiniTest::Spec.description_stack.push desc
+    stack.push MiniTest::Spec::Context.new(cls, desc)
     cls.class_eval(&amp;block)
-    MiniTest::Spec.description_stack.pop
     stack.pop
   end
   private :describe
 end
 
 class MiniTest::Spec &lt; MiniTest::Unit::TestCase
-  @@describe_stack = [MiniTest::Spec]
-  def self.describe_stack
-    @@describe_stack
+  
+  class Context
+    attr_accessor :klass, :description
+    def initialize(klass, description)
+      @klass, @description = klass, description
+    end
+  end
+  
+  @@context_stack = [Context.new(MiniTest::Spec, nil)]
+  def self.context_stack
+    @@context_stack
   end
 
-  @@description_stack = []
-  def self.description_stack
-    @@description_stack
+  def self.full_description
+    @@context_stack.map{|context| context.description }.compact.join(' ')
   end
   
   def self.current
@@ -109,17 +113,20 @@ class MiniTest::Spec &lt; MiniTest::Unit::TestCase
     raise &quot;unsupported after type: #{type}&quot; unless type == :each
     define_inheritable_method :teardown, &amp;block
   end
-
+  
+  def self.test_name_for(*name)
+    &quot;test_#{[name].flatten.join(' ').gsub(/\W+/,'_')}&quot;
+  end
+  
   def self.it desc, &amp;block
-    define_method &quot;test_#{description_stack.join(' ').gsub(/\W+/, '_')}_#{desc.gsub(/\W+/, '_').downcase}&quot;, &amp;block
+    define_method test_name_for(full_description, desc), &amp;block
   end
   
   # beacuse test names are really just comments, and therefore a code smell
   def self.expect(desc=nil, &amp;block)
     @minitest_expectation_counter ||= 0; @minitest_expectation_counter += 1
     desc ||= &quot;[#{@minitest_expectation_counter}]&quot;
-    name = [&quot;test_&quot;, description_stack, desc].flatten.join(' ').gsub(/\W+/, '_').downcase
-    define_method name, &amp;block
+    define_method test_name_for(full_description, desc), &amp;block
   end
   
 end</diff>
      <filename>lib/minitest/spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
 Gem::Specification.new do |s|
-  s.name = %q{minitest}
-  s.version = &quot;1.4.2.3&quot;
+  s.name = %q{minitest-deluxe}
+  s.version = &quot;1.4.2.4&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Ryan Davis&quot;, &quot;Matt Lyon&quot;]
-  s.date = %q{2009-07-19}
+  s.date = %q{2009-11-02}
   s.description = %q{minitest/unit is a small and fast replacement for ruby's huge and slow test/unit. This is meant to be clean and easy to use both as a regular test writer and for language implementors that need a minimal set of methods to bootstrap a working unit test suite.  mini/spec is a functionally complete spec engine.  mini/mock, by Steven Baker, is a beautifully tiny mock object framework.  (This package was called miniunit once upon a time) -- (this gem as maintained by Matt Lyon contains patches and extensions to minitest/spec that will apparently never make it upstream. Go Open Source!)}
-  s.summary = &quot;minitest/unit is a small and fast replacement for ruby's huge and slow test/unit&quot;
+  s.summary = &quot;minitest is a small and fast replacement for ruby's huge and slow test/unit&quot;
   s.email = %q{matt@flowerpowered.com}
   s.extra_rdoc_files = [
     &quot;README.txt&quot;,</diff>
      <filename>minitest.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5ecff2c276c5b6890b688397eea202c42d8cfbcf</id>
    </parent>
  </parents>
  <author>
    <name>Matt Lyon</name>
    <email>matt@flowerpowered.com</email>
  </author>
  <url>http://github.com/mattly/minitest/commit/386c29e79506847618608b8184e235b1dfbbdb9f</url>
  <id>386c29e79506847618608b8184e235b1dfbbdb9f</id>
  <committed-date>2009-11-02T17:09:23-08:00</committed-date>
  <authored-date>2009-11-02T17:09:23-08:00</authored-date>
  <message>a few updates</message>
  <tree>870124eb5f0e80a65e7aadd8ef717a0a262e9bf1</tree>
  <committer>
    <name>Matt Lyon</name>
    <email>matt@flowerpowered.com</email>
  </committer>
</commit>
