mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
82 lines
1.8 KiB
Ruby
82 lines
1.8 KiB
Ruby
require 'bundler/gem_tasks'
|
|
|
|
#
|
|
# Prepend DevKit into compilation phase
|
|
#
|
|
if Gem.win_platform?
|
|
desc 'Activates DevKit'
|
|
task :devkit do
|
|
begin
|
|
require 'devkit'
|
|
rescue LoadError
|
|
abort 'Failed to load DevKit required for compilation'
|
|
end
|
|
end
|
|
task compile: :devkit
|
|
end
|
|
|
|
require 'rake/testtask'
|
|
if /java/ === RUBY_PLATFORM
|
|
# require 'rake/javaextensiontask'
|
|
# Rake::JavaExtensionTask.new(:haml) do |ext|
|
|
# ext.ext_dir = 'ext/java'
|
|
# ext.lib_dir = 'lib/haml'
|
|
# end
|
|
|
|
task :compile do
|
|
# dummy for now
|
|
end
|
|
else
|
|
require 'rake/extensiontask'
|
|
Rake::ExtensionTask.new(:haml) do |ext|
|
|
ext.lib_dir = 'lib/haml'
|
|
end
|
|
end
|
|
|
|
Dir['benchmark/*.rake'].each { |b| import(b) }
|
|
|
|
Rake::TestTask.new do |t|
|
|
t.libs << 'lib' << 'test'
|
|
files = Dir['test/haml/**/*_test.rb']
|
|
t.ruby_opts = %w[-rtest_helper]
|
|
t.test_files = files
|
|
t.verbose = true
|
|
end
|
|
task test: :compile
|
|
|
|
desc 'bench task for CI'
|
|
task bench: :compile do
|
|
if ENV['SLIM_BENCH'] == '1'
|
|
cmd = %w[bundle exec ruby benchmark/slim/run-benchmarks.rb]
|
|
else
|
|
cmd = ['bin/bench', 'bench', ('-c' if ENV['COMPILE'] == '1'), *ENV['TEMPLATE'].split(',')].compact
|
|
end
|
|
exit system(*cmd)
|
|
end
|
|
|
|
namespace :doc do
|
|
task :sass do
|
|
require 'sass'
|
|
Dir["yard/default/**/*.sass"].each do |sass|
|
|
File.open(sass.gsub(/sass$/, 'css'), 'w') do |f|
|
|
f.write(Sass::Engine.new(File.read(sass)).render)
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "List all undocumented methods and classes."
|
|
task :undocumented do
|
|
command = 'yard --list --query '
|
|
command << '"object.docstring.blank? && '
|
|
command << '!(object.type == :method && object.is_alias?)"'
|
|
sh command
|
|
end
|
|
end
|
|
|
|
desc "Generate documentation"
|
|
task(:doc => 'doc:sass') {sh "yard"}
|
|
|
|
desc "Generate documentation incrementally"
|
|
task(:redoc) {sh "yard -c"}
|
|
|
|
task default: %w[compile test]
|