<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/bananajour/gem_dependencies.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,18 +1,10 @@
-begin
-  $: &lt;&lt; 'lib'; %w( rubygems rake/gempackagetask rake/clean ).each { |dep| require dep }
-rescue LoadError =&gt; e
-  puts &quot;LoadError: you might want to try running the setup task first.&quot;
-  raise e
-end
+require &quot;rubygems&quot;
+
+$:.unshift &quot;#{File.dirname(__FILE__)}/lib&quot;
+
+require &quot;bananajour/version&quot;
+require &quot;bananajour/gem_dependencies&quot;
 
-require &quot;./lib/bananajour/version&quot;
- 
-runtime_deps = {
-  :sinatra =&gt; '0.9.1.1', :json =&gt; &quot;1.1.2&quot;, &quot;chrislloyd-fancypath&quot; =&gt; '0.5.8',
-  :rainbow =&gt; '1.0.1', 'mojombo-grit' =&gt; '1.1.1', :dnssd =&gt; '0.7.1', :rack =&gt; &quot;0.9.1&quot;,
-  :thin =&gt; &quot;1.0.0&quot;, :haml =&gt; &quot;2.0.9&quot;, &quot;activesupport&quot; =&gt; &quot;2.3.2&quot;
-}
- 
 gem = Gem::Specification.new do |gem|
   gem.name             = &quot;bananajour&quot;
   gem.version          = Bananajour::VERSION
@@ -25,44 +17,50 @@ gem = Gem::Specification.new do |gem|
   gem.homepage         = &quot;http://github.com/toolmantim/bananajour&quot;
   gem.require_path     = &quot;lib&quot;
   gem.files            = %w(Readme.md Rakefile) + Dir.glob(&quot;{bin,lib,sinatra}/**/*&quot;)
-  runtime_deps.each { | name, version | gem.add_runtime_dependency( name.to_s, version ) }
-  gem.has_rdoc = false
-  gem.bindir = 'bin'
-  gem.executables = [ 'bananajour' ]
+  gem.has_rdoc         = false
+  gem.bindir           = 'bin'
+  gem.executables      = [ 'bananajour' ]
+  Bananajour::GemDependencies.all.each {|dep| gem.add_runtime_dependency( dep.name, dep.version ) }
+end
+
+task :clean do
+  FileUtils.rm_rf Dir['*.gem', '*.gemspec']
 end
  
-desc &quot;Create the gem&quot;
-task( :package =&gt; [ :clean, &quot;gem:spec:generate&quot; ] ) { Gem::Builder.new( gem ).build }
- 
-desc &quot;Clean build artifacts&quot;
-task( :clean ) { FileUtils.rm_rf Dir['*.gem', '*.gemspec'] }
- 
-desc &quot;Rebuild and bananajour as a gem&quot;
-task( :install =&gt; [ :package, :install_gem ] )
- 
-desc &quot;Install bananajour as a local gem&quot;
-task( :install_gem ) do
+namespace :gem do
+
+  desc &quot;Rebuild and install bananajour as a gem&quot;
+  task :install =&gt; :package do
     require 'rubygems/installer'
     Dir['*.gem'].each do |gem|
       Gem::Installer.new(gem).install
     end
-end
- 
-namespace :gem do
+  end
+
+  desc &quot;Create the gem&quot;
+  task :package =&gt; [:clean, &quot;spec:generate&quot;] do
+    require 'rubygems/builder'
+    Gem::Builder.new( gem ).build
+  end
+
   namespace :spec do
+
     desc &quot;Update #{gem.name}.gemspec&quot;
     task :generate do
       File.open(&quot;#{gem.name}.gemspec&quot;, &quot;w&quot;) do |f|
         f.puts(gem.to_ruby)
       end
     end
-    desc &quot;test spec in github cleanroom&quot;
+
+    desc &quot;Test spec in github cleanroom&quot;
     task :test =&gt; :generate do
       require 'rubygems/specification'
       data = File.read(&quot;#{gem.name}.gemspec&quot;)
       spec = nil
       Thread.new { spec = eval(&quot;$SAFE = 3\n#{data}&quot;) }.join
-      puts spec
+      puts &quot;#{spec} - Good to go!&quot;
     end
+
   end
-end
+  
+end
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -2,56 +2,59 @@
 
 Gem::Specification.new do |s|
   s.name = %q{bananajour}
-  s.version = &quot;1.2.6&quot;
+  s.version = &quot;1.4.0&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Tim Lucas&quot;]
-  s.date = %q{2009-05-17}
+  s.date = %q{2009-05-23}
   s.default_executable = %q{bananajour}
-  s.description = %q{Local git repository hosting with a sexy web interface and bonjour discovery. It's like a adhoc, local, network-aware github!}
+  s.description = %q{Local git repository hosting with a sexy web interface and bonjour discovery. It's like your own little adhoc, network-aware github!}
   s.email = %q{t.lucas@toolmantim.com}
   s.executables = [&quot;bananajour&quot;]
   s.extra_rdoc_files = [&quot;Readme.md&quot;]
-  s.files = [&quot;Readme.md&quot;, &quot;Rakefile&quot;, &quot;bin/bananajour&quot;, &quot;lib/bananajour&quot;, &quot;lib/bananajour/bonjour.rb&quot;, &quot;lib/bananajour/grit_extensions.rb&quot;, &quot;lib/bananajour/repository.rb&quot;, &quot;lib/bananajour/version.rb&quot;, &quot;lib/bananajour.rb&quot;, &quot;sinatra/app.rb&quot;, &quot;sinatra/lib&quot;, &quot;sinatra/lib/date_helpers.rb&quot;, &quot;sinatra/lib/diff_helpers.rb&quot;, &quot;sinatra/public&quot;, &quot;sinatra/public/javascripts&quot;, &quot;sinatra/public/javascripts/jquery-1.3.2.min.js&quot;, &quot;sinatra/public/logo.png&quot;, &quot;sinatra/views&quot;, &quot;sinatra/views/commit.haml&quot;, &quot;sinatra/views/home.haml&quot;, &quot;sinatra/views/layout.haml&quot;, &quot;sinatra/views/network_activity.haml&quot;, &quot;sinatra/views/readme.haml&quot;]
+  s.files = [&quot;Readme.md&quot;, &quot;Rakefile&quot;, &quot;bin/bananajour&quot;, &quot;lib/bananajour&quot;, &quot;lib/bananajour/bonjour.rb&quot;, &quot;lib/bananajour/gem_dependencies.rb&quot;, &quot;lib/bananajour/grit_extensions.rb&quot;, &quot;lib/bananajour/repository.rb&quot;, &quot;lib/bananajour/version.rb&quot;, &quot;lib/bananajour.rb&quot;, &quot;sinatra/app.rb&quot;, &quot;sinatra/lib&quot;, &quot;sinatra/lib/date_helpers.rb&quot;, &quot;sinatra/lib/diff_helpers.rb&quot;, &quot;sinatra/public&quot;, &quot;sinatra/public/javascripts&quot;, &quot;sinatra/public/javascripts/jquery-1.3.2.min.js&quot;, &quot;sinatra/public/logo.png&quot;, &quot;sinatra/public/pbjt.swf&quot;, &quot;sinatra/public/peanut.png&quot;, &quot;sinatra/views&quot;, &quot;sinatra/views/commit.haml&quot;, &quot;sinatra/views/home.haml&quot;, &quot;sinatra/views/layout.haml&quot;, &quot;sinatra/views/network_activity.haml&quot;, &quot;sinatra/views/readme.haml&quot;]
   s.homepage = %q{http://github.com/toolmantim/bananajour}
   s.require_paths = [&quot;lib&quot;]
   s.rubygems_version = %q{1.3.1}
-  s.summary = %q{Local git repository hosting with a sexy web interface and bonjour discovery. It's like a adhoc, local, network-aware github!}
+  s.summary = %q{Local git repository hosting with a sexy web interface and bonjour discovery. It's like your own little adhoc, network-aware github!}
 
   if s.respond_to? :specification_version then
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
     s.specification_version = 2
 
     if Gem::Version.new(Gem::RubyGemsVersion) &gt;= Gem::Version.new('1.2.0') then
-      s.add_runtime_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
-      s.add_runtime_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.1.1&quot;])
-      s.add_runtime_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+      s.add_runtime_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.2&quot;])
       s.add_runtime_dependency(%q&lt;json&gt;, [&quot;= 1.1.2&quot;])
-      s.add_runtime_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
       s.add_runtime_dependency(%q&lt;chrislloyd-fancypath&gt;, [&quot;= 0.5.8&quot;])
-      s.add_runtime_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+      s.add_runtime_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
       s.add_runtime_dependency(%q&lt;mojombo-grit&gt;, [&quot;= 1.1.1&quot;])
-      s.add_runtime_dependency(%q&lt;rack&gt;, [&quot;= 0.9.1&quot;])
+      s.add_runtime_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+      s.add_runtime_dependency(%q&lt;rack&gt;, [&quot;= 1.0.0&quot;])
+      s.add_runtime_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
+      s.add_runtime_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+      s.add_runtime_dependency(%q&lt;activesupport&gt;, [&quot;= 2.3.2&quot;])
     else
-      s.add_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
-      s.add_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.1.1&quot;])
-      s.add_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+      s.add_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.2&quot;])
       s.add_dependency(%q&lt;json&gt;, [&quot;= 1.1.2&quot;])
-      s.add_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
       s.add_dependency(%q&lt;chrislloyd-fancypath&gt;, [&quot;= 0.5.8&quot;])
-      s.add_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+      s.add_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
       s.add_dependency(%q&lt;mojombo-grit&gt;, [&quot;= 1.1.1&quot;])
-      s.add_dependency(%q&lt;rack&gt;, [&quot;= 0.9.1&quot;])
+      s.add_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+      s.add_dependency(%q&lt;rack&gt;, [&quot;= 1.0.0&quot;])
+      s.add_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
+      s.add_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+      s.add_dependency(%q&lt;activesupport&gt;, [&quot;= 2.3.2&quot;])
     end
   else
-    s.add_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
-    s.add_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.1.1&quot;])
-    s.add_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+    s.add_dependency(%q&lt;sinatra&gt;, [&quot;= 0.9.2&quot;])
     s.add_dependency(%q&lt;json&gt;, [&quot;= 1.1.2&quot;])
-    s.add_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
     s.add_dependency(%q&lt;chrislloyd-fancypath&gt;, [&quot;= 0.5.8&quot;])
-    s.add_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+    s.add_dependency(%q&lt;rainbow&gt;, [&quot;= 1.0.1&quot;])
     s.add_dependency(%q&lt;mojombo-grit&gt;, [&quot;= 1.1.1&quot;])
-    s.add_dependency(%q&lt;rack&gt;, [&quot;= 0.9.1&quot;])
+    s.add_dependency(%q&lt;dnssd&gt;, [&quot;= 0.7.1&quot;])
+    s.add_dependency(%q&lt;rack&gt;, [&quot;= 1.0.0&quot;])
+    s.add_dependency(%q&lt;thin&gt;, [&quot;= 1.0.0&quot;])
+    s.add_dependency(%q&lt;haml&gt;, [&quot;= 2.0.9&quot;])
+    s.add_dependency(%q&lt;activesupport&gt;, [&quot;= 2.3.2&quot;])
   end
 end</diff>
      <filename>bananajour.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,7 @@
 #!/usr/bin/env ruby
 
 require &quot;rubygems&quot;
-
-gem 'chrislloyd-fancypath', '0.5.8'
-require 'fancypath'
-
-file = Fancypath(__FILE__)
-require file.symlink? ? &quot;bananajour&quot; : file.dirname/'../lib/bananajour'
+require &quot;#{File.dirname(__FILE__)}/../lib/bananajour&quot;
 
 Bananajour.check_git!
 Bananajour.check_git_config!</diff>
      <filename>bin/bananajour</filename>
    </modified>
    <modified>
      <diff>@@ -3,20 +3,18 @@ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
 
 require 'yaml'
 require 'ostruct'
-
-gem 'rainbow', '1.0.1'
-require 'rainbow'
-
 require 'socket'
 
-gem 'dnssd', '0.7.1'
-require 'dnssd'
-
+require 'bananajour/gem_dependencies'
 require 'bananajour/repository'
 require 'bananajour/grit_extensions'
 require 'bananajour/version'
 require 'bananajour/bonjour'
 
+Bananajour.require_gem 'rainbow'
+Bananajour.require_gem 'dnssd'
+Bananajour.require_gem 'chrislloyd-fancypath', 'fancypath'
+
 module Bananajour
   
   class &lt;&lt; self</diff>
      <filename>lib/bananajour.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-gem 'mojombo-grit', '1.1.1'
-require 'grit'
+Bananajour.require_gem 'mojombo-grit', 'grit'
 
 module Bananajour
   class Repository</diff>
      <filename>lib/bananajour/repository.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 module Bananajour
-  VERSION = '1.2.6'
+  VERSION = '1.4.0'
 end</diff>
      <filename>lib/bananajour/version.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,28 +1,25 @@
 require 'rubygems'
+require 'md5'
 
-gem 'chrislloyd-fancypath', '0.5.8'
-require 'fancypath'
+__DIR__ = File.dirname(__FILE__)
 
-require &quot;#{File.dirname(__FILE__)}/../lib/bananajour&quot;
+require &quot;#{__DIR__}/../lib/bananajour&quot;
 
-gem 'sinatra', '0.9.1.1'
+# Must require 'sinatra' from this file for Sinatra's magic to pick up lots of free stuff
+Bananajour::GemDependencies.for_name('sinatra').require_gem
 require 'sinatra'
 
-gem 'json', '1.1.2'
-require 'json'
-
-gem 'activesupport', '2.3.2'
-require 'active_support/core_ext/enumerable'
-
-require 'md5'
+Bananajour.require_gem 'haml'
+Bananajour.require_gem 'json'
+Bananajour.require_gem 'activesupport', 'active_support/core_ext/enumerable'
 
-disable :logging
 set :environment, Bananajour.env
-
 set :haml, {:format =&gt; :html5, :attr_wrapper =&gt; '&quot;'}
+disable :logging
+
+load &quot;#{__DIR__}/lib/date_helpers.rb&quot;
+load &quot;#{__DIR__}/lib/diff_helpers.rb&quot;
 
-load &quot;#{File.dirname(__FILE__)}/lib/date_helpers.rb&quot;
-load &quot;#{File.dirname(__FILE__)}/lib/diff_helpers.rb&quot;
 helpers DateHelpers, DiffHelpers
 
 helpers do</diff>
      <filename>sinatra/app.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>64522f1ab690d01651ec0b139350972069f1150d</id>
    </parent>
  </parents>
  <author>
    <name>user.email</name>
    <email>t.lucas@toolmantim.com</email>
  </author>
  <url>http://github.com/toolmantim/bananajour/commit/0696c078652481dced59a00e50796d9449c0a0d4</url>
  <id>0696c078652481dced59a00e50796d9449c0a0d4</id>
  <committed-date>2009-05-23T00:24:25-07:00</committed-date>
  <authored-date>2009-05-23T00:24:25-07:00</authored-date>
  <message>DRY'd the dependencies and cleaned up the rake task</message>
  <tree>f622af744c00140c41be71550be1407087db54da</tree>
  <committer>
    <name>user.email</name>
    <email>t.lucas@toolmantim.com</email>
  </committer>
</commit>
