Rakefile in mastodon-0.1.0 vs Rakefile in mastodon-0.3.1
- old
+ new
@@ -1,55 +1,83 @@
+require 'rubygems'
+require 'rake'
+
+task :default => :test
+
begin
require 'jeweler'
+ Jeweler::Tasks.new do |gem|
+ gem.name = "mastodon"
+ gem.summary = %Q{A Ruby parser for todo.txt files}
+ gem.description = %Q{A Ruby parser for todo.txt files}
+ gem.email = "colin@evaryont.me"
+ gem.homepage = "http://evaryont.me"
+ gem.authors = ["Colin Shea"]
+ gem.add_development_dependency "riot", ">= 0"
+ gem.add_development_dependency "yard", ">= 0"
+ end
+ Jeweler::GemcutterTasks.new
rescue LoadError
- puts "Jeweler not available, but is required. Install it with: sudo gem install jeweler"
- exit 1
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
end
-@jtasks = Jeweler::Tasks.new do |gemspec|
- gemspec.name = "mastodon"
- gemspec.summary = "A ruby parser for todo.txt files"
- gemspec.description = "Mastodon: A ruby parser for todo.txt files.\n\nAnd the mastodon, like plain text, isn't extinct! (Yet.)"
- gemspec.email = "colin@evaryont.me"
- gemspec.homepage = "http://github.com/evaryont/mastodon/"
- gemspec.authors = ["Colin Shea"]
+require 'rake/testtask'
+Rake::TestTask.new(:test) do |test|
+ test.libs << 'lib' << 'test'
+ test.pattern = 'test/**/*_test.rb'
+ test.verbose = true
end
-Jeweler::GemcutterTasks.new
-@jeweler = @jtasks.jeweler
+task :test => :check_dependencies
-namespace :version do
- desc "DON'T CALL. Write the version to lib/#{@jeweler.gemspec_helper.spec.name}/version.rb"
- task :ruby do
- # TODO: This is hard coded but it should be dynamic, given
- # the gem spec
- file = File.open("lib/#{@jeweler.gemspec_helper.spec.name}/version.rb", "w")
- # TODO: and so should this class template
- file.write <<-CLASS
-# Automatically generated by `rake version:ruby' - use version:bump to change
-# this, do not edit this directly, as it will be overwritten!
-class #{@jeweler.gemspec_helper.spec.name.capitalize}
- VERSION = [#{@jeweler.major_version}, #{@jeweler.minor_version}, #{@jeweler.patch_version}]
+begin
+ require 'rcov/rcovtask'
+ Rcov::RcovTask.new do |test|
+ test.libs << 'test'
+ test.pattern = 'test/**/*_test.rb'
+ test.verbose = true
+ end
+rescue LoadError
+ task :rcov do
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
+ end
end
-CLASS
- system("git commit --file='.git/COMMIT_EDITMSG' --amend -q -o 'lib/#{@jeweler.gemspec_helper.spec.name}/version.rb'")
- end
- # Take advantage of Rake not overwriting tasks.
- #
- # After the 'real' task has been called, write version.rb as well.
- namespace :bump do
- task :major do
- Rake::Task["version:ruby"].execute
- end
- task :minor do
- Rake::Task["version:ruby"].execute
- end
- task :patch do
- Rake::Task["version:ruby"].execute
- end
- end
+begin
+ require 'reek/adapters/rake_task'
+ Reek::RakeTask.new do |t|
+ t.fail_on_error = true
+ t.verbose = false
+ t.source_files = 'lib/**/*.rb'
+ end
+rescue LoadError
+ task :reek do
+ abort "Reek is not available. In order to run reek, you must: sudo gem install reek"
+ end
end
-desc "Run the nanotest suite"
-task :test do
- system("ruby -I'lib:test' test/run_tests.rb")
+begin
+ require 'roodi'
+ require 'roodi_task'
+ RoodiTask.new do |t|
+ t.verbose = false
+ end
+rescue LoadError
+ task :roodi do
+ abort "Roodi is not available. In order to run roodi, you must: sudo gem install roodi"
+ end
+end
+
+begin
+ require 'yard'
+ YARD::Rake::YardocTask.new do |t|
+ t.files = ["lib/**/*.rb"]
+ end
+rescue LoadError
+ task :yard do
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
+ end
+end
+
+namespace :release do
+ desc "Release to all locations: Git, GitHub and GemCutter"
+ task :all => ["git:release", "github:release", "gemcutter:release"]
end