require File.expand_path '../lib/asciidoctor/version', __FILE__ def prepare_test_env # rather than hardcoding gc settings in test task, # could use https://gist.github.com/benders/788695 ENV['RUBY_GC_MALLOC_LIMIT'] = 128_000_000.to_s ENV['RUBY_GC_OLDMALLOC_LIMIT'] = 128_000_000.to_s if RUBY_VERSION >= '2.1' ENV['RUBY_GC_HEAP_INIT_SLOTS'] = 800_000.to_s ENV['RUBY_GC_HEAP_FREE_SLOTS'] = 800_000.to_s ENV['RUBY_GC_HEAP_GROWTH_MAX_SLOTS'] = 250_000.to_s ENV['RUBY_GC_HEAP_GROWTH_FACTOR'] = 1.25.to_s else ENV['RUBY_FREE_MIN'] = 800_000.to_s end end begin require 'rake/testtask' Rake::TestTask.new(:test) do |test| prepare_test_env puts "LANG: #{ENV['LANG']}" test.libs << 'test' test.pattern = 'test/**/*_test.rb' test.verbose = true test.warning = true end task :default => :test rescue LoadError end =begin # Run tests with Encoding.default_external set to US-ASCII begin Rake::TestTask.new(:test_us_ascii) do |test| prepare_test_env puts "LANG: #{ENV['LANG']}" test.libs << 'test' test.pattern = 'test/**/*_test.rb' test.ruby_opts << '-EUS-ASCII' if RUBY_VERSION >= '1.9' test.verbose = true test.warning = true end rescue LoadError end =end begin require 'cucumber/rake/task' Cucumber::Rake::Task.new(:features) do |t| end rescue LoadError end namespace :test do desc 'Run unit and feature tests' task :all => [:test,:features] end =begin begin require 'rdoc/task' RDoc::Task.new do |rdoc| rdoc.rdoc_dir = 'rdoc' rdoc.title = "Asciidoctor #{Asciidoctor::VERSION}" rdoc.markup = 'tomdoc' if rdoc.respond_to?(:markup) rdoc.rdoc_files.include('LICENSE.adoc', 'lib/**/*.rb') end rescue LoadError end =end begin require 'yard' require 'yard-tomdoc' require './lib/asciidoctor' require './lib/asciidoctor/extensions' # Prevent YARD from breaking command statements in literal paragraphs class CommandBlockPostprocessor < Asciidoctor::Extensions::Postprocessor def process document, output output.gsub(/
\$ (.+?)<\/pre>/m, '
$ \1
') end end Asciidoctor::Extensions.register do postprocessor CommandBlockPostprocessor end # register .adoc extension for AsciiDoc markup helper YARD::Templates::Helpers::MarkupHelper::MARKUP_EXTENSIONS[:asciidoc] = %w(adoc) YARD::Rake::YardocTask.new do |yard| yard.files = %w( lib/**/*.rb - CHANGELOG.adoc LICENSE.adoc ) # --no-highlight enabled to prevent verbatim blocks in AsciiDoc that begin with $ from being dropped # need to patch htmlify method to not attempt to syntax highlight blocks (or fix what's wrong) yard.options = (IO.readlines '.yardopts').map {|l| l.chomp.delete('"').split ' ', 2 }.flatten end rescue LoadError end begin require 'bundler/gem_tasks' # Enhance the release task to create an explicit commit for the release Rake::Task[:release].enhance [:commit_release] # NOTE you don't need to push after updating version and committing locally task :commit_release do Bundler::GemHelper.new.send(:guard_clean) sh "git commit --allow-empty -a -m 'Release #{Asciidoctor::VERSION}'" end rescue LoadError end desc 'Open an irb session preloaded with this library' task :console do sh 'bundle console', :verbose => false end