<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/plow/dependencies.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -48,6 +48,7 @@ REQUIREMENTS
 * Ruby 1.9.1
 
 **Optional development dependencies**
+* Rake 0.8.7 (bundled with Ruby 1.9.1)
 * Jeweler 1.3.0
 * RSpec 1.2.9
 * YARD 0.2.3.5</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,30 +1,10 @@
-require 'rubygems'
-require 'rake'
+# encoding: UTF-8
 
-class Plow
-  class Dependencies
-    RUBY = '= 1.9.1'
-    
-    DEVELOPMENT = {
-      :jeweler   =&gt; '= 1.3.0',
-      :rspec     =&gt; '= 1.2.9',
-      :yard      =&gt; '= 0.2.3.5',
-      :bluecloth =&gt; '= 2.0.5'     # hidden yard dependency for markdown support
-    }
-    
-    ##
-    # Returns a String with the appropriate error message
-    #
-    # @param error LoadError The error object
-    # @return String The developer error message
-    def self.error_message_for(error)
-      error.message.match(/no such file to load -- (?&lt;gem_name&gt;\w*)/) do |match_data|
-        name = match_data[:gem_name].to_sym
-        name = :rspec if name == :spec # thanx for bucking the pattern, rspec! :(
-        return &quot;#{name} is not available.  Install it with: gem install #{name} --version '#{DEVELOPMENT[name]}'&quot;
-      end
-    end
-  end
+begin
+  require 'lib/plow/dependencies'
+  Plow::Dependencies.warn_about_development_dependency_errors_at_exit
+rescue LoadError =&gt; e
+  abort(e.message)
 end
 
 ###################################################################################################
@@ -42,9 +22,9 @@ begin
     gem.homepage          = &quot;http://github.com/ryansobol/plow&quot;
     gem.authors           = [&quot;Ryan Sobol&quot;]
     
-    gem.required_ruby_version = Plow::Dependencies::RUBY
+    gem.required_ruby_version = Plow::Dependencies::REQUIRED_RUBY_VERSION
     
-    Plow::Dependencies::DEVELOPMENT.each_pair do |gem_name, version|
+    Plow::Dependencies::DEVELOPMENT_GEMS.each_pair do |gem_name, version|
       gem.add_development_dependency(gem_name.to_s, version)
     end
   end
@@ -55,7 +35,7 @@ begin
     task.doc_task = false # rubyforge's days are numbered...
   end
 rescue LoadError =&gt; e
-  puts Plow::Dependencies.error_message_for(e)
+  Plow::Dependencies.generate_development_error_message_for(e)
 end
 
 ###################################################################################################
@@ -65,15 +45,15 @@ begin
   Spec::Rake::SpecTask.new(:spec)  
   task :default =&gt; :spec
 rescue LoadError =&gt; e
-  puts Plow::Dependencies.error_message_for(e)
+  Plow::Dependencies.generate_development_error_message_for(e)
 end
 
 ###################################################################################################
 
 begin
   require 'yard'
-  require 'bluecloth'
+  require 'bluecloth' # hidden yard dependency for markdown support
   YARD::Rake::YardocTask.new(:yardoc)
 rescue LoadError =&gt; e
-  puts Plow::Dependencies.error_message_for(e)
+  Plow::Dependencies.generate_development_error_message_for(e)
 end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,7 @@
 # encoding: UTF-8
 
-unless RUBY_VERSION &gt;= '1.9.1'
-  abort &lt;&lt;-ERROR
-Incompatible ruby version error in #{__FILE__} near line #{__LINE__}
-This library requires at least ruby v1.9.1 but you're using ruby v#{RUBY_VERSION}
-Please see http://www.ruby-lang.org/
-  ERROR
-end
-
+require 'plow/dependencies' # ruby version guard
 require 'plow/core_ext/object'
-
 require 'plow/errors'
 require 'plow/application'
 </diff>
      <filename>lib/plow.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>73dc3f4fb4b6a119e35ff018ff0f5b9d6f6f3208</id>
    </parent>
  </parents>
  <author>
    <name>Ryan Sobol</name>
    <email>code@ryansobol.com</email>
  </author>
  <url>http://github.com/ryansobol/plow/commit/2bff5cc23a12827ca10af37a803e7b6c81284a42</url>
  <id>2bff5cc23a12827ca10af37a803e7b6c81284a42</id>
  <committed-date>2009-10-28T17:27:03-07:00</committed-date>
  <authored-date>2009-10-28T17:27:03-07:00</authored-date>
  <message>* README.markdown
  * added Rake 0.8.7 as an explicit development dependency (though it's bundled with Ruby 1.9.1)
* Rakefile
  * removed unecessary requires for rubygems and rake
  * added UTF-8 encoding magic comment
  * moved Plow::Dependencies into a separate file and require that file with abortion of execution on LoadError
  * warning about development dependency errors at exit
  * renamed Plow::Dependencies::RUBY to Plow::Dependencies::REQUIRED_RUBY_VERSION
  * renamed Plow::Dependencies::DEVELOPMENT to Plow::Dependencies::DEVELOPMENT_GEMS
  * API change from Plow::Dependencies.error_message_for to Plow::Dependencies.generate_development_error_message_for
* lib/plow.rb
  * now requires plow/dependencies for ruby version guard
* lib/plow/dependencies.rb
  * new dedicated file for Plow::Dependencies
  * removed '= ' prefix to all version numbers</message>
  <tree>ad40c163195844d03dba0a82f34cfbd785700ff5</tree>
  <committer>
    <name>Ryan Sobol</name>
    <email>code@ryansobol.com</email>
  </committer>
</commit>
