mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
92 lines
1.7 KiB
Ruby
Executable File
92 lines
1.7 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require 'rubygems'
|
|
require 'rake'
|
|
require 'rake/clean'
|
|
require 'fileutils'
|
|
require 'rake/testtask'
|
|
require 'rubygems/package_task'
|
|
|
|
task :default => [:compile, :test]
|
|
|
|
task :ragel do
|
|
sh "find . -name '*.rl' | xargs ragel -C -G2"
|
|
end
|
|
|
|
task :compile => [:ragel, :liquid_ext]
|
|
|
|
extension = "liquid_ext"
|
|
ext = "ext/liquid"
|
|
ext_so = "#{ext}/#{extension}.#{RbConfig::CONFIG['DLEXT']}"
|
|
ext_files = FileList[
|
|
"#{ext}/*.c",
|
|
"#{ext}/*.h",
|
|
"#{ext}/*.rl",
|
|
"#{ext}/extconf.rb",
|
|
"#{ext}/Makefile",
|
|
"lib"
|
|
]
|
|
|
|
task "lib" do
|
|
directory "lib"
|
|
end
|
|
|
|
desc "Builds just the #{extension} extension"
|
|
task extension.to_sym => [:ragel, "#{ext}/Makefile", ext_so ]
|
|
|
|
file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
|
|
Dir.chdir(ext) do ruby "extconf.rb" end
|
|
end
|
|
|
|
file ext_so => ext_files do
|
|
Dir.chdir(ext) do
|
|
sh "make"
|
|
end
|
|
cp ext_so, "lib"
|
|
end
|
|
|
|
Rake::TestTask.new(:test => [:ragel, 'liquid_ext']) do |t|
|
|
t.libs << '.' << 'lib' << 'test'
|
|
t.test_files = FileList['test/liquid/**/*_test.rb']
|
|
t.verbose = false
|
|
end
|
|
|
|
gemspec = eval(File.read('liquid.gemspec'))
|
|
Gem::PackageTask.new(gemspec) do |pkg|
|
|
pkg.gem_spec = gemspec
|
|
end
|
|
|
|
desc "Build the gem and release it to rubygems.org"
|
|
task :release => :gem do
|
|
sh "gem push pkg/liquid-#{gemspec.version}.gem"
|
|
end
|
|
|
|
namespace :benchmark do
|
|
|
|
desc "Run the liquid benchmark"
|
|
task :run do
|
|
ruby "./performance/benchmark.rb"
|
|
end
|
|
|
|
end
|
|
|
|
|
|
namespace :profile do
|
|
|
|
desc "Run the liquid profile/performance coverage"
|
|
task :run do
|
|
ruby "./performance/profile.rb"
|
|
end
|
|
|
|
desc "Run KCacheGrind"
|
|
task :grind => :run do
|
|
system "qcachegrind /tmp//callgrind.liquid.txt"
|
|
end
|
|
|
|
end
|
|
|
|
desc "Run example"
|
|
task :example do
|
|
ruby "-w -d -Ilib example/server/server.rb"
|
|
end
|