<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>tasks/rubyforge.rake</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,2 @@
-doc
-pkg
+build
 spec/output</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,16 @@
 require 'rake'
+require 'rake/clean'
 
 $:.unshift File.dirname(__FILE__) + '/lib'
 
 PROJECT_NAME = 'reek'
 
+BUILD_DIR = 'build'; directory BUILD_DIR
+PKG_DIR = &quot;#{BUILD_DIR}/pkg&quot;; directory PKG_DIR
+RDOC_DIR = &quot;#{BUILD_DIR}/rdoc&quot;; directory RDOC_DIR
+
+GEM_MANIFEST = &quot;Manifest.txt&quot;
+
+CLOBBER.include(&quot;#{BUILD_DIR}/*&quot;)
+
 Dir['tasks/**/*.rake'].each { |t| load t }</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ begin
 rescue Gem::LoadError
 end
 
-gemspec = Gem::Specification.new do |s|
+$gemspec = Gem::Specification.new do |s|
   s.name = PROJECT_NAME
   s.version = ::Reek::VERSION
   s.summary = s.description = 'Code smell detector for Ruby'
@@ -19,7 +19,7 @@ gemspec = Gem::Specification.new do |s|
   s.rubyforge_project = PROJECT_NAME
   s.add_dependency('ParseTree', '~&gt; 3.0')
   s.add_dependency('sexp_processor', '~&gt; 3.0')
-  s.files = File.read(&quot;Manifest.txt&quot;).delete(&quot;\r&quot;).split(/\n/)
+  s.files = File.read(GEM_MANIFEST).delete(&quot;\r&quot;).split(/\n/)
   s.executables = s.files.grep(/^bin/) { |f| File.basename(f) }
   s.bindir = 'bin'
   s.require_paths = ['lib']
@@ -44,11 +44,10 @@ end
 def announcement
   subject = &quot;#{PROJECT_NAME} #{::Reek::VERSION} Released&quot;
   title   = &quot;#{PROJECT_NAME} version #{::Reek::VERSION} has been released!&quot;
-  body    = &quot;#{gemspec.description}\n\nChanges:\n\n#{changes}&quot;.rdoc_to_markdown
+  body    = &quot;#{$gemspec.description}\n\nChanges:\n\n#{changes}&quot;.rdoc_to_markdown
   urls    = &lt;&lt;EOU
 * http://wiki.github.com/kevinrutherford/reek
 * http://reek.rubyforge.org/rdoc/
-* http://github.com/kevinrutherford/reek
 EOU
   return subject, title, body, urls
 end
@@ -83,88 +82,84 @@ class ::Rake::SshDirPublisher
   attr_reader :host, :remote_dir, :local_dir
 end
 
-GEMSPEC = &quot;#{PROJECT_NAME}.gemspec&quot;
+GEMSPEC = &quot;#{PROJECT_NAME}.$gemspec&quot;
 
-file GEMSPEC =&gt; ['Manifest.txt', 'lib/reek.rb', __FILE__] do
+file GEMSPEC =&gt; [GEM_MANIFEST, 'lib/reek.rb', __FILE__] do
   puts &quot;Generating #{GEMSPEC}&quot;
   File.open(GEMSPEC, 'w') do |file|
-    file.puts gemspec.to_ruby
+    file.puts $gemspec.to_ruby
   end
-  puts &quot;1) git commit -a -m \&quot;Release #{Reek::VERSION}\&quot;&quot;
-  puts &quot;2) git tag -a \&quot;v#{Reek::VERSION}\&quot; -m \&quot;Release #{Reek::VERSION}\&quot;&quot;
-  puts &quot;3) git push&quot;
-  puts &quot;4) git push --tags&quot;
 end
 
-task :release do
-  puts &lt;&lt;-EOS.gsub(/^  /,'')
-  1) git tag REL-#{::Reek::VERSION}
-  2) rake post_news
-  EOS
-end
+namespace :build do
+  Rake::GemPackageTask.new($gemspec) do |task|
+    task.package_dir = PKG_DIR
+    task.need_tar = true
+    task.need_zip = false
+  end
 
-desc 'Publish RDoc to RubyForge'
-task :publish_docs =&gt; [:clean, :docs] do
-  config = YAML.load(File.read(File.expand_path(&quot;~/.rubyforge/user-config.yml&quot;)))
-  host = &quot;#{config[&quot;username&quot;]}@rubyforge.org&quot;
-  remote_dir = &quot;/var/www/gforge-projects/#{PROJECT_NAME}/rdoc&quot;
-  local_dir = 'doc'
-  sh %{rsync -av --delete --ignore-errors #{local_dir}/ #{host}:#{remote_dir}}
-end
+  task :gem =&gt; ['rspec:all']
+
+  Rake::RDocTask.new do |rd|
+    rd.main = 'README.txt'
+    rd.rdoc_dir = RDOC_DIR
+    files = $gemspec.files.grep(/^(lib|bin|ext)|txt|rdoc$/)
+    files -= [GEM_MANIFEST]
+    rd.rdoc_files.push(*files)
+    title = &quot;#{PROJECT_NAME}-#{::Reek::VERSION} Documentation&quot;
+    rd.options &lt;&lt; &quot;-t #{title}&quot;
+  end
 
-desc 'Install the package as a gem'
-task :install_gem =&gt; [:clean, :package] do
-  gem = Dir['pkg/*.gem'].first
-  sh &quot;sudo gem install --local #{gem}&quot;
+  task :rdoc =&gt; [RDOC_DIR]
+  task :all =&gt; ['build:package', 'build:rdoc']
 end
 
-desc 'Verify the manifest'
-task :check_manifest =&gt; [:clean] do
-  f = &quot;Manifest.tmp&quot;
-  require 'find'
-  files = []
-  Find.find '.' do |path|
-    next unless File.file? path
-    next if path =~ /\.git/
-    files &lt;&lt; path[2..-1]
+namespace :release do
+  task :version_bumped do
+    #abort 'Version not bumped!'
   end
-  files = files.sort.join &quot;\n&quot;
-  File.open(f, 'w') do |fp| fp.puts files end
-  system &quot;diff -du Manifest.txt #{f}&quot;
-  rm f
-end
 
-desc 'Show information about the gem'
-task :show_gemspec do
-  puts gemspec.to_ruby
-end
+  desc 'Minor release on github only'
+  task :minor =&gt; ['version_bumped', 'build:package', 'rubyforge:rdoc'] do
+    puts &lt;&lt;-EOS
+      1) git commit -a -m &quot;Release #{Reek::VERSION}&quot;
+      2) git tag -a &quot;v#{Reek::VERSION}&quot; -m &quot;Release #{Reek::VERSION}&quot;
+      3) git push
+      4) git push --tags
+    EOS
+  end
 
-Rake::GemPackageTask.new(gemspec) do |pkg|
-  pkg.need_tar = true
-  pkg.need_zip = false
+  desc 'Major release (github+rubyforge) with news'
+  task :major do
+    
+  end
 end
 
-Rake::RDocTask.new(:docs) do |rd|
-  rd.main = 'README.txt'
-  rd.rdoc_dir = 'doc'
-  files = gemspec.files.grep(/^(lib|bin|ext)|txt|rdoc$/)
-  files -= ['Manifest.txt']
-  rd.rdoc_files.push(*files)
-  title = &quot;#{PROJECT_NAME}-#{::Reek::VERSION} Documentation&quot;
-  rd.options &lt;&lt; &quot;-t #{title}&quot;
-end
+namespace :test do
+  desc 'Install the gem locally'
+  task :install =&gt; [:clean, 'build:all'] do
+    gem = Dir[&quot;#{PKG_DIR}/*.gem&quot;].first
+    sh &quot;sudo gem install --local #{gem}&quot;
+  end
 
-desc 'Package and upload the release to rubyforge'
-task :release =&gt; [:clean, :package] do |t|
-  pkg = &quot;pkg/#{PROJECT_NAME}-#{::Reek::VERSION}&quot;
-  rf = RubyForge.new.configure
-  puts &quot;Logging in&quot;
-  rf.login
-  c = rf.userconfig
-  c[&quot;release_notes&quot;] = @description if @description
-  c[&quot;release_changes&quot;] = changes if changes
-  c[&quot;preformatted&quot;] = true
-  files = [&quot;#{pkg}.tgz&quot;, &quot;#{pkg}.gem&quot;].compact
-  puts &quot;Releasing #{PROJECT_NAME} v. #{::Reek::VERSION}&quot;
-  rf.add_release(PROJECT_NAME, PROJECT_NAME, ::Reek::VERSION, *files)
+  desc 'Verify the manifest'
+  task :manifest =&gt; [:clobber] do
+    f = &quot;Manifest.tmp&quot;
+    require 'find'
+    files = []
+    Find.find '.' do |path|
+      next unless File.file? path
+      next if path =~ /\.git|build/
+      files &lt;&lt; path[2..-1]
+    end
+    files = files.sort.join &quot;\n&quot;
+    File.open(f, 'w') do |fp| fp.puts files end
+    system &quot;diff -du #{GEM_MANIFEST} #{f}&quot;
+    rm f
+  end
+
+  desc 'Show the gemspec'
+  task :gemspec do
+    puts $gemspec.to_ruby
+  end
 end</diff>
      <filename>tasks/deployment.rake</filename>
    </modified>
    <modified>
      <diff>@@ -21,9 +21,7 @@ end
 
 task CONFIG_FILE =&gt; FileList['lib/reek/smells/*.rb']
 
-desc 'runs the unit and integration tests'
-task 'cruise' =&gt; ['clobber', 'rspec:all']
-
 task 'rspec:fast' =&gt; [CONFIG_FILE]
 task 'rspec:all' =&gt; [CONFIG_FILE]
 task 'reek' =&gt; [CONFIG_FILE]
+task 'check_manifest' =&gt; [CONFIG_FILE]</diff>
      <filename>tasks/develop.rake</filename>
    </modified>
    <modified>
      <diff>@@ -5,16 +5,3 @@ Reek::RakeTask.new do |t|
   t.verbose = false
 #  t.reek_opts = '-f &quot;Smell: %s: %c %w&quot;'
 end
-
-begin
-  require 'flay'
-
-  desc 'Check for code duplication'
-  task 'flay' do
-    files = FileList['lib/**/*.rb']
-    flayer = Flay.new(16)
-    flayer.process(*files)
-    flayer.report
-  end
-rescue LoadError
-end</diff>
      <filename>tasks/reek.rake</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'spec/rake/spectask'
 
 namespace 'rspec' do
   FAST = FileList['spec/reek/**/*_spec.rb']
-  SLOW = FileList['spec/integration/**/*_spec.rb'] + FileList['spec/samples/**/*_spec.rb']
+  SLOW = FileList['spec/integration/**/*_spec.rb', 'spec/samples/**/*_spec.rb']
 
   Spec::Rake::SpecTask.new('fast') do |t|
     t.spec_files = FAST</diff>
      <filename>tasks/rspec.rake</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>tasks/website.rake</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>a33cf4b3a57c1dab44abae1580d0a42094b1cc89</id>
    </parent>
  </parents>
  <author>
    <name>Kevin Rutherford</name>
    <email>kevin@rutherford-software.com</email>
  </author>
  <url>http://github.com/kevinrutherford/reek/commit/51d13794a01bca9d16d9f24c82bab0b0ea6f7479</url>
  <id>51d13794a01bca9d16d9f24c82bab0b0ea6f7479</id>
  <committed-date>2009-04-03T07:04:22-07:00</committed-date>
  <authored-date>2009-04-03T07:04:22-07:00</authored-date>
  <message>Reorganized rake tasks</message>
  <tree>e40dbf814da5715d124b1d3834da60e72b0808a0</tree>
  <committer>
    <name>Kevin Rutherford</name>
    <email>kevin@rutherford-software.com</email>
  </committer>
</commit>
