<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Manifest</filename>
    </added>
    <added>
      <filename>ext/mingw-rbconfig.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,13 +1,5 @@
-require 'rake'
-require 'rake/clean'
-require 'rake/gempackagetask'
-require 'rake/rdoctask'
-require 'rake/testtask'
-require 'fileutils'
-include FileUtils
 require 'lib/redcloth/version'
 
-# TODO: echoe will make our life much easier with things like Platform.java?, but I don't want to put in the time to convert the Rakefile if no one is going to build the java sources.
 begin
   require 'rubygems'
   gem 'echoe', '&gt;=2.7.11'
@@ -16,202 +8,134 @@ rescue LoadError
   abort &quot;You'll need to have `echoe' installed to use RedCloth's Rakefile&quot;
 end
 
-NAME = RedCloth::NAME
-SUMMARY = RedCloth::DESCRIPTION
-VERS = RedCloth::VERSION::STRING
-ARCHLIB = &quot;lib/#{::Config::CONFIG['arch']}&quot;
-PKG = &quot;#{NAME}-#{VERS}&quot;
-BIN = &quot;*.{bundle,jar,so,obj,pdb,lib,def,exp,class}&quot;
-CLEAN.include ['ext/redcloth_scan/**/*.{bundle,so,obj,pdb,lib,def,exp,c,o,xml,java}', ARCHLIB, 'ext/redcloth_scan/Makefile', '**/.*.sw?', '*.gem', '.config', 'pkg']
-CLOBBER.include [&quot;lib/**/#{BIN}&quot;]
-
-desc &quot;Does a full compile, test run&quot;
-task :default =&gt; [:compile, :test]
-
-desc &quot;Compiles all extensions&quot;
-task :compile =&gt; [:redcloth_scan] do
-  if Dir.glob(File.join(ARCHLIB,&quot;redcloth_scan.*&quot;)).length == 0
-    STDERR.puts &quot;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&quot;
-    STDERR.puts &quot;Gem actually failed to build.  Your system is&quot;
-    STDERR.puts &quot;NOT configured properly to build redcloth.&quot;
-    STDERR.puts &quot;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&quot;
-    exit(1)
-  end
-end
-
-desc &quot;Packages up RedCloth.&quot;
-task :package =&gt; [:clean, :compile]
-
-desc &quot;Releases packages for all RedCloth packages and platforms.&quot;
-task :release =&gt; [:package, :rubygems_win32]
-
-desc &quot;Run all the tests&quot;
-Rake::TestTask.new do |t|
-    t.libs &lt;&lt; &quot;test&quot; &lt;&lt; ARCHLIB
-    t.test_files = FileList['test/test_*.rb']
-    t.verbose = true
-end
-
-# Run specific tests or test files
-# 
-# rake test:parser
-# =&gt; Runs the full TestParser unit test
-# 
-# rake test:parser:textism
-# =&gt; Runs the tests matching /textism/ in the TestParser unit test
-rule &quot;&quot; do |t|
-  # test:file:method
-  if /test:(.*)(:([^.]+))?$/.match(t.name)
-    arguments = t.name.split(&quot;:&quot;)[1..-1]
-    file_name = arguments.first
-    test_name = arguments[1..-1] 
-    
-    if File.exist?(&quot;test/test_#{file_name}.rb&quot;)
-      run_file_name = &quot;test_#{file_name}.rb&quot;
+e = Echoe.new('RedCloth', RedCloth::VERSION.to_s) do |p|
+  p.summary = RedCloth::DESCRIPTION
+  p.author = &quot;Jason Garber&quot;
+  p.email = 'redcloth-upwards@rubyforge.org'
+  p.clean_pattern += ['ext/redcloth_scan/**/*.{bundle,so,obj,pdb,lib,def,exp,c,o,xml,class,jar,java}', 'lib/*.{bundle,so,o,obj,pdb,lib,def,exp,jar}', 'ext/redcloth_scan/Makefile']
+  p.url = &quot;http://redcloth.org&quot;
+  p.project = &quot;redcloth&quot;
+  p.rdoc_pattern = ['README', 'COPING', 'CHANGELOG', 'lib/**/*.rb', 'doc/**/*.rdoc']
+  p.ignore_pattern = /^(pkg|site|projects|doc|log)|CVS|\.log/
+  p.ruby_version = '&gt;=1.8.4'
+  p.extension_pattern = nil
+  
+  
+  if RUBY_PLATFORM =~ /mingw|mswin|java/
+    p.need_tar_gz = false
+  else
+    p.need_zip = true
+    p.need_tar_gz = true
+    p.extension_pattern = [&quot;ext/**/extconf.rb&quot;]
+  end
+
+  p.eval = proc do
+    case RUBY_PLATFORM
+    when /mingw/
+      self.files += ['lib/redcloth_scan.so']
+      self.platform = 'x86-mswin32-60'
+    when /java/
+      self.files += ['lib/redcloth_scan.jar']
+      self.platform = 'jruby'
+    else
+      self.files += %w[attributes inline scan].map {|f| &quot;ext/redcloth_scan/redcloth_#{f}.c&quot;}
     end
-    
-    sh &quot;ruby -Ilib:test test/#{run_file_name} -n /#{test_name}/&quot; 
   end
-end
 
-Rake::RDocTask.new do |rdoc|
-    rdoc.rdoc_dir = 'doc/rdoc'
-    # rdoc.options += RDOC_OPTS
-    # rdoc.template = &quot;extras/flipbook_rdoc.rb&quot;
-    rdoc.main = &quot;README&quot;
-    rdoc.title = &quot;RedCloth Documentation&quot;
-    rdoc.rdoc_files.add ['README', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'ext/**/*.c']
 end
 
-PKG_FILES = %w(CHANGELOG COPYING README Rakefile) +
-  Dir.glob(&quot;{bin,doc,test,lib,extras}/**/*&quot;) + 
-  Dir.glob(&quot;ext/**/*.{h,c,rb,rl}&quot;) + 
-  %w[attributes inline scan].map {|f| &quot;ext/redcloth_scan/redcloth_#{f}.c&quot;}
-
-spec =
-    Gem::Specification.new do |s|
-        s.name = NAME
-        s.version = VERS
-        s.platform = Gem::Platform::RUBY
-        s.has_rdoc = true
-        s.extra_rdoc_files = [&quot;README&quot;, &quot;CHANGELOG&quot;, &quot;COPYING&quot;]
-        s.summary = SUMMARY
-        s.description = s.summary
-        s.author = &quot;Jason Garber&quot;
-        s.email = 'redcloth-upwards@rubyforge.org'
-        s.homepage = 'http://redcloth.org/'
-        s.rubyforge_project = 'redcloth'
-        
-        s.files = PKG_FILES
-        
-        s.require_paths &lt;&lt; &quot;lib/case_sensitive_require&quot;
-        #s.autorequire = &quot;redcloth&quot;  # no no no this is tHe 3v1l
-        s.extensions = FileList[&quot;ext/**/extconf.rb&quot;].to_a
-        s.executables = [&quot;redcloth&quot;]
-    end
+#### Pre-compiled extensions for alternative platforms
 
-Rake::GemPackageTask.new(spec) do |p|
-    p.need_tar = true
-    p.gem_spec = spec
+def move_extensions
+  Dir[&quot;ext/**/*.{bundle,so,jar}&quot;].each { |file| mv file, &quot;lib/&quot; }
 end
 
-extension = &quot;redcloth_scan&quot;
-ext = &quot;ext/redcloth_scan&quot;
-ext_so = &quot;#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}&quot;
-ext_files = FileList[
-  &quot;#{ext}/redcloth_scan.c&quot;,
-  &quot;#{ext}/redcloth_inline.c&quot;,
-  &quot;#{ext}/redcloth_attributes.c&quot;,
-  &quot;#{ext}/extconf.rb&quot;,
-  &quot;#{ext}/Makefile&quot;,
-  &quot;lib&quot;
-] 
-
-file ext_so =&gt; ext_files do
-  Dir.chdir(ext) do
-    sh(RUBY_PLATFORM =~ /win32/ ? 'nmake' : 'make')
+def java_classpath_arg
+  # A myriad of ways to discover the JRuby classpath
+  classpath = begin
+    require 'java'
+    # Already running in a JRuby JVM
+    Java::java.lang.System.getProperty('java.class.path')
+  rescue LoadError
+    ENV['JRUBY_PARENT_CLASSPATH'] || ENV['JRUBY_HOME'] &amp;&amp; FileList[&quot;#{ENV['JRUBY_HOME']}/lib/*.jar&quot;].join(File::PATH_SEPARATOR)
   end
-  mkdir_p ARCHLIB
-  cp ext_so, ARCHLIB
+  classpath ? &quot;-cp #{classpath}&quot; : &quot;&quot;
 end
 
-task &quot;lib&quot; do
-  directory &quot;lib&quot;
-end
+ext = &quot;ext/redcloth_scan&quot;
 
-[&quot;#{ext}/redcloth_scan.c&quot;,&quot;#{ext}/redcloth_inline.c&quot;,&quot;#{ext}/redcloth_attributes.c&quot;].each do |name|
-  @code_style ||= &quot;T0&quot;
-  arch_source = name + '.rl'
-  ragel_source = name.sub(/\.c$/, '.rl')
-  file name =&gt; [arch_source, ragel_source, &quot;#{ext}/redcloth_common.rl&quot;, &quot;#{ext}/redcloth.h&quot;] do
-    ensure_ragel_version(name) do
-      sh %{ragel #{arch_source} -#{@code_style} -o #{name}}
+case RUBY_PLATFORM
+when /mingw/
+  
+  filename = &quot;lib/redcloth_scan.so&quot;
+  file filename =&gt; FileList[&quot;#{ext}/redcloth_scan.c&quot;, &quot;#{ext}/redcloth_inline.c&quot;, &quot;#{ext}/redcloth_attributes.c&quot;] do
+    cp &quot;ext/mingw-rbconfig.rb&quot;, &quot;#{ext}/rbconfig.rb&quot;
+    Dir.chdir(&quot;ext/redcloth_scan&quot;) do
+      ruby &quot;-I. extconf.rb&quot;
+      system(PLATFORM =~ /mswin/ ? 'nmake' : 'make')
     end
+    move_extensions
+    rm &quot;#{ext}/rbconfig.rb&quot;
   end
-end
-
-desc &quot;Builds just the #{extension} extension&quot;
-task extension.to_sym =&gt; [&quot;#{ext}/Makefile&quot;, ext_so ]
 
-file &quot;#{ext}/Makefile&quot; =&gt; [&quot;#{ext}/extconf.rb&quot;, &quot;#{ext}/redcloth_scan.c&quot;,&quot;#{ext}/redcloth_inline.c&quot;,&quot;#{ext}/redcloth_attributes.c&quot;] do
-  Dir.chdir(ext) do ruby &quot;extconf.rb&quot; end
-end
+when /java/
 
-Win32Spec = Gem::Specification.new do |s|
-  s.name = NAME
-  s.version = VERS
-  s.platform = 'x86-mswin32-60'
-  s.has_rdoc = false
-  s.extra_rdoc_files = [&quot;README&quot;, &quot;CHANGELOG&quot;, &quot;COPYING&quot;]
-  s.summary = SUMMARY 
-  s.description = s.summary
-  s.author = &quot;Jason Garber&quot;
-  s.email = 'redcloth-upwards@rubyforge.org'
-  s.homepage = 'http://redcloth.org/'
-  s.rubyforge_project = 'redcloth'
-
-  s.files = PKG_FILES + [&quot;lib/redcloth_scan.so&quot;]
-
-  s.require_path = &quot;lib&quot;
-  #s.autorequire = &quot;redcloth&quot;  # no no no this is tHe 3v1l
-  s.extensions = []
-  s.bindir = &quot;bin&quot;
-end
+  filename = &quot;lib/redcloth_scan.jar&quot;
+  file filename =&gt; FileList[&quot;#{ext}/RedclothScanService.java&quot;, &quot;#{ext}/RedclothInline.java&quot;, &quot;#{ext}/RedclothAttributes.java&quot;] do
+    sources = FileList[&quot;#{ext}/**/*.java&quot;].join(' ')
+    sh &quot;javac -target 1.5 -source 1.5 -d #{ext} #{java_classpath_arg} #{sources}&quot;
+    sh &quot;jar cf lib/redcloth_scan.jar -C #{ext} .&quot;
+    move_extensions
+  end
   
-WIN32_PKG_DIR = &quot;pkg/#{PKG}-mswin32&quot;
-
-file WIN32_PKG_DIR =&gt; [:package] do
-  cp_r &quot;pkg/#{PKG}&quot;, &quot;#{WIN32_PKG_DIR}&quot;
-end
-
-desc &quot;Cross-compile the redcloth_scan extension for win32&quot;
-file &quot;redcloth_scan_win32&quot; =&gt; [WIN32_PKG_DIR] do
-  cp &quot;extras/mingw-rbconfig.rb&quot;, &quot;#{WIN32_PKG_DIR}/ext/redcloth_scan/rbconfig.rb&quot;
-  sh &quot;cd #{WIN32_PKG_DIR}/ext/redcloth_scan/ &amp;&amp; ruby -I. extconf.rb &amp;&amp; make&quot;
-  mv &quot;#{WIN32_PKG_DIR}/ext/redcloth_scan/redcloth_scan.so&quot;, &quot;#{WIN32_PKG_DIR}/lib&quot;
-end
+else
+  filename = &quot;#{ext}/redcloth_scan.#{Config::CONFIG['DLEXT']}&quot;
+  file filename =&gt; FileList[&quot;#{ext}/redcloth_scan.c&quot;, &quot;#{ext}/redcloth_inline.c&quot;, &quot;#{ext}/redcloth_attributes.c&quot;]
+end
+
+task :compile =&gt; [filename]
+
+# C Ragel file dependencies
+c_header = &quot;#{ext}/redcloth.h&quot;
+c_redcloth_common = &quot;#{ext}/redcloth_common.rl&quot;
+file c_redcloth_common # =&gt; &quot;#{ext}/redcloth_common.rl&quot;
+file &quot;#{ext}/redcloth_scan.c.rl&quot; =&gt; [&quot;#{ext}/redcloth_scan.rl&quot;, c_redcloth_common, c_header]
+file &quot;#{ext}/redcloth_inline.c.rl&quot; =&gt; [&quot;#{ext}/redcloth_inline.rl&quot;, c_redcloth_common, c_header]
+file &quot;#{ext}/redcloth_attributes.c.rl&quot; =&gt; [&quot;#{ext}/redcloth_attributes.rl&quot;, c_redcloth_common, c_header]
+
+# Java Ragel file dependencies
+java_redcloth_common = &quot;#{ext}/redcloth_common.java.rl&quot;
+file java_redcloth_common # =&gt; &quot;#{ext}/redcloth_common.rl&quot;
+file &quot;#{ext}/redcloth_scan.java.rl&quot; =&gt; [&quot;#{ext}/redcloth_scan.rl&quot;, java_redcloth_common]
+file &quot;#{ext}/redcloth_inline.java.rl&quot; =&gt; [&quot;#{ext}/redcloth_inline.rl&quot;, java_redcloth_common]
+file &quot;#{ext}/redcloth_attributes.java.rl&quot; =&gt; [&quot;#{ext}/redcloth_attributes.rl&quot;, java_redcloth_common]
+
+GENERATED_SOURCE_FILES = {
+  &quot;redcloth_scan.c&quot; =&gt; &quot;redcloth_scan.c.rl&quot;,
+  &quot;redcloth_inline.c&quot; =&gt; &quot;redcloth_inline.c.rl&quot;,
+  &quot;redcloth_attributes.c&quot; =&gt; &quot;redcloth_attributes.c.rl&quot;,
+  &quot;RedclothScanService.java&quot; =&gt; &quot;redcloth_scan.java.rl&quot;,
+  &quot;RedclothInline.java&quot; =&gt; &quot;redcloth_inline.java.rl&quot;,
+  &quot;RedclothAttributes.java&quot; =&gt; &quot;redcloth_attributes.java.rl&quot;
+}
 
-desc &quot;Build the binary RubyGems package for win32&quot;
-task :rubygems_win32 =&gt; [&quot;redcloth_scan_win32&quot;] do
-  Dir.chdir(&quot;#{WIN32_PKG_DIR}&quot;) do
-    Gem::Builder.new(Win32Spec).build
-    verbose(true) {
-      cp Dir[&quot;*.gem&quot;].first, &quot;../&quot;
-    }
+GENERATED_SOURCE_FILES.each do |target_name, source_name|
+  target_name = File.join(ext,target_name)
+  source_name = File.join(ext,source_name)
+  host_language = (target_name =~ /java$/) ? &quot;J&quot; : &quot;C&quot;
+  code_style = (host_language == &quot;C&quot;) ? &quot; -&quot; + (@code_style || &quot;T0&quot;) : &quot;&quot;
+  file target_name =&gt; source_name do
+    ensure_ragel_version(target_name) do
+      sh %{ragel #{source_name} -#{host_language}#{code_style} -o #{target_name}}
+    end
   end
 end
 
-CLEAN.include WIN32_PKG_DIR
+# Make sure the .c files exist if you try the Makefile, otherwise Ragel will have to generate them.
+file &quot;#{ext}/Makefile&quot; =&gt; [&quot;#{ext}/extconf.rb&quot;, &quot;#{ext}/redcloth_scan.c&quot;,&quot;#{ext}/redcloth_inline.c&quot;,&quot;#{ext}/redcloth_attributes.c&quot;,&quot;#{ext}/redcloth_scan.o&quot;,&quot;#{ext}/redcloth_inline.o&quot;,&quot;#{ext}/redcloth_attributes.o&quot;]
 
-desc &quot;Build and install the RedCloth gem on your system&quot;
-task :install =&gt; [:package] do
-  sh %{sudo gem install pkg/#{PKG}}
-end
 
-desc &quot;Uninstall the RedCloth gem from your system&quot;
-task :uninstall =&gt; [:clean] do
-  sh %{sudo gem uninstall #{NAME}}
-end
+#### Optimization
 
 RAGEL_CODE_GENERATION_STYLES = {
   'T0' =&gt; &quot;Table driven FSM (default)&quot;,
@@ -249,97 +173,31 @@ task :optimize do
   puts RagelProfiler.results
 end
 
-# Here are the jruby tasks, stolen from Hpricot.  If this jruby version catches on, I'd like these tasks to be unified with the C tasks and use echoe's platform detection, like Mongrel.
-namespace &quot;jruby&quot; do
- 
-  def ant(*args)
-    system &quot;ant #{args.join(' ')}&quot;
-  end
- 
-  desc &quot;Installs jruby in a subdirectory of ./test/&quot;
-  task :install do
-    sh %{svn export http://svn.codehaus.org/jruby/trunk/jruby test/jruby}
-    Dir.chdir &quot;test/jruby&quot; do
-      ant; ant &quot;jar-complete&quot;; # ant &quot;create-apidocs&quot;
-    end
-    sh %{jruby -S gem install rake}
-    Rake::Task['add_path'].invoke
-  end
-  
-  desc &quot;Adds jruby to your PATH&quot;
-  task :add_path do
-    ENV['PATH'] = ENV['PATH'] + &quot;:&quot; + File.join(File.dirname(__FILE__), &quot;test/jruby/bin&quot;)
-  end
-  
-  # Java only supports the table-driven code
-  # generation style at this point.
-  desc &quot;Generates the Java scanner code using the Ragel table-driven code generation style.&quot;
-  task :ragel_java =&gt; [:ragel_version] do
-    ensure_ragel_version(&quot;RedclothScanService.java&quot;) do
-      puts &quot;compiling with ragel version #{@ragel_v}&quot;
-      sh %{ragel -J -o ext/redcloth_scan/RedclothScanService.java ext/redcloth_scan/redcloth_scan.java.rl}
-      sh %{ragel -J -o ext/redcloth_scan/RedclothAttributes.java ext/redcloth_scan/redcloth_attributes.java.rl}
-      sh %{ragel -J -o ext/redcloth_scan/RedclothInline.java ext/redcloth_scan/redcloth_inline.java.rl}
-    end
-  end
-  
-  def java_classpath_arg
-    # A myriad of ways to discover the JRuby classpath
-    classpath = begin
-      require 'java'
-      # Already running in a JRuby JVM
-      Java::java.lang.System.getProperty('java.class.path')
-    rescue LoadError
-      ENV['JRUBY_PARENT_CLASSPATH'] || ENV['JRUBY_HOME'] &amp;&amp; FileList[&quot;#{ENV['JRUBY_HOME']}/lib/*.jar&quot;].join(File::PATH_SEPARATOR)
-    end
-    classpath ? &quot;-cp #{classpath}&quot; : &quot;&quot;
-  end
-  
-  JRubySpec = spec.dup
-  JRubySpec.platform = 'jruby'
-  JRubySpec.files = PKG_FILES + [&quot;#{ARCHLIB}/hpricot_scan.jar&quot;, &quot;#{ARCHLIB}/fast_xs.jar&quot;]
-  JRubySpec.extensions = []
 
-  JRUBY_PKG_DIR = &quot;#{PKG}-jruby&quot;
+#### Custom testing tasks
 
-  desc &quot;Package up the JRuby distribution.&quot;
-  file JRUBY_PKG_DIR =&gt; [:ragel_java, :package] do
-    sh &quot;tar zxf pkg/#{PKG}.tgz&quot;
-    mv PKG, JRUBY_PKG_DIR
-  end
-  
-  def compile_java(filenames, jarname)
-    sh %{javac -source 1.5 -target 1.5 #{java_classpath_arg} #{filenames.join(&quot; &quot;)}}
-    sh %{jar cf #{jarname} *.class}
-  end
- 
-  task :redcloth_scan_java =&gt; [:ragel_java] do
-    Dir.chdir &quot;ext/redcloth_scan&quot; do
-      compile_java([&quot;RedclothAttributes.java&quot;, &quot;RedclothInline.java&quot;, &quot;RedclothScanService.java&quot;], &quot;redcloth_scan.jar&quot;)
-    end
-    cp &quot;ext/redcloth_scan/redcloth_scan.jar&quot;, &quot;lib&quot;
-  end
-  
-  desc &quot;Run all the tests using JRuby&quot;
-  Rake::TestTask.new(:test =&gt; [:redcloth_scan_java]) do |t|
-    t.libs &lt;&lt; &quot;test&quot;
-    t.test_files = FileList['test/test_*.rb']
-    t.verbose = true
-  end
+task :test =&gt; [:compile]
 
-  desc &quot;Build the RubyGems package for JRuby&quot;
-  task :package_jruby =&gt; JRUBY_PKG_DIR do
-    Dir.chdir(&quot;#{JRUBY_PKG_DIR}&quot;) do
-      Rake::Task[:hpricot_java].invoke
-      Gem::Builder.new(JRubySpec).build
-      verbose(true) {
-        mv Dir[&quot;*.gem&quot;].first, &quot;../pkg/#{JRUBY_PKG_DIR}.gem&quot;
-      }
+# Run specific tests or test files
+# 
+# rake test:parser
+# =&gt; Runs the full TestParser unit test
+# 
+# rake test:parser:textism
+# =&gt; Runs the tests matching /textism/ in the TestParser unit test
+rule &quot;&quot; do |t|
+  # test:file:method
+  if /test:(.*)(:([^.]+))?$/.match(t.name)
+    arguments = t.name.split(&quot;:&quot;)[1..-1]
+    file_name = arguments.first
+    test_name = arguments[1..-1] 
+    
+    if File.exist?(&quot;test/test_#{file_name}.rb&quot;)
+      run_file_name = &quot;test_#{file_name}.rb&quot;
     end
+    
+    sh &quot;ruby -Ilib:test test/#{run_file_name} -n /#{test_name}/&quot; 
   end
-
-  CLEAN.include JRUBY_PKG_DIR
-  
 end
 
 def ensure_ragel_version(name)</diff>
      <filename>Rakefile</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>extras/mingw-rbconfig.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>fd82982e72772c545e8a35c635bf2cd97704cca5</id>
    </parent>
  </parents>
  <author>
    <name>Jason Garber</name>
    <email>jg@jasongarber.com</email>
  </author>
  <url>http://github.com/jgarber/redcloth/commit/e5494352df4e8f646902a1ba08e56d1f91dc6b84</url>
  <id>e5494352df4e8f646902a1ba08e56d1f91dc6b84</id>
  <committed-date>2008-10-24T09:11:15-07:00</committed-date>
  <authored-date>2008-10-24T09:09:48-07:00</authored-date>
  <message>Refactored the Rakefile to use Echoe for multi-platform gem management.</message>
  <tree>a3e5bee2878269516c21e528d3290e5fe053039e</tree>
  <committer>
    <name>Jason Garber</name>
    <email>jg@jasongarber.com</email>
  </committer>
</commit>
