Rakefile in erlectricity-0.2.1 vs Rakefile in erlectricity-1.0.0

- old
+ new

@@ -1,71 +1,74 @@ require 'rubygems' require 'rake' -require 'rake/clean' -require 'rake/testtask' -require 'rake/packagetask' -require 'rake/gempackagetask' -require 'rake/rdoctask' -require 'rake/contrib/rubyforgepublisher' -require 'fileutils' -require 'hoe' -include FileUtils -require File.join(File.dirname(__FILE__), 'lib', 'erlectricity', 'version') -AUTHOR = 'Scott Fleckenstein' # can also be an array of Authors -EMAIL = "nullstyle@gmail.com" -DESCRIPTION = "A library to interface erlang and ruby through the erlang port system" -GEM_NAME = 'erlectricity' # what ppl will type to install your gem -RUBYFORGE_PROJECT = 'erlectricity' # The unix name for your project -HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org" -DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}" +begin + require 'jeweler' + Jeweler::Tasks.new do |gem| + gem.name = "erlectricity" + gem.rubyforge_project = "erlectricity" + gem.summary = "A library to interface erlang and ruby through the erlang port system" + gem.email = "tom@mojombo.com" + gem.homepage = "http://github.com/mojombo/erlectricity" + gem.authors = ["Scott Fleckenstein", "Tom Preston-Werner"] + gem.require_paths = ["lib", "ext"] + gem.files.include("ext") + gem.extensions << 'ext/extconf.rb' -NAME = "erlectricity" -REV = nil # UNCOMMENT IF REQUIRED: File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil -VERS = Erlectricity::VERSION::STRING + (REV ? ".#{REV}" : "") -CLEAN.include ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] -RDOC_OPTS = ['--quiet', '--title', 'erlectricity documentation', - "--opname", "index.html", - "--line-numbers", - "--main", "README", - "--inline-source"] - -class Hoe - def extra_deps - @extra_deps.reject { |x| Array(x).first == 'hoe' } - end + # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings + end +rescue LoadError + puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com" end -# Generate all the Rake tasks -# Run 'rake -T' to see list of generated tasks (from gem root directory) -hoe = Hoe.new(GEM_NAME, VERS) do |p| - p.author = AUTHOR - p.description = DESCRIPTION - p.email = EMAIL - p.summary = DESCRIPTION - p.url = HOMEPATH - p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT - p.test_globs = ["test/**/test_*.rb"] - p.clean_globs = CLEAN #An array of file patterns to delete on clean. - - # == Optional - p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n") - p.extra_deps = [ - ['concurrent', '0.2.2'], - ] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ] - #p.spec_extras = {} # A hash of extra values to set in the gemspec. - p.spec_extras = {:extensions => ['ext/extconf.rb']} -end +task :test do + require 'open3' + require 'fileutils' -desc 'Release the website and new gem version' -task :deploy => [:check_version, :release] + puts "\nCleaning extension build files and running all specs in native ruby mode..." + `rm -f ext/*.bundle` && puts("rm -f ext/*.bundle") + `rm -f ext/*.o` && puts("rm -f ext/*.o") + Open3.popen3("ruby test/spec_suite.rb") do |stdin, stdout, stderr| + while !stdout.eof? + print stdout.read(1) + end + end -task :check_version do - unless ENV['VERSION'] - puts 'Must pass a VERSION=x.y.z release version' - exit + puts "\nRunning `make` to build extensions and rerunning decoder specs..." + Dir.chdir('ext') { `make` } + Open3.popen3("ruby test/decode_spec.rb") do |stdin, stdout, stderr| + while !stdout.eof? + print stdout.read(1) + end end - unless ENV['VERSION'] == VERS - puts "Please update your version.rb to match the release version, currently #{VERS}" - exit +end + +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 + + +task :default => :test + +require 'rake/rdoctask' +Rake::RDocTask.new do |rdoc| + if File.exist?('VERSION.yml') + config = YAML.load(File.read('VERSION.yml')) + version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}" + else + version = "" + end + + rdoc.rdoc_dir = 'rdoc' + rdoc.title = "erlectricity #{version}" + rdoc.rdoc_files.include('README*') + rdoc.rdoc_files.include('lib/**/*.rb') +end \ No newline at end of file