diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2019-01-03 19:05:32 -0700 |
|---|---|---|
| committer | Dan Allen <dan.j.allen@gmail.com> | 2019-01-06 16:42:36 -0700 |
| commit | 6cb5106eff62be07425a882ab28cc8faf7a364cd (patch) | |
| tree | cd96f7dbfd4d0c873729bbb81439b67de8a3b535 | |
| parent | 67ec4dc95522e4e6ca4f70009fadc9cbe71b4446 (diff) | |
use require_relative instead of modifying $LOAD_PATH
- use require_relative in place of require when it relied on $LOAD_PATH manipulation
- configure bin scripts to work with require_relative
- rename ROOT_PATH to ROOT_DIR
- rename DATA_PATH to DATA_DIR
- rename STYLESHEETS_DATA_PATH to STYLESHEETS_DIR
- define LIB_DIR
- simplify test helper require and setup
- add bindir helper to test suite
- remove unneeded constants in test helper
- reorder autoload statements
- require version directly instead of autoloading
38 files changed, 111 insertions, 170 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 37b2c2aa..628191d7 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -20,9 +20,15 @@ Enhancements:: * add support for start attribute when using prettify to highlight source blocks with line numbering enabled * drop support for Ruby < 2.3 and JRuby < 9.1 and remove workarounds (#2764) +Improvements:: + + * define LIB_DIR constant; rename *_PATH constants to *_DIR constants to be consistent with RubyGems terminology (#2764) + * only define ROOT_DIR if not already defined (for compatibility with Asciidoctor.js) + Bug Fixes:: * don't fail to parse Markdown-style quote block that only contains attribution line (#2989) + * do not alter the $LOAD_PATH (#2764) * remove conditional comment for IE in output of built-in HTML converter; fixes sidebar table of contents (#2983) * add fallback if relative path cannot be computed because the paths are located on different drives (#2944) * ignore explicit section level style (#1852) @@ -32,9 +38,9 @@ Bug Fixes:: Build / Infrastructure:: * clear SOURCE_DATE_EPOCH env var when testing timezones (PR #2969) (*@aerostitch*) - * stop running CI job on unsupported versions of Ruby * remove compat folder (removes the AsciiDoc Python config file that provides pseudo-compliance with Asciidoctor and a stylesheet for an old Font Awesome migration) * add Ruby 2.6.0 to build matrix + * stop running CI job on unsupported versions of Ruby // tag::compact[] == 1.5.8 (2018-10-28) - @mojavelinux diff --git a/asciidoctor.gemspec b/asciidoctor.gemspec index 37c77ac8..9fce4f67 100644 --- a/asciidoctor.gemspec +++ b/asciidoctor.gemspec @@ -1,5 +1,5 @@ begin - require File.expand_path '../lib/asciidoctor/version', __FILE__ + require_relative 'lib/asciidoctor/version' rescue LoadError require 'asciidoctor/version' end diff --git a/bin/asciidoctor b/bin/asciidoctor index fa0b32e2..b01aaefb 100755 --- a/bin/asciidoctor +++ b/bin/asciidoctor @@ -1,11 +1,13 @@ #!/usr/bin/env ruby -if File.exist?(asciidoctor = (File.expand_path '../../lib/asciidoctor', __FILE__)) +asciidoctor = File.absolute_path '../lib/asciidoctor.rb', __dir__ +if File.exist? asciidoctor require asciidoctor + require File.join Asciidoctor::LIB_DIR, 'asciidoctor/cli' else require 'asciidoctor' + require 'asciidoctor/cli' end -require 'asciidoctor/cli' invoker = Asciidoctor::Cli::Invoker.new ARGV GC.start diff --git a/bin/asciidoctor-safe b/bin/asciidoctor-safe index 42053271..8686e378 100755 --- a/bin/asciidoctor-safe +++ b/bin/asciidoctor-safe @@ -1,11 +1,13 @@ #!/usr/bin/env ruby -if File.exist?(asciidoctor = (File.expand_path '../../lib/asciidoctor', __FILE__)) +asciidoctor = File.absolute_path '../lib/asciidoctor.rb', __dir__ +if File.exist? asciidoctor require asciidoctor + require File.join Asciidoctor::LIB_DIR, 'asciidoctor/cli' else require 'asciidoctor' + require 'asciidoctor/cli' end -require 'asciidoctor/cli' invoker = Asciidoctor::Cli::Invoker.new(ARGV + ['-S', 'safe']) GC.start diff --git a/features/step_definitions.rb b/features/step_definitions.rb index f1ec3823..ae1dc5b6 100644 --- a/features/step_definitions.rb +++ b/features/step_definitions.rb @@ -1,10 +1,10 @@ -ASCIIDOCTOR_PROJECT_DIR = File.dirname File.dirname(__FILE__) -ASCIIDOCTOR_LIB_DIR = ENV['ASCIIDOCTOR_LIB_DIR'] || File.join(ASCIIDOCTOR_PROJECT_DIR, 'lib') -Dir.chdir ASCIIDOCTOR_PROJECT_DIR +ASCIIDOCTOR_FEATURES_DIR = File.absolute_path __dir__ +ASCIIDOCTOR_LIB_DIR = ENV['ASCIIDOCTOR_LIB_DIR'] || File.join(ASCIIDOCTOR_FEATURES_DIR, '../lib') require 'simplecov' if ENV['COVERAGE'] == 'true' -require File.join(ASCIIDOCTOR_LIB_DIR, 'asciidoctor') +require File.join ASCIIDOCTOR_LIB_DIR, 'asciidoctor' +Dir.chdir Asciidoctor::ROOT_DIR require 'rspec/expectations' require 'tilt' diff --git a/lib/asciidoctor.rb b/lib/asciidoctor.rb index dee90838..5173a16a 100644 --- a/lib/asciidoctor.rb +++ b/lib/asciidoctor.rb @@ -6,17 +6,12 @@ if RUBY_ENGINE == 'opal' require 'asciidoctor/js' else autoload :Base64, 'base64' - autoload :URI, 'uri' autoload :OpenURI, 'open-uri' autoload :Pathname, 'pathname' autoload :StringScanner, 'strscan' + autoload :URI, 'uri' end -# ideally we should use require_relative instead of modifying the LOAD_PATH -$:.unshift __dir__ - -require 'asciidoctor/logging' - # Public: Methods for parsing AsciiDoc input files and converting documents # using eRuby templates. # @@ -175,14 +170,14 @@ module Asciidoctor define :markdown_syntax, true end - # The absolute root path of the Asciidoctor RubyGem - ROOT_PATH = ::File.dirname ::File.absolute_path __dir__ + # The absolute root directory of the Asciidoctor RubyGem + ROOT_DIR = ::File.dirname ::File.absolute_path __dir__ unless defined? ROOT_DIR - # The absolute lib path of the Asciidoctor RubyGem - #LIB_PATH = ::File.join ROOT_PATH, 'lib' + # The absolute lib directory of the Asciidoctor RubyGem + LIB_DIR = ::File.join ROOT_DIR, 'lib' - # The absolute data path of the Asciidoctor RubyGem - DATA_PATH = ::File.join ROOT_PATH, 'data' + # The absolute data directory of the Asciidoctor RubyGem + DATA_DIR = ::File.join ROOT_DIR, 'data' # The user's home directory, as best we can determine it USER_HOME = ::Dir.home @@ -1564,7 +1559,7 @@ module Asciidoctor # Returns the resolved constant, if resolved, otherwise nothing. def const_missing name if name == :Extensions - require 'asciidoctor/extensions' + require_relative 'asciidoctor/extensions' Extensions else super @@ -1574,39 +1569,39 @@ module Asciidoctor end if RUBY_ENGINE == 'opal' - require 'asciidoctor/timings' - require 'asciidoctor/version' + require_relative 'asciidoctor/timings' else - autoload :Timings, 'asciidoctor/timings' - autoload :VERSION, 'asciidoctor/version' + autoload :Timings, (::File.absolute_path 'asciidoctor/timings', __dir__) end end # core extensions -require 'asciidoctor/core_ext' +require_relative 'asciidoctor/core_ext' -# modules -require 'asciidoctor/helpers' -require 'asciidoctor/substitutors' +# modules and helpers +require_relative 'asciidoctor/helpers' +require_relative 'asciidoctor/logging' +require_relative 'asciidoctor/substitutors' +require_relative 'asciidoctor/version' # abstract classes -require 'asciidoctor/abstract_node' -require 'asciidoctor/abstract_block' +require_relative 'asciidoctor/abstract_node' +require_relative 'asciidoctor/abstract_block' # concrete classes -require 'asciidoctor/attribute_list' -require 'asciidoctor/block' -require 'asciidoctor/callouts' -require 'asciidoctor/converter' -require 'asciidoctor/document' -require 'asciidoctor/inline' -require 'asciidoctor/list' -require 'asciidoctor/parser' -require 'asciidoctor/path_resolver' -require 'asciidoctor/reader' -require 'asciidoctor/section' -require 'asciidoctor/stylesheets' -require 'asciidoctor/table' +require_relative 'asciidoctor/attribute_list' +require_relative 'asciidoctor/block' +require_relative 'asciidoctor/callouts' +require_relative 'asciidoctor/converter' +require_relative 'asciidoctor/document' +require_relative 'asciidoctor/inline' +require_relative 'asciidoctor/list' +require_relative 'asciidoctor/parser' +require_relative 'asciidoctor/path_resolver' +require_relative 'asciidoctor/reader' +require_relative 'asciidoctor/section' +require_relative 'asciidoctor/stylesheets' +require_relative 'asciidoctor/table' # this require is satisfied by the Asciidoctor.js build; it supplies compile and runtime overrides for Asciidoctor.js require 'asciidoctor/js/postscript' if RUBY_ENGINE == 'opal' diff --git a/lib/asciidoctor/cli.rb b/lib/asciidoctor/cli.rb index fcd53e43..f666b4e9 100644 --- a/lib/asciidoctor/cli.rb +++ b/lib/asciidoctor/cli.rb @@ -1,3 +1,3 @@ require 'optparse' -require 'asciidoctor/cli/options' -require 'asciidoctor/cli/invoker' +require_relative 'cli/options' +require_relative 'cli/invoker' diff --git a/lib/asciidoctor/cli/options.rb b/lib/asciidoctor/cli/options.rb index a254ff35..ac992121 100644 --- a/lib/asciidoctor/cli/options.rb +++ b/lib/asciidoctor/cli/options.rb @@ -148,7 +148,7 @@ Example: asciidoctor -b html5 source.asciidoc $stderr.puts %(asciidoctor: FAILED: manual page not found: #{manpage_path}) return 1 end - elsif ::File.exist?(manpage_path = (::File.join ::Asciidoctor::ROOT_PATH, 'man', 'asciidoctor.1')) + elsif ::File.exist?(manpage_path = (::File.join ROOT_DIR, 'man', 'asciidoctor.1')) $stdout.puts ::IO.read manpage_path else require 'open3' unless defined? ::Open3.popen3 diff --git a/lib/asciidoctor/converter.rb b/lib/asciidoctor/converter.rb index ff58dc8d..76261b45 100644 --- a/lib/asciidoctor/converter.rb +++ b/lib/asciidoctor/converter.rb @@ -227,5 +227,5 @@ module Asciidoctor end end -require 'asciidoctor/converter/base' -require 'asciidoctor/converter/factory' +require_relative 'converter/base' +require_relative 'converter/factory' diff --git a/lib/asciidoctor/converter/docbook45.rb b/lib/asciidoctor/converter/docbook45.rb index de44ff44..065136fa 100644 --- a/lib/asciidoctor/converter/docbook45.rb +++ b/lib/asciidoctor/converter/docbook45.rb @@ -1,4 +1,4 @@ -require 'asciidoctor/converter/docbook5' +require_relative 'docbook5' module Asciidoctor # A built-in {Converter} implementation that generates DocBook 4.5 output diff --git a/lib/asciidoctor/converter/factory.rb b/lib/asciidoctor/converter/factory.rb index d182892d..d8ff85cb 100644 --- a/lib/asciidoctor/converter/factory.rb +++ b/lib/asciidoctor/converter/factory.rb @@ -198,19 +198,19 @@ module Asciidoctor case backend when 'html5' # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/html5'.to_s unless defined? ::Asciidoctor::Converter::Html5Converter + require_relative 'html5'.to_s unless defined? ::Asciidoctor::Converter::Html5Converter base_converter = Html5Converter.new backend, opts when 'docbook5' # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/docbook5'.to_s unless defined? ::Asciidoctor::Converter::DocBook5Converter + require_relative 'docbook5'.to_s unless defined? ::Asciidoctor::Converter::DocBook5Converter base_converter = DocBook5Converter.new backend, opts when 'docbook45' # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/docbook45'.to_s unless defined? ::Asciidoctor::Converter::DocBook45Converter + require_relative 'docbook45'.to_s unless defined? ::Asciidoctor::Converter::DocBook45Converter base_converter = DocBook45Converter.new backend, opts when 'manpage' # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/manpage'.to_s unless defined? ::Asciidoctor::Converter::ManPageConverter + require_relative 'manpage'.to_s unless defined? ::Asciidoctor::Converter::ManPageConverter base_converter = ManPageConverter.new backend, opts end end @@ -218,11 +218,11 @@ module Asciidoctor return base_converter unless opts.key? :template_dirs # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/template'.to_s unless defined? ::Asciidoctor::Converter::TemplateConverter + require_relative 'template'.to_s unless defined? ::Asciidoctor::Converter::TemplateConverter template_converter = TemplateConverter.new backend, opts[:template_dirs], opts # NOTE .to_s hides require from Opal - require 'asciidoctor/converter/composite'.to_s unless defined? ::Asciidoctor::Converter::CompositeConverter + require_relative 'composite'.to_s unless defined? ::Asciidoctor::Converter::CompositeConverter # QUESTION should we omit the composite converter if built_in_converter is nil? CompositeConverter.new backend, template_converter, base_converter end diff --git a/lib/asciidoctor/core_ext.rb b/lib/asciidoctor/core_ext.rb index ccf77f29..526af7e4 100644 --- a/lib/asciidoctor/core_ext.rb +++ b/lib/asciidoctor/core_ext.rb @@ -1,4 +1,4 @@ -require 'asciidoctor/core_ext/float/truncate' -require 'asciidoctor/core_ext/nil_or_empty' -require 'asciidoctor/core_ext/regexp/is_match' -require 'asciidoctor/core_ext/string/limit_bytesize' +require_relative 'core_ext/float/truncate' +require_relative 'core_ext/nil_or_empty' +require_relative 'core_ext/regexp/is_match' +require_relative 'core_ext/string/limit_bytesize' diff --git a/lib/asciidoctor/document.rb b/lib/asciidoctor/document.rb index 5c548663..4beb3b4b 100644 --- a/lib/asciidoctor/document.rb +++ b/lib/asciidoctor/document.rb @@ -381,7 +381,7 @@ class Document < AbstractBlock attrs['last-update-label'] = 'Last updated' attr_overrides['asciidoctor'] = '' - attr_overrides['asciidoctor-version'] = VERSION + attr_overrides['asciidoctor-version'] = ::Asciidoctor::VERSION attr_overrides['safe-mode-name'] = (safe_mode_name = SafeMode.name_for_value @safe) attr_overrides["safe-mode-#{safe_mode_name}"] = '' diff --git a/lib/asciidoctor/extensions.rb b/lib/asciidoctor/extensions.rb index 70347d9c..5b68bc97 100644 --- a/lib/asciidoctor/extensions.rb +++ b/lib/asciidoctor/extensions.rb @@ -1,5 +1,5 @@ # NOTE .to_s hides require from Opal -require 'asciidoctor'.to_s unless defined? Asciidoctor.load +require_relative '../asciidoctor'.to_s unless defined? Asciidoctor.load module Asciidoctor # Extensions provide a way to participate in the parsing and converting diff --git a/lib/asciidoctor/stylesheets.rb b/lib/asciidoctor/stylesheets.rb index 03e039c4..58ef952e 100644 --- a/lib/asciidoctor/stylesheets.rb +++ b/lib/asciidoctor/stylesheets.rb @@ -6,7 +6,7 @@ module Asciidoctor class Stylesheets DEFAULT_STYLESHEET_NAME = 'asciidoctor.css' DEFAULT_PYGMENTS_STYLE = 'default' - STYLESHEETS_DATA_PATH = ::File.join DATA_PATH, 'stylesheets' + STYLESHEETS_DIR = ::File.join DATA_DIR, 'stylesheets' PygmentsBgColorRx = /^\.pygments +\{ *background: *([^;]+);/ @__instance__ = new @@ -23,7 +23,7 @@ class Stylesheets # # returns the [String] Asciidoctor stylesheet data def primary_stylesheet_data - @primary_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DATA_PATH, 'asciidoctor-default.css')).rstrip + @primary_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DIR, 'asciidoctor-default.css')).rstrip end def embed_primary_stylesheet @@ -48,7 +48,7 @@ class Stylesheets # unless load_coderay.nil? # ::CodeRay::Encoders[:html]::CSS.new(:default).stylesheet # end - @coderay_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DATA_PATH, 'coderay-asciidoctor.css')).rstrip + @coderay_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DIR, 'coderay-asciidoctor.css')).rstrip end def embed_coderay_stylesheet diff --git a/test/api_test.rb b/test/api_test.rb index a5e2d30e..2dd2d651 100644 --- a/test/api_test.rb +++ b/test/api_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'API' do context 'Load' do diff --git a/test/attribute_list_test.rb b/test/attribute_list_test.rb index 74f389a7..9335df6b 100644 --- a/test/attribute_list_test.rb +++ b/test/attribute_list_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'AttributeList' do test 'collect unnamed attribute' do diff --git a/test/attributes_test.rb b/test/attributes_test.rb index eb491465..4fc6b673 100644 --- a/test/attributes_test.rb +++ b/test/attributes_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Attributes' do default_logger = Asciidoctor::LoggerManager.logger diff --git a/test/blocks_test.rb b/test/blocks_test.rb index b4ca21ac..26abd1c0 100644 --- a/test/blocks_test.rb +++ b/test/blocks_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Blocks' do default_logger = Asciidoctor::LoggerManager.logger diff --git a/test/converter_test.rb b/test/converter_test.rb index 69a99d30..82bbe067 100644 --- a/test/converter_test.rb +++ b/test/converter_test.rb @@ -1,8 +1,5 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end -require 'tilt' unless defined? ::Tilt +require_relative 'test_helper' +require 'tilt' unless defined? ::Tilt::VERSION context 'Converter' do diff --git a/test/document_test.rb b/test/document_test.rb index fbfdec80..18bf7f13 100644 --- a/test/document_test.rb +++ b/test/document_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' BUILT_IN_ELEMENTS = %w(admonition audio colist dlist document embedded example floating_title image inline_anchor inline_break inline_button inline_callout inline_footnote inline_image inline_indexterm inline_kbd inline_menu inline_quoted listing literal stem olist open page_break paragraph pass preamble quote section sidebar table thematic_break toc ulist verse video) diff --git a/test/extensions_test.rb b/test/extensions_test.rb index da4a5936..c1344832 100644 --- a/test/extensions_test.rb +++ b/test/extensions_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' class ExtensionsInitTest < Minitest::Test def test_autoload diff --git a/test/invoker_test.rb b/test/invoker_test.rb index b9d23324..72922654 100644 --- a/test/invoker_test.rb +++ b/test/invoker_test.rb @@ -1,9 +1,5 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end -require 'asciidoctor/cli/options' -require 'asciidoctor/cli/invoker' +require_relative 'test_helper' +require File.join Asciidoctor::LIB_DIR, 'asciidoctor/cli' context 'Invoker' do test 'should parse source and convert to html5 article by default' do @@ -629,7 +625,7 @@ eve, islifeform - analyzes an image to determine if it's a picture of a life for test 'should force default external encoding to UTF-8' do ruby = File.join RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'] - executable = File.join ASCIIDOCTOR_PROJECT_DIR, 'bin', 'asciidoctor' + executable = File.join bindir, 'asciidoctor' input_path = fixture_path 'encoding.asciidoc' old_lang = ENV['LANG'] ENV['LANG'] = 'US-ASCII' @@ -665,7 +661,7 @@ Sample *AsciiDoc* test 'should show timezone as UTC if system TZ is set to UTC' do ruby = File.join RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'] - executable = File.join ASCIIDOCTOR_PROJECT_DIR, 'bin', 'asciidoctor' + executable = File.join bindir, 'asciidoctor' input_path = fixture_path 'doctime-localtime.adoc' cmd = %(#{ruby} #{executable} -d inline -o - -s #{input_path}) old_tz = ENV['TZ'] @@ -688,7 +684,7 @@ Sample *AsciiDoc* test 'should show timezone as offset if system TZ is not set to UTC' do ruby = File.join RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'] - executable = File.join ASCIIDOCTOR_PROJECT_DIR, 'bin', 'asciidoctor' + executable = File.join bindir, 'asciidoctor' input_path = fixture_path 'doctime-localtime.adoc' cmd = %(#{ruby} #{executable} -d inline -o - -s #{input_path}) old_tz = ENV['TZ'] diff --git a/test/links_test.rb b/test/links_test.rb index 750c73fd..b0c13c81 100644 --- a/test/links_test.rb +++ b/test/links_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Links' do diff --git a/test/lists_test.rb b/test/lists_test.rb index 1bfa4ff0..bebdb3ec 100644 --- a/test/lists_test.rb +++ b/test/lists_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context "Bulleted lists (:ulist)" do context "Simple lists" do diff --git a/test/logger_test.rb b/test/logger_test.rb index fe1be778..73c8a7bc 100644 --- a/test/logger_test.rb +++ b/test/logger_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Logger' do MyLogger = Class.new Logger diff --git a/test/manpage_test.rb b/test/manpage_test.rb index 8102450b..2dae269c 100644 --- a/test/manpage_test.rb +++ b/test/manpage_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' SAMPLE_MANPAGE_HEADER = <<-EOS.chomp = command (1) diff --git a/test/options_test.rb b/test/options_test.rb index 4dd31ce6..7bbf406e 100644 --- a/test/options_test.rb +++ b/test/options_test.rb @@ -1,8 +1,5 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end -require 'asciidoctor/cli/options' +require_relative 'test_helper' +require File.join Asciidoctor::LIB_DIR, 'asciidoctor/cli/options' context 'Options' do test 'should print usage and return error code 0 when help flag is present' do diff --git a/test/paragraphs_test.rb b/test/paragraphs_test.rb index 35b5eda6..0a5f1446 100644 --- a/test/paragraphs_test.rb +++ b/test/paragraphs_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Paragraphs' do context 'Normal' do diff --git a/test/parser_test.rb b/test/parser_test.rb index 59c67ec6..b21c22c2 100644 --- a/test/parser_test.rb +++ b/test/parser_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context "Parser" do diff --git a/test/paths_test.rb b/test/paths_test.rb index 1340dc76..8dae5696 100644 --- a/test/paths_test.rb +++ b/test/paths_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Path Resolver' do context 'Web Paths' do diff --git a/test/preamble_test.rb b/test/preamble_test.rb index 3f76edc8..b6cd27b3 100644 --- a/test/preamble_test.rb +++ b/test/preamble_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Preamble' do diff --git a/test/reader_test.rb b/test/reader_test.rb index 4364275d..c57035b6 100644 --- a/test/reader_test.rb +++ b/test/reader_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' class ReaderTest < Minitest::Test DIRNAME = ASCIIDOCTOR_TEST_DIR diff --git a/test/sections_test.rb b/test/sections_test.rb index 98f5cbc1..595fcb95 100644 --- a/test/sections_test.rb +++ b/test/sections_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Sections' do context 'Ids' do diff --git a/test/substitutions_test.rb b/test/substitutions_test.rb index 2e4f6f37..b4600596 100644 --- a/test/substitutions_test.rb +++ b/test/substitutions_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' # TODO # - test negatives diff --git a/test/tables_test.rb b/test/tables_test.rb index 816f30a9..c95017c4 100644 --- a/test/tables_test.rb +++ b/test/tables_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context 'Tables' do diff --git a/test/test_helper.rb b/test/test_helper.rb index 87a16a60..e44f937e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,20 +1,19 @@ -ASCIIDOCTOR_TEST_DIR = File.expand_path File.dirname __FILE__ -ASCIIDOCTOR_PROJECT_DIR = File.dirname ASCIIDOCTOR_TEST_DIR -ASCIIDOCTOR_LIB_DIR = ENV['ASCIIDOCTOR_LIB_DIR'] || File.join(ASCIIDOCTOR_PROJECT_DIR, 'lib') -Dir.chdir ASCIIDOCTOR_PROJECT_DIR +ASCIIDOCTOR_TEST_DIR = File.absolute_path __dir__ +ASCIIDOCTOR_LIB_DIR = ENV['ASCIIDOCTOR_LIB_DIR'] || (File.join ASCIIDOCTOR_TEST_DIR, '../lib') require 'simplecov' if ENV['COVERAGE'] == 'true' -require File.join(ASCIIDOCTOR_LIB_DIR, 'asciidoctor') +require File.join ASCIIDOCTOR_LIB_DIR, 'asciidoctor' +Dir.chdir Asciidoctor::ROOT_DIR -require 'socket' require 'nokogiri' +require 'socket' require 'tempfile' require 'tmpdir' autoload :FileUtils, 'fileutils' -autoload :Pathname, 'pathname' autoload :Open3, 'open3' +autoload :Pathname, 'pathname' RE_XMLNS_ATTRIBUTE = / xmlns="[^"]+"/ RE_DOCTYPE = /\s*<!DOCTYPE (.*)/ @@ -30,7 +29,7 @@ class Minitest::Test end def disk_root - %(#{windows? ? ASCIIDOCTOR_PROJECT_DIR.split('/')[0] : ''}/) + %(#{windows? ? Asciidoctor::ROOT_DIR.split('/')[0] : ''}/) end def empty_document options = {} @@ -59,6 +58,10 @@ class Minitest::Test fixture_path(name) end + def bindir + File.join Asciidoctor::ROOT_DIR, 'bin' + end + def testdir ASCIIDOCTOR_TEST_DIR end diff --git a/test/text_test.rb b/test/text_test.rb index 894d3e85..0b38a821 100644 --- a/test/text_test.rb +++ b/test/text_test.rb @@ -1,7 +1,4 @@ -unless defined? ASCIIDOCTOR_PROJECT_DIR - $: << File.dirname(__FILE__); $:.uniq! - require 'test_helper' -end +require_relative 'test_helper' context "Text" do test "proper encoding to handle utf8 characters in document using html backend" do |
