Rakefile in adhearsion-1.0.1 vs Rakefile in adhearsion-1.0.2
- old
+ new
@@ -1,74 +1,59 @@
# -*- ruby -*-
-ENV['RUBY_FLAGS'] = "-I#{%w(lib ext bin test).join(File::PATH_SEPARATOR)}"
+ENV['RUBY_FLAGS'] = "-I#{%w(lib ext bin spec).join(File::PATH_SEPARATOR)}"
require 'rubygems'
require 'bundler'
Bundler::GemHelper.install_tasks
-require 'rake/testtask'
require 'date'
+require 'adhearsion/version'
+task :default => :spec
+task :gem => :build
+
begin
gem 'rspec', '>= 2.3.0'
require 'rspec/core/rake_task'
rescue LoadError
abort "You must install RSpec: sudo gem install rspec"
end
-begin
- require 'yard'
- YARD::Rake::YardocTask.new do |t|
- t.files = ['lib/**/*.rb'] + %w[README.markdown TODO.markdown LICENSE]
- end
-rescue LoadError
- STDERR.puts "\nCould not require() YARD! Install with 'gem install yard' to get the 'yardoc' task\n\n"
+RSpec::Core::RakeTask.new do |t|
end
-require 'adhearsion/version'
+desc "Run all RSpecs for Theatre"
+RSpec::Core::RakeTask.new(:theatre_specs) do |t|
+ t.pattern = 'theatre-spec/**/*_spec.rb'
+end
-AHN_TESTS = ['spec/**/test_*.rb']
-#AHN_TESTS = ['spec/test_ahn_command.rb']
-GEMSPEC = eval File.read("adhearsion.gemspec")
-RAGEL_FILES = %w[lib/adhearsion/voip/asterisk/manager_interface/ami_lexer.rl.rb]
-THEATRE_TESTS = 'theatre-spec/**/*_spec.rb'
-
begin
require 'rcov/rcovtask'
Rcov::RcovTask.new do |t|
- t.test_files = Dir[*AHN_TESTS]
- t.output_dir = 'coverage'
- t.verbose = true
- t.rcov_opts.concat %w[--sort coverage --sort-reverse -x gems -x /var --no-validator-links]
+ t.libs << "spec"
+ t.test_files = Dir['spec/**/*_spec.rb']
+ t.output_dir = 'coverage'
+ t.verbose = true
+ t.rcov_opts.concat %w[--sort coverage --sort-reverse -x gems -x /var]
end
rescue LoadError
STDERR.puts "Could not load rcov tasks -- rcov does not appear to be installed. Continuing anyway."
end
-task :gem => :build
-
-# YARD::Rake::YardocTask.new do |t|
-# t.files = ['lib/**/*.rb'] # optional
-# # t.options = ['--any', '--extra', '--opts'] # optional
-# end
-
-#Rake::TestTask.new('spec') do |t|
-# t.libs << File.dirname(__FILE__)
-# t.verbose = true
-# t.pattern = AHN_TESTS
-#end
-
-RSpec::Core::RakeTask.new(:spec) do |t|
- t.pattern = AHN_TESTS
+begin
+ require 'yard'
+ YARD::Rake::YardocTask.new do |t|
+ t.files = ['lib/**/*.rb'] + %w[README.markdown TODO.markdown LICENSE]
+ end
+rescue LoadError
+ STDERR.puts "\nCould not require() YARD! Install with 'gem install yard' to get the 'yardoc' task\n\n"
end
-task :default => :spec
-
desc "Check Ragel version"
task :check_ragel_version do
- ragel_version_match = `ragel --version`.match(/(\d)\.(\d)+/)
+ ragel_version_match = `ragel --version`.match /(\d)\.(\d)+/
abort "Could not get Ragel version! Is it installed? You must have at least version 6.3" unless ragel_version_match
- big, small = ragel_version_match.captures.map { |n| n.to_i }
+ big, small = ragel_version_match.captures.map &:to_i
if big < 6 || (big == 6 && small < 3)
abort "Please upgrade Ragel! You're on version #{ragel_version_match[0]} and must be on 6.3 or later"
end
if (big == 6 && small < 7)
puts "WARNING: A change to Ruby since 1.9 affects the Ragel generated code."
@@ -76,14 +61,16 @@
puts "WARNING: the patch found at:"
puts "WARNING: http://www.mail-archive.com/ragel-users@complang.org/msg00440.html"
end
end
+RAGEL_FILES = %w[lib/adhearsion/voip/asterisk/manager_interface/ami_lexer.rl.rb]
+
desc "Used to regenerate the AMI source code files. Note: requires Ragel 6.3 or later be installed on your system"
task :ragel => :check_ragel_version do
RAGEL_FILES.each do |ragel_file|
- ruby_file = ragel_file.sub(".rl.rb", ".rb")
+ ruby_file = ragel_file.sub ".rl.rb", ".rb"
puts `ragel -n -R #{ragel_file} -o #{ruby_file} 2>&1`
raise "Failed generating code from Ragel file #{ragel_file}" if $?.to_i.nonzero?
end
end
@@ -95,40 +82,13 @@
puts `ragel -V #{ragel_file} -o #{base_name}.dot 2>&1`
raise "Failed generating code from Ragel file #{ragel_file}" if $?.to_i.nonzero?
end
end
-desc "Run all RSpecs for Theatre"
-RSpec::Core::RakeTask.new(:theatre_specs) do |t|
- t.pattern = FileList[THEATRE_TESTS]
-end
-
-desc "Compares Adhearsion's files with those listed in adhearsion.gemspec"
-task :check_gemspec_files do
- files_from_gemspec = ADHEARSION_FILES
- files_from_filesystem = Dir.glob(File.dirname(__FILE__) + "/**/*").map do |filename|
- filename[0...Dir.pwd.length] == Dir.pwd ? filename[(Dir.pwd.length+1)..-1] : filename
- end
- files_from_filesystem.reject! { |f| File.directory? f }
-
- puts
- puts 'Pipe this command to "grep -v \'spec/\' | grep -v test" to ignore test files'
- puts
- puts '##########################################'
- puts '## Files on filesystem not in the gemspec:'
- puts '##########################################'
- puts((files_from_filesystem - files_from_gemspec).map { |f| " " + f })
-
- puts '##########################################'
- puts '## Files in gemspec not in the filesystem:'
- puts '##########################################'
- puts((files_from_gemspec - files_from_filesystem).map { |f| " " + f })
-end
-
desc "Test that the .gemspec file executes"
task :debug_gem do
require 'rubygems/specification'
- gemspec = File.read('adhearsion.gemspec')
+ gemspec = File.read 'adhearsion.gemspec'
spec = nil
Thread.new { spec = eval("$SAFE = 3\n#{gemspec}") }.join
puts "SUCCESS: Gemspec runs at the $SAFE level 3."
end