summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2019-01-03 19:05:32 -0700
committerDan Allen <dan.j.allen@gmail.com>2019-01-06 16:42:36 -0700
commit6cb5106eff62be07425a882ab28cc8faf7a364cd (patch)
treecd96f7dbfd4d0c873729bbb81439b67de8a3b535
parent67ec4dc95522e4e6ca4f70009fadc9cbe71b4446 (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
-rw-r--r--CHANGELOG.adoc8
-rw-r--r--asciidoctor.gemspec2
-rwxr-xr-xbin/asciidoctor6
-rwxr-xr-xbin/asciidoctor-safe6
-rw-r--r--features/step_definitions.rb8
-rw-r--r--lib/asciidoctor.rb67
-rw-r--r--lib/asciidoctor/cli.rb4
-rw-r--r--lib/asciidoctor/cli/options.rb2
-rw-r--r--lib/asciidoctor/converter.rb4
-rw-r--r--lib/asciidoctor/converter/docbook45.rb2
-rw-r--r--lib/asciidoctor/converter/factory.rb12
-rw-r--r--lib/asciidoctor/core_ext.rb8
-rw-r--r--lib/asciidoctor/document.rb2
-rw-r--r--lib/asciidoctor/extensions.rb2
-rw-r--r--lib/asciidoctor/stylesheets.rb6
-rw-r--r--test/api_test.rb5
-rw-r--r--test/attribute_list_test.rb5
-rw-r--r--test/attributes_test.rb5
-rw-r--r--test/blocks_test.rb5
-rw-r--r--test/converter_test.rb7
-rw-r--r--test/document_test.rb5
-rw-r--r--test/extensions_test.rb5
-rw-r--r--test/invoker_test.rb14
-rw-r--r--test/links_test.rb5
-rw-r--r--test/lists_test.rb5
-rw-r--r--test/logger_test.rb5
-rw-r--r--test/manpage_test.rb5
-rw-r--r--test/options_test.rb7
-rw-r--r--test/paragraphs_test.rb5
-rw-r--r--test/parser_test.rb5
-rw-r--r--test/paths_test.rb5
-rw-r--r--test/preamble_test.rb5
-rw-r--r--test/reader_test.rb5
-rw-r--r--test/sections_test.rb5
-rw-r--r--test/substitutions_test.rb5
-rw-r--r--test/tables_test.rb5
-rw-r--r--test/test_helper.rb19
-rw-r--r--test/text_test.rb5
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