2018-10-22 14:57:18 -04:00
|
|
|
# ENV["G_MESSAGES_DEBUG"] = "all"
|
2016-03-25 18:29:04 -04:00
|
|
|
|
2016-03-16 20:21:34 -04:00
|
|
|
begin
|
2017-02-12 21:41:03 -05:00
|
|
|
require "rake/extensiontask"
|
|
|
|
require "rubygems/package_task"
|
|
|
|
require "bundler"
|
|
|
|
|
2016-03-16 20:21:34 -04:00
|
|
|
Bundler.setup(:default, :development)
|
2017-02-12 21:41:03 -05:00
|
|
|
rescue LoadError, Bundler::BundlerError => e
|
2016-03-16 20:21:34 -04:00
|
|
|
$stderr.puts e.message
|
|
|
|
$stderr.puts "Run `bundle install` to install missing gems"
|
2017-02-12 21:41:03 -05:00
|
|
|
exit 1
|
2016-03-16 20:21:34 -04:00
|
|
|
end
|
|
|
|
|
2016-03-03 20:05:04 -05:00
|
|
|
Rake::ExtensionTask.new "dtext" do |ext|
|
2017-02-14 13:00:45 -05:00
|
|
|
# this goes here to ensure ragel runs *before* the extension is compiled.
|
2023-03-26 16:48:36 -04:00
|
|
|
task :compile => ["ext/dtext/dtext.cpp", "ext/dtext/rb_dtext.cpp"]
|
2017-03-01 15:19:42 -05:00
|
|
|
ext.lib_dir = "lib/dtext"
|
2016-03-03 20:05:04 -05:00
|
|
|
end
|
|
|
|
|
2023-03-26 16:48:36 -04:00
|
|
|
file "ext/dtext/dtext.cpp" => Dir["ext/dtext/dtext.{cpp.rl,h}", "Rakefile"] do
|
2023-03-26 17:11:02 -04:00
|
|
|
sh "ragel -G2 -C ext/dtext/dtext.cpp.rl -o ext/dtext/dtext.cpp"
|
2016-03-03 20:05:04 -05:00
|
|
|
end
|
|
|
|
|
2023-03-26 10:34:11 -04:00
|
|
|
def run_dtext(*args)
|
|
|
|
ruby "-Ilib", "-rdtext", *args
|
|
|
|
end
|
|
|
|
|
2017-02-12 21:50:25 -05:00
|
|
|
task test_inline_ragel: :compile do
|
2022-08-15 15:29:35 -04:00
|
|
|
Bundler.with_unbundled_env do
|
2023-03-26 10:44:30 -04:00
|
|
|
run_dtext "-e", 'puts DText.parse("hello\r\nworld")'
|
2017-02-21 14:21:44 -05:00
|
|
|
end
|
2016-03-03 20:05:04 -05:00
|
|
|
end
|
|
|
|
|
2017-02-12 21:50:25 -05:00
|
|
|
task test: :compile do
|
2022-08-15 15:29:35 -04:00
|
|
|
Bundler.with_unbundled_env do
|
2023-03-26 10:34:11 -04:00
|
|
|
run_dtext "test/dtext_test.rb" #, '--name=test_strip'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
task reference_compare: :compile do
|
|
|
|
Bundler.with_unbundled_env do
|
|
|
|
run_dtext "test/reference_compare.rb"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
task reference_generate: :compile do
|
|
|
|
Bundler.with_unbundled_env do
|
|
|
|
run_dtext "test/reference_generate.rb"
|
2017-02-21 14:21:44 -05:00
|
|
|
end
|
2016-03-09 20:49:58 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
task default: :test
|