<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -2,7 +2,12 @@
 
 * Improve spec coverage for Thor::Runner
 
-== 0.11.x, released 2009-07-01
+== 0.12, released 2009-11-06
+
+* [#7] Do not force white color on status
+* [#8] Yield a block with the filename on directory
+
+== 0.11, released 2009-07-01
 
 * Added a rake compatibility layer. It allows you to use spec and rdoc tasks on
   Thor classes.</diff>
      <filename>CHANGELOG.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -60,6 +60,7 @@ class Thor
           FileUtils.mkdir_p(File.dirname(destination))
           File.open(destination, 'w'){ |f| f.write render }
         end
+        given_destination
       end
 
       protected</diff>
      <filename>lib/thor/actions/create_file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -40,15 +40,16 @@ class Thor
     #   directory &quot;doc&quot;
     #   directory &quot;doc&quot;, &quot;docs&quot;, :recursive =&gt; false
     #
-    def directory(source, destination=nil, config={})
-      action Directory.new(self, source, destination || source, config)
+    def directory(source, destination=nil, config={}, &amp;block)
+      action Directory.new(self, source, destination || source, config, &amp;block)
     end
 
     class Directory &lt; EmptyDirectory #:nodoc:
       attr_reader :source
 
-      def initialize(base, source, destination=nil, config={})
+      def initialize(base, source, destination=nil, config={}, &amp;block)
         @source = File.expand_path(base.find_in_source_paths(source.to_s))
+        @block  = block
         super(base, destination, { :recursive =&gt; true }.merge(config))
       end
 
@@ -70,6 +71,7 @@ class Thor
           Dir[lookup].each do |file_source|
             next if File.directory?(file_source)
             file_destination = File.join(given_destination, file_source.gsub(source, '.'))
+            file_destination.gsub!('/./', '/')
 
             case file_source
               when /\.empty_directory$/
@@ -77,9 +79,11 @@ class Thor
                 next if dirname == given_destination
                 base.empty_directory(dirname, config)
               when /\.tt$/
-                base.template(file_source, file_destination[0..-4], config)
+                destination = base.template(file_source, file_destination[0..-4], config)
+                @block.call(destination) if @block
               else
-                base.copy_file(file_source, file_destination, config)
+                destination = base.copy_file(file_source, file_destination, config)
+                @block.call(destination) if @block
             end
           end
         end</diff>
      <filename>lib/thor/actions/directory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,6 +55,7 @@ class Thor
       def revoke!
         say_status :remove, :red
         ::FileUtils.rm_rf(destination) if !pretend? &amp;&amp; exists?
+        given_destination
       end
 
       protected</diff>
      <filename>lib/thor/actions/empty_directory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -50,9 +50,9 @@ describe Thor::Actions::CreateFile do
       invoke!.must be_empty
     end
 
-    it &quot;returns the destination&quot; do
+    it &quot;returns the given destination&quot; do
       capture(:stdout) do
-        create_file(&quot;doc/config.rb&quot;).invoke!.must == File.join(destination_root, &quot;doc/config.rb&quot;)
+        create_file(&quot;doc/config.rb&quot;).invoke!.must == &quot;doc/config.rb&quot;
       end
     end
 </diff>
      <filename>spec/actions/create_file_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -108,6 +108,13 @@ describe Thor::Actions::Directory do
       content.must =~ /create  doc\/rdoc\.rb/
       content.must =~ /create  doc\/components/
     end
+
+    it &quot;yields a block&quot; do
+      invoke!(&quot;doc&quot;) do |f|
+        %(doc/README doc/config.rb doc/rdoc.rb).must include(f)
+        %(doc/components/).must_not include(f)
+      end
+    end
   end
 
   describe &quot;#revoke!&quot; do</diff>
      <filename>spec/actions/directory_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>80d902e9645185bc491112ec764ce2c600a292b6</id>
    </parent>
  </parents>
  <author>
    <name>Jos&#233; Valim</name>
    <email>jose.valim@gmail.com</email>
  </author>
  <url>http://github.com/wycats/thor/commit/3c4689447746277a14653fd8ae33e181deef4e45</url>
  <id>3c4689447746277a14653fd8ae33e181deef4e45</id>
  <committed-date>2009-11-06T16:56:53-08:00</committed-date>
  <authored-date>2009-11-06T16:56:35-08:00</authored-date>
  <message>Yield the filename on directories.</message>
  <tree>acd8c96c77fb6ff8ae8871988e50b2d389a6a990</tree>
  <committer>
    <name>Jos&#233; Valim</name>
    <email>jose.valim@gmail.com</email>
  </committer>
</commit>
