diff options
Diffstat (limited to 'lib/rdoc.rb')
-rw-r--r-- | lib/rdoc.rb | 104 |
1 files changed, 58 insertions, 46 deletions
diff --git a/lib/rdoc.rb b/lib/rdoc.rb index 2d3f8c1122..9dc4595324 100644 --- a/lib/rdoc.rb +++ b/lib/rdoc.rb @@ -62,7 +62,7 @@ module RDoc class Error < RuntimeError; end - require 'rdoc/version' + require_relative 'rdoc/version' ## # Method visibilities @@ -120,6 +120,17 @@ module RDoc end end + ## + # Searches and returns the directory for settings. + # + # 1. <tt>$HOME/.rdoc</tt> directory, if it exists. + # 2. The +rdoc+ directory under the path specified by the + # +XDG_DATA_HOME+ environment variable, if it is set. + # 3. <tt>$HOME/.local/share/rdoc</tt> directory. + # + # Other than the home directory, the containing directory will be + # created automatically. + def self.home rdoc_dir = begin File.expand_path('~/.rdoc') @@ -129,6 +140,7 @@ module RDoc if File.directory?(rdoc_dir) rdoc_dir else + require 'fileutils' begin # XDG xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.expand_path("~"), '.local', 'share') @@ -141,61 +153,61 @@ module RDoc end end - autoload :RDoc, 'rdoc/rdoc' + autoload :RDoc, "#{__dir__}/rdoc/rdoc" - autoload :CrossReference, 'rdoc/cross_reference' - autoload :ERBIO, 'rdoc/erbio' - autoload :ERBPartial, 'rdoc/erb_partial' - autoload :Encoding, 'rdoc/encoding' - autoload :Generator, 'rdoc/generator' - autoload :Options, 'rdoc/options' - autoload :Parser, 'rdoc/parser' - autoload :Servlet, 'rdoc/servlet' - autoload :RI, 'rdoc/ri' - autoload :Stats, 'rdoc/stats' - autoload :Store, 'rdoc/store' - autoload :Task, 'rdoc/task' - autoload :Text, 'rdoc/text' + autoload :CrossReference, "#{__dir__}/rdoc/cross_reference" + autoload :ERBIO, "#{__dir__}/rdoc/erbio" + autoload :ERBPartial, "#{__dir__}/rdoc/erb_partial" + autoload :Encoding, "#{__dir__}/rdoc/encoding" + autoload :Generator, "#{__dir__}/rdoc/generator" + autoload :Options, "#{__dir__}/rdoc/options" + autoload :Parser, "#{__dir__}/rdoc/parser" + autoload :Servlet, "#{__dir__}/rdoc/servlet" + autoload :RI, "#{__dir__}/rdoc/ri" + autoload :Stats, "#{__dir__}/rdoc/stats" + autoload :Store, "#{__dir__}/rdoc/store" + autoload :Task, "#{__dir__}/rdoc/task" + autoload :Text, "#{__dir__}/rdoc/text" - autoload :Markdown, 'rdoc/markdown' - autoload :Markup, 'rdoc/markup' - autoload :RD, 'rdoc/rd' - autoload :TomDoc, 'rdoc/tom_doc' + autoload :Markdown, "#{__dir__}/rdoc/markdown" + autoload :Markup, "#{__dir__}/rdoc/markup" + autoload :RD, "#{__dir__}/rdoc/rd" + autoload :TomDoc, "#{__dir__}/rdoc/tom_doc" - autoload :KNOWN_CLASSES, 'rdoc/known_classes' + autoload :KNOWN_CLASSES, "#{__dir__}/rdoc/known_classes" - autoload :TokenStream, 'rdoc/token_stream' + autoload :TokenStream, "#{__dir__}/rdoc/token_stream" - autoload :Comment, 'rdoc/comment' + autoload :Comment, "#{__dir__}/rdoc/comment" - require 'rdoc/i18n' + require_relative 'rdoc/i18n' # code objects # # We represent the various high-level code constructs that appear in Ruby # programs: classes, modules, methods, and so on. - autoload :CodeObject, 'rdoc/code_object' - - autoload :Context, 'rdoc/context' - autoload :TopLevel, 'rdoc/top_level' - - autoload :AnonClass, 'rdoc/anon_class' - autoload :ClassModule, 'rdoc/class_module' - autoload :NormalClass, 'rdoc/normal_class' - autoload :NormalModule, 'rdoc/normal_module' - autoload :SingleClass, 'rdoc/single_class' - - autoload :Alias, 'rdoc/alias' - autoload :AnyMethod, 'rdoc/any_method' - autoload :MethodAttr, 'rdoc/method_attr' - autoload :GhostMethod, 'rdoc/ghost_method' - autoload :MetaMethod, 'rdoc/meta_method' - autoload :Attr, 'rdoc/attr' - - autoload :Constant, 'rdoc/constant' - autoload :Mixin, 'rdoc/mixin' - autoload :Include, 'rdoc/include' - autoload :Extend, 'rdoc/extend' - autoload :Require, 'rdoc/require' + autoload :CodeObject, "#{__dir__}/rdoc/code_object" + + autoload :Context, "#{__dir__}/rdoc/context" + autoload :TopLevel, "#{__dir__}/rdoc/top_level" + + autoload :AnonClass, "#{__dir__}/rdoc/anon_class" + autoload :ClassModule, "#{__dir__}/rdoc/class_module" + autoload :NormalClass, "#{__dir__}/rdoc/normal_class" + autoload :NormalModule, "#{__dir__}/rdoc/normal_module" + autoload :SingleClass, "#{__dir__}/rdoc/single_class" + + autoload :Alias, "#{__dir__}/rdoc/alias" + autoload :AnyMethod, "#{__dir__}/rdoc/any_method" + autoload :MethodAttr, "#{__dir__}/rdoc/method_attr" + autoload :GhostMethod, "#{__dir__}/rdoc/ghost_method" + autoload :MetaMethod, "#{__dir__}/rdoc/meta_method" + autoload :Attr, "#{__dir__}/rdoc/attr" + + autoload :Constant, "#{__dir__}/rdoc/constant" + autoload :Mixin, "#{__dir__}/rdoc/mixin" + autoload :Include, "#{__dir__}/rdoc/include" + autoload :Extend, "#{__dir__}/rdoc/extend" + autoload :Require, "#{__dir__}/rdoc/require" end |