<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/templater/actions/directory.rb</filename>
    </added>
    <added>
      <filename>spec/actions/directory_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -11,6 +11,7 @@ require path + 'capture_helpers'
 require path + 'actions/action'
 require path + 'actions/template'
 require path + 'actions/file'
+require path + 'actions/directory'
 require path + 'actions/empty_directory'
 require path + 'description'
 require path + 'generator'
@@ -42,6 +43,6 @@ module Templater
   class MalformattedArgumentError &lt; ArgumentError #:nodoc:
   end
   
-  VERSION = '0.2.3'
+  VERSION = '0.3.0'
   
 end</diff>
      <filename>lib/templater.rb</filename>
    </modified>
    <modified>
      <diff>@@ -60,6 +60,12 @@ module Templater
       # === Returns
       # Array[Templater::ActionDescription]:: A list of file descriptions.
       def files; actions[:files] ||= []; end
+
+      # Returns an array of ActionDescriptions, where each describes a single directory.
+      #
+      # === Returns
+      # Array[Templater::ActionDescription]:: A list of file descriptions.
+      def directories; actions[:directories] ||= []; end
       
       # Returns an array of ActionDescriptions, where each describes a single empty directory created by generator.
       #
@@ -254,7 +260,31 @@ module Templater
         end
       end
 
-      alias_method :directory, :file
+      # Adds a directory that is copied directly. This method is usedful
+      # when globbing is not exactly what you want, or you need to access
+      # options to decide what source or destination should be.
+      #
+      # === Parameters
+      # name&lt;Symbol&gt;:: The name of this template
+      # source&lt;String&gt;:: The source template, can be omitted
+      # destination&lt;String&gt;:: The destination where the result will be put.
+      # options&lt;Hash&gt;:: Options for this template
+      # &amp;block&lt;Proc&gt;:: A block to execute when the generator is instantiated
+      #
+      # === Options
+      # :before&lt;Symbol&gt;:: Name of a method to execute before this template is invoked
+      # :after&lt;Symbol&gt;:: Name of a method to execute after this template is invoked
+      def directory(name, *args, &amp;block)
+        options = args.last.is_a?(Hash) ? args.pop : {}
+        source, destination = args
+        source, destination = source, source if args.size == 1
+        
+        directories &lt;&lt; ActionDescription.new(name, options) do |generator|
+          directory = Actions::Directory.new(generator, name, source, destination, options)
+          generator.instance_exec(directory, &amp;block) if block
+          directory
+        end
+      end
       
       # Adds an empty directory that will be created when the generator is run.
       #
@@ -323,7 +353,28 @@ module Templater
         end
       end
 
-      alias_method :directory_list, :file_list
+      # An easy way to add many non-rendering templates to a generator. The provided list can be either an
+      # array of Strings or a Here-Doc with templates on individual lines.
+      #
+      # === Parameters
+      # list&lt;String|Array&gt;:: A list of non-rendering templates to be added to this generator
+      # 
+      # === Examples
+      #
+      #   class MyGenerator &lt; Templater::Generator
+      #     directory_list &lt;&lt;-LIST
+      #       path/to/directory
+      #       another/directory
+      #     LIST
+      #     directory_list ['a/third/directory', 'and/a/fourth']
+      #   end
+      def directory_list(list)
+        list.to_a.each do |item|
+          item = item.to_s.chomp.strip
+          self.directory(item.gsub(/[\.\/]/, '_').to_sym, item)
+        end
+      end
+
       
       # Search a directory for templates and files and add them to this generator. Any file
       # whose extension matches one of those provided in the template_extensions parameter</diff>
      <filename>lib/templater/generator.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>34029a0692468321c8bd0af67903b3ce766cc5ef</id>
    </parent>
  </parents>
  <author>
    <name>Michael Klishin</name>
    <email>Michael Klishin michael.s.klishin@gmail.com</email>
  </author>
  <url>http://github.com/jnicklas/templater/commit/01b763337d76860c7e53772b73994f2c794beb07</url>
  <id>01b763337d76860c7e53772b73994f2c794beb07</id>
  <committed-date>2008-10-02T13:35:12-07:00</committed-date>
  <authored-date>2008-10-02T13:35:12-07:00</authored-date>
  <message>Add #directory and friends, now for real.</message>
  <tree>ff1890f93ff9aeeff581382d91182b3cd71722b4</tree>
  <committer>
    <name>Michael Klishin</name>
    <email>Michael Klishin michael.s.klishin@gmail.com</email>
  </committer>
</commit>
