<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,88 +1,62 @@
 require 'rubygems'
 require 'rake'
-require 'rake/testtask'
-require 'rake/gempackagetask'
-
-require File.join(File.dirname(__FILE__), &quot;lib&quot;, &quot;marvin&quot;)
-CURRENT_VERSION = Marvin.version(ENV['RELEASE'].blank?)
-
-spec = Gem::Specification.new do |s|
-  s.name        = 'marvin'
-  s.email       = 'sutto@sutto.net'
-  s.homepage    = 'http://sutto.net/'
-  s.authors     = [&quot;Darcy Laycock&quot;]
-  s.version     = CURRENT_VERSION
-  s.summary     = &quot;Evented IRC Library for Ruby, built on EventMachine and Perennial.&quot;
-  s.description = File.read(&quot;DESCRIPTION&quot;)
-  s.files       = FileList[&quot;{bin,lib,templates,test,handlers}/**/*&quot;].to_a
-  s.platform    = Gem::Platform::RUBY
-  s.executables = FileList[&quot;bin/*&quot;].map { |f| File.basename(f) }
-  s.add_dependency &quot;perennial&quot;,    &quot;&gt;= 1.0.0.0&quot;
-  s.add_dependency &quot;eventmachine&quot;, &quot;&gt;= 0.12.8&quot;
-  s.add_dependency &quot;json&quot;
-end
-
-task :default =&gt; &quot;test:units&quot;
-
-namespace :test do
-  desc &quot;Runs the unit tests for perennial&quot;
-  Rake::TestTask.new(&quot;units&quot;) do |t|
-    t.pattern = 'test/*_test.rb'
-    t.libs &lt;&lt; 'test'
-    t.verbose = true
-  end  
-end
-
-Rake::GemPackageTask.new(spec) do |pkg|
-  pkg.need_zip = true
-  pkg.need_tar = true
-end
-
-task :gemspec do
-  File.open(&quot;#{spec.name}.gemspec&quot;, &quot;w+&quot;) { |f| f.puts spec.to_ruby }
-end
-
-def gemi(name, version)
-  command = &quot;gem install #{name} --version '#{version}' #{&quot;--source http://gems.github.com&quot; if name.include?(&quot;-&quot;)}&quot;.strip
-  puts &quot;&gt;&gt; #{command}&quot;
-  system &quot;#{command} 1&gt; /dev/null 2&gt; /dev/null&quot;
-end
 
-task :install_dependencies do
-  spec.dependencies.each do |dependency|
-    gemi dependency.name, dependency.requirement_list.first
+MARVIN_MAIN_FILE = File.join(File.dirname(__FILE__), &quot;lib&quot;, &quot;marvin.rb&quot;)
+require MARVIN_MAIN_FILE
+
+begin
+  require 'jeweler'
+  require 'perennial/jeweler_ext'
+  Jeweler.versioning_via MARVIN_MAIN_FILE, Marvin::VERSION
+  Jeweler::Tasks.new do |gem|
+    gem.name        = &quot;marvin&quot;
+    gem.summary     = &quot;Evented IRC Library for Ruby, built on EventMachine and Perennial.&quot;
+    gem.description = File.read(&quot;DESCRIPTION&quot;)
+    gem.email       = 'sutto@sutto.net'
+    gem.homepage    = 'http://sutto.net/'
+    gem.authors     = [&quot;Darcy Laycock&quot;]
+    gem.files       = FileList[&quot;{bin,lib,templates,test,handlers}/**/*&quot;].to_a
+    gem.platform    = Gem::Platform::RUBY
+    gem.add_dependency &quot;perennial&quot;,    &quot;&gt;= 1.0.1&quot;
+    gem.add_dependency &quot;eventmachine&quot;, &quot;&gt;= 0.12.8&quot;
+    gem.add_dependency &quot;json&quot;
+    gem.add_development_dependency &quot;thoughtbot-shoulda&quot;
+    gem.add_development_dependency &quot;yard&quot;
   end
+  Jeweler::GemcutterTasks.new
+rescue LoadError =&gt; e
+  puts &quot;Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler&quot;
 end
 
-task :check_dirty do
-  if `git status`.include? 'added to commit'
-    puts &quot;You have uncommited changes. Please commit them first&quot;
-    exit!
+require 'rake/testtask'
+Rake::TestTask.new(:test) do |test|
+  test.libs &lt;&lt; 'lib' &lt;&lt; 'test'
+  test.pattern = 'test/**/*_test.rb'
+  test.verbose = true
+end
+
+begin
+  require 'rcov/rcovtask'
+  Rcov::RcovTask.new do |test|
+    test.libs &lt;&lt; 'test'
+    test.pattern = 'test/**/*_test.rb'
+    test.verbose = true
+  end
+rescue LoadError
+  task :rcov do
+    abort &quot;RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov&quot;
   end
 end
 
-task :tag =&gt; :check_dirty do
-  command = &quot;git tag -a v#{CURRENT_VERSION} -m 'Code checkpoint for v#{CURRENT_VERSION}'&quot;
-  puts &quot;&gt;&gt; #{command}&quot;
-  system command
-end
-
-task :commit_gemspec =&gt; [:check_dirty, :gemspec] do
-  command = &quot;git commit -am 'Generate gemspec for v#{CURRENT_VERSION}'&quot;
-  puts &quot;&gt;&gt; #{command}&quot;
-  system command
-end
+task :test =&gt; :check_dependencies
 
-task :release =&gt; [:commit_gemspec, :tag] do
-  puts &quot;&gt;&gt; git push&quot;
-  system &quot;git push 1&gt; /dev/null 2&gt; /dev/null&quot;
-  system &quot;git push --tags 1&gt; /dev/null 2&gt; /dev/null&quot;
-  Rake::Task[&quot;gemcutter&quot;].invoke
-  puts &quot;New version released.&quot;
-end
+task :default =&gt; :test
 
-task :gemcutter =&gt; [:check_dirty, :gemspec] do
-  puts &quot;&gt;&gt; pushing to gemcutter&quot;
-  gem_name = &quot;#{spec.name}-#{CURRENT_VERSION}.gem&quot;
-  system &quot;gem build #{spec.name}.gemspec &amp;&amp; gem push #{gem_name} &amp;&amp; rm #{gem_name}&quot;
+begin
+  require 'yard'
+  YARD::Rake::YardocTask.new
+rescue LoadError
+  task :yardoc do
+    abort &quot;YARD is not available. In order to run yardoc, you must: sudo gem install yard&quot;
+  end
 end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'perennial'
 module Marvin
   include Perennial
   
-  VERSION = [0, 8, 0, 2]
+  VERSION = [0, 8, 1, 0]
   
   # Client
   autoload :TestClient,       'marvin/test_client'</diff>
      <filename>lib/marvin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
+# Generated by jeweler
+# DO NOT EDIT THIS FILE
+# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
 # -*- encoding: utf-8 -*-
 
 Gem::Specification.new do |s|
@@ -6,7 +9,7 @@ Gem::Specification.new do |s|
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Darcy Laycock&quot;]
-  s.date = %q{2009-09-27}
+  s.date = %q{2009-10-05}
   s.default_executable = %q{marvin}
   s.description = %q{Marvin is a library (also usable in framework / application form) that
 makes it simple and fast to build applications around IRC. With an emphasis
@@ -16,28 +19,100 @@ and the like) easy, whilst still making it possible to do more complex thing
 working with IRC in an evented fashion fun and easy for all rubyists.}
   s.email = %q{sutto@sutto.net}
   s.executables = [&quot;marvin&quot;]
-  s.files = [&quot;bin/marvin&quot;, &quot;lib/marvin&quot;, &quot;lib/marvin/abstract_client.rb&quot;, &quot;lib/marvin/abstract_parser.rb&quot;, &quot;lib/marvin/base.rb&quot;, &quot;lib/marvin/client&quot;, &quot;lib/marvin/client/actions.rb&quot;, &quot;lib/marvin/client/default_handlers.rb&quot;, &quot;lib/marvin/command_handler.rb&quot;, &quot;lib/marvin/console.rb&quot;, &quot;lib/marvin/core_commands.rb&quot;, &quot;lib/marvin/distributed&quot;, &quot;lib/marvin/distributed/client.rb&quot;, &quot;lib/marvin/distributed/handler.rb&quot;, &quot;lib/marvin/distributed/protocol.rb&quot;, &quot;lib/marvin/distributed/server.rb&quot;, &quot;lib/marvin/distributed.rb&quot;, &quot;lib/marvin/dsl.rb&quot;, &quot;lib/marvin/exception_tracker.rb&quot;, &quot;lib/marvin/exceptions.rb&quot;, &quot;lib/marvin/irc&quot;, &quot;lib/marvin/irc/client.rb&quot;, &quot;lib/marvin/irc/event.rb&quot;, &quot;lib/marvin/irc/replies.rb&quot;, &quot;lib/marvin/irc.rb&quot;, &quot;lib/marvin/logging_handler.rb&quot;, &quot;lib/marvin/middle_man.rb&quot;, &quot;lib/marvin/parsers&quot;, &quot;lib/marvin/parsers/command.rb&quot;, &quot;lib/marvin/parsers/prefixes&quot;, &quot;lib/marvin/parsers/prefixes/host_mask.rb&quot;, &quot;lib/marvin/parsers/prefixes/server.rb&quot;, &quot;lib/marvin/parsers/prefixes.rb&quot;, &quot;lib/marvin/parsers/ragel_parser.rb&quot;, &quot;lib/marvin/parsers/ragel_parser.rl&quot;, &quot;lib/marvin/parsers/simple_parser.rb&quot;, &quot;lib/marvin/parsers.rb&quot;, &quot;lib/marvin/settings.rb&quot;, &quot;lib/marvin/test_client.rb&quot;, &quot;lib/marvin/util.rb&quot;, &quot;lib/marvin.rb&quot;, &quot;templates/boot.erb&quot;, &quot;templates/connections.yml.erb&quot;, &quot;templates/debug_handler.erb&quot;, &quot;templates/hello_world.erb&quot;, &quot;templates/rakefile.erb&quot;, &quot;templates/settings.yml.erb&quot;, &quot;templates/setup.erb&quot;, &quot;templates/test_helper.erb&quot;, &quot;test/abstract_client_test.rb&quot;, &quot;test/parser_comparison.rb&quot;, &quot;test/parser_test.rb&quot;, &quot;test/test_helper.rb&quot;, &quot;test/util_test.rb&quot;, &quot;handlers/debug_handler.rb&quot;, &quot;handlers/hello_world.rb&quot;, &quot;handlers/keiki_thwopper.rb&quot;, &quot;handlers/simple_logger.rb&quot;, &quot;handlers/tweet_tweet.rb&quot;]
+  s.extra_rdoc_files = [
+    &quot;README.markdown&quot;
+  ]
+  s.files = [
+    &quot;bin/marvin&quot;,
+     &quot;handlers/debug_handler.rb&quot;,
+     &quot;handlers/hello_world.rb&quot;,
+     &quot;handlers/keiki_thwopper.rb&quot;,
+     &quot;handlers/simple_logger.rb&quot;,
+     &quot;handlers/tweet_tweet.rb&quot;,
+     &quot;lib/marvin.rb&quot;,
+     &quot;lib/marvin/abstract_client.rb&quot;,
+     &quot;lib/marvin/abstract_parser.rb&quot;,
+     &quot;lib/marvin/base.rb&quot;,
+     &quot;lib/marvin/client/actions.rb&quot;,
+     &quot;lib/marvin/client/default_handlers.rb&quot;,
+     &quot;lib/marvin/command_handler.rb&quot;,
+     &quot;lib/marvin/console.rb&quot;,
+     &quot;lib/marvin/core_commands.rb&quot;,
+     &quot;lib/marvin/distributed.rb&quot;,
+     &quot;lib/marvin/distributed/client.rb&quot;,
+     &quot;lib/marvin/distributed/handler.rb&quot;,
+     &quot;lib/marvin/distributed/protocol.rb&quot;,
+     &quot;lib/marvin/distributed/server.rb&quot;,
+     &quot;lib/marvin/dsl.rb&quot;,
+     &quot;lib/marvin/exception_tracker.rb&quot;,
+     &quot;lib/marvin/exceptions.rb&quot;,
+     &quot;lib/marvin/irc.rb&quot;,
+     &quot;lib/marvin/irc/client.rb&quot;,
+     &quot;lib/marvin/irc/event.rb&quot;,
+     &quot;lib/marvin/irc/replies.rb&quot;,
+     &quot;lib/marvin/logging_handler.rb&quot;,
+     &quot;lib/marvin/middle_man.rb&quot;,
+     &quot;lib/marvin/parsers.rb&quot;,
+     &quot;lib/marvin/parsers/command.rb&quot;,
+     &quot;lib/marvin/parsers/prefixes.rb&quot;,
+     &quot;lib/marvin/parsers/prefixes/host_mask.rb&quot;,
+     &quot;lib/marvin/parsers/prefixes/server.rb&quot;,
+     &quot;lib/marvin/parsers/ragel_parser.rb&quot;,
+     &quot;lib/marvin/parsers/ragel_parser.rl&quot;,
+     &quot;lib/marvin/parsers/simple_parser.rb&quot;,
+     &quot;lib/marvin/settings.rb&quot;,
+     &quot;lib/marvin/test_client.rb&quot;,
+     &quot;lib/marvin/util.rb&quot;,
+     &quot;templates/boot.erb&quot;,
+     &quot;templates/connections.yml.erb&quot;,
+     &quot;templates/debug_handler.erb&quot;,
+     &quot;templates/hello_world.erb&quot;,
+     &quot;templates/rakefile.erb&quot;,
+     &quot;templates/settings.yml.erb&quot;,
+     &quot;templates/setup.erb&quot;,
+     &quot;templates/test_helper.erb&quot;,
+     &quot;test/abstract_client_test.rb&quot;,
+     &quot;test/parser_comparison.rb&quot;,
+     &quot;test/parser_test.rb&quot;,
+     &quot;test/test_helper.rb&quot;,
+     &quot;test/util_test.rb&quot;
+  ]
   s.homepage = %q{http://sutto.net/}
+  s.rdoc_options = [&quot;--charset=UTF-8&quot;]
   s.require_paths = [&quot;lib&quot;]
-  s.rubygems_version = %q{1.3.2}
+  s.rubygems_version = %q{1.3.5}
   s.summary = %q{Evented IRC Library for Ruby, built on EventMachine and Perennial.}
+  s.test_files = [
+    &quot;test/abstract_client_test.rb&quot;,
+     &quot;test/parser_comparison.rb&quot;,
+     &quot;test/parser_test.rb&quot;,
+     &quot;test/test_helper.rb&quot;,
+     &quot;test/util_test.rb&quot;,
+     &quot;examples/example_dsl.rb&quot;
+  ]
 
   if s.respond_to? :specification_version then
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
     s.specification_version = 3
 
     if Gem::Version.new(Gem::RubyGemsVersion) &gt;= Gem::Version.new('1.2.0') then
-      s.add_runtime_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.0.0&quot;])
+      s.add_runtime_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.1&quot;])
       s.add_runtime_dependency(%q&lt;eventmachine&gt;, [&quot;&gt;= 0.12.8&quot;])
       s.add_runtime_dependency(%q&lt;json&gt;, [&quot;&gt;= 0&quot;])
+      s.add_development_dependency(%q&lt;thoughtbot-shoulda&gt;, [&quot;&gt;= 0&quot;])
+      s.add_development_dependency(%q&lt;yard&gt;, [&quot;&gt;= 0&quot;])
     else
-      s.add_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.0.0&quot;])
+      s.add_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.1&quot;])
       s.add_dependency(%q&lt;eventmachine&gt;, [&quot;&gt;= 0.12.8&quot;])
       s.add_dependency(%q&lt;json&gt;, [&quot;&gt;= 0&quot;])
+      s.add_dependency(%q&lt;thoughtbot-shoulda&gt;, [&quot;&gt;= 0&quot;])
+      s.add_dependency(%q&lt;yard&gt;, [&quot;&gt;= 0&quot;])
     end
   else
-    s.add_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.0.0&quot;])
+    s.add_dependency(%q&lt;perennial&gt;, [&quot;&gt;= 1.0.1&quot;])
     s.add_dependency(%q&lt;eventmachine&gt;, [&quot;&gt;= 0.12.8&quot;])
     s.add_dependency(%q&lt;json&gt;, [&quot;&gt;= 0&quot;])
+    s.add_dependency(%q&lt;thoughtbot-shoulda&gt;, [&quot;&gt;= 0&quot;])
+    s.add_dependency(%q&lt;yard&gt;, [&quot;&gt;= 0&quot;])
   end
 end</diff>
      <filename>marvin.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bda4ed783cf1ba8e0868c3db2a2c90843c21ab34</id>
    </parent>
  </parents>
  <author>
    <name>Darcy Laycock</name>
    <email>sutto@sutto.net</email>
  </author>
  <url>http://github.com/Sutto/marvin/commit/bbf804dd38e9f5f528fa1634e21e04eb4616de3c</url>
  <id>bbf804dd38e9f5f528fa1634e21e04eb4616de3c</id>
  <committed-date>2009-10-05T06:58:20-07:00</committed-date>
  <authored-date>2009-10-05T06:58:20-07:00</authored-date>
  <message>Switch to use jeweler</message>
  <tree>20c807e22e46aaf847e860c6f60337cf7a34f74c</tree>
  <committer>
    <name>Darcy Laycock</name>
    <email>sutto@sutto.net</email>
  </committer>
</commit>
