Skip to content

Commit aa41bd4

Browse files
BuonOmonobu
andauthored
Relative loading for easier development (#821)
This patch makes sure we only load relative code. Hence when coding or testing rdoc, we'll be sure to always be using the correct code. Discussion started at #817. Signed-off-by: Ulysse Buonomo <buonomo.ulysse@gmail.com> Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
1 parent 6600f2d commit aa41bd4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+147
-163
lines changed

Rakefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
$:.unshift File.expand_path 'lib'
2-
require 'rdoc/task'
1+
# frozen_string_literal: true
2+
3+
require_relative 'lib/rdoc/task'
34
require 'bundler/gem_tasks'
45
require 'rake/testtask'
56

@@ -34,14 +35,14 @@ task ghpages: :rdoc do
3435
end
3536

3637
Rake::TestTask.new(:normal_test) do |t|
37-
t.libs << "test/rdoc"
38+
t.libs = []
3839
t.verbose = true
3940
t.deps = :generate
4041
t.test_files = FileList["test/**/test_*.rb"].exclude("test/rdoc/test_rdoc_rubygems_hook.rb")
4142
end
4243

4344
Rake::TestTask.new(:rubygems_test) do |t|
44-
t.libs << "test/rdoc"
45+
t.libs = []
4546
t.verbose = true
4647
t.deps = :generate
4748
t.pattern = "test/rdoc/test_rdoc_rubygems_hook.rb"

bin/console

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require "bundler/setup"
4-
require "rdoc"
4+
require_relative "../lib/rdoc"
55

66
require "irb"
77
IRB.start

exe/rdoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,3 @@ rescue Exception => e
4141

4242
exit 1
4343
end
44-

lib/rdoc.rb

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ module RDoc
6262

6363
class Error < RuntimeError; end
6464

65-
require 'rdoc/version'
65+
require_relative 'rdoc/version'
6666

6767
##
6868
# Method visibilities
@@ -141,61 +141,61 @@ def self.home
141141
end
142142
end
143143

144-
autoload :RDoc, 'rdoc/rdoc'
144+
autoload :RDoc, "#{__dir__}/rdoc/rdoc"
145145

146-
autoload :CrossReference, 'rdoc/cross_reference'
147-
autoload :ERBIO, 'rdoc/erbio'
148-
autoload :ERBPartial, 'rdoc/erb_partial'
149-
autoload :Encoding, 'rdoc/encoding'
150-
autoload :Generator, 'rdoc/generator'
151-
autoload :Options, 'rdoc/options'
152-
autoload :Parser, 'rdoc/parser'
153-
autoload :Servlet, 'rdoc/servlet'
154-
autoload :RI, 'rdoc/ri'
155-
autoload :Stats, 'rdoc/stats'
156-
autoload :Store, 'rdoc/store'
157-
autoload :Task, 'rdoc/task'
158-
autoload :Text, 'rdoc/text'
146+
autoload :CrossReference, "#{__dir__}/rdoc/cross_reference"
147+
autoload :ERBIO, "#{__dir__}/rdoc/erbio"
148+
autoload :ERBPartial, "#{__dir__}/rdoc/erb_partial"
149+
autoload :Encoding, "#{__dir__}/rdoc/encoding"
150+
autoload :Generator, "#{__dir__}/rdoc/generator"
151+
autoload :Options, "#{__dir__}/rdoc/options"
152+
autoload :Parser, "#{__dir__}/rdoc/parser"
153+
autoload :Servlet, "#{__dir__}/rdoc/servlet"
154+
autoload :RI, "#{__dir__}/rdoc/ri"
155+
autoload :Stats, "#{__dir__}/rdoc/stats"
156+
autoload :Store, "#{__dir__}/rdoc/store"
157+
autoload :Task, "#{__dir__}/rdoc/task"
158+
autoload :Text, "#{__dir__}/rdoc/text"
159159

160-
autoload :Markdown, 'rdoc/markdown'
161-
autoload :Markup, 'rdoc/markup'
162-
autoload :RD, 'rdoc/rd'
163-
autoload :TomDoc, 'rdoc/tom_doc'
160+
autoload :Markdown, "#{__dir__}/rdoc/markdown"
161+
autoload :Markup, "#{__dir__}/rdoc/markup"
162+
autoload :RD, "#{__dir__}/rdoc/rd"
163+
autoload :TomDoc, "#{__dir__}/rdoc/tom_doc"
164164

165-
autoload :KNOWN_CLASSES, 'rdoc/known_classes'
165+
autoload :KNOWN_CLASSES, "#{__dir__}/rdoc/known_classes"
166166

167-
autoload :TokenStream, 'rdoc/token_stream'
167+
autoload :TokenStream, "#{__dir__}/rdoc/token_stream"
168168

169-
autoload :Comment, 'rdoc/comment'
169+
autoload :Comment, "#{__dir__}/rdoc/comment"
170170

171-
require 'rdoc/i18n'
171+
require_relative 'rdoc/i18n'
172172

173173
# code objects
174174
#
175175
# We represent the various high-level code constructs that appear in Ruby
176176
# programs: classes, modules, methods, and so on.
177-
autoload :CodeObject, 'rdoc/code_object'
178-
179-
autoload :Context, 'rdoc/context'
180-
autoload :TopLevel, 'rdoc/top_level'
181-
182-
autoload :AnonClass, 'rdoc/anon_class'
183-
autoload :ClassModule, 'rdoc/class_module'
184-
autoload :NormalClass, 'rdoc/normal_class'
185-
autoload :NormalModule, 'rdoc/normal_module'
186-
autoload :SingleClass, 'rdoc/single_class'
187-
188-
autoload :Alias, 'rdoc/alias'
189-
autoload :AnyMethod, 'rdoc/any_method'
190-
autoload :MethodAttr, 'rdoc/method_attr'
191-
autoload :GhostMethod, 'rdoc/ghost_method'
192-
autoload :MetaMethod, 'rdoc/meta_method'
193-
autoload :Attr, 'rdoc/attr'
194-
195-
autoload :Constant, 'rdoc/constant'
196-
autoload :Mixin, 'rdoc/mixin'
197-
autoload :Include, 'rdoc/include'
198-
autoload :Extend, 'rdoc/extend'
199-
autoload :Require, 'rdoc/require'
177+
autoload :CodeObject, "#{__dir__}/rdoc/code_object"
178+
179+
autoload :Context, "#{__dir__}/rdoc/context"
180+
autoload :TopLevel, "#{__dir__}/rdoc/top_level"
181+
182+
autoload :AnonClass, "#{__dir__}/rdoc/anon_class"
183+
autoload :ClassModule, "#{__dir__}/rdoc/class_module"
184+
autoload :NormalClass, "#{__dir__}/rdoc/normal_class"
185+
autoload :NormalModule, "#{__dir__}/rdoc/normal_module"
186+
autoload :SingleClass, "#{__dir__}/rdoc/single_class"
187+
188+
autoload :Alias, "#{__dir__}/rdoc/alias"
189+
autoload :AnyMethod, "#{__dir__}/rdoc/any_method"
190+
autoload :MethodAttr, "#{__dir__}/rdoc/method_attr"
191+
autoload :GhostMethod, "#{__dir__}/rdoc/ghost_method"
192+
autoload :MetaMethod, "#{__dir__}/rdoc/meta_method"
193+
autoload :Attr, "#{__dir__}/rdoc/attr"
194+
195+
autoload :Constant, "#{__dir__}/rdoc/constant"
196+
autoload :Mixin, "#{__dir__}/rdoc/mixin"
197+
autoload :Include, "#{__dir__}/rdoc/include"
198+
autoload :Extend, "#{__dir__}/rdoc/extend"
199+
autoload :Require, "#{__dir__}/rdoc/require"
200200

201201
end

lib/rdoc/code_objects.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
# This file was used to load all the RDoc::CodeObject subclasses at once. Now
33
# autoload handles this.
44

5-
require 'rdoc'
6-
5+
require_relative '../rdoc'

lib/rdoc/context.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1261,6 +1261,6 @@ def upgrade_to_class mod, class_type, enclosing
12611261
klass
12621262
end
12631263

1264-
autoload :Section, 'rdoc/context/section'
1264+
autoload :Section, "#{__dir__}/context/section"
12651265

12661266
end

lib/rdoc/generator.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141

4242
module RDoc::Generator
4343

44-
autoload :Markup, 'rdoc/generator/markup'
44+
autoload :Markup, "#{__dir__}/generator/markup"
4545

46-
autoload :Darkfish, 'rdoc/generator/darkfish'
47-
autoload :JsonIndex, 'rdoc/generator/json_index'
48-
autoload :RI, 'rdoc/generator/ri'
49-
autoload :POT, 'rdoc/generator/pot'
46+
autoload :Darkfish, "#{__dir__}/generator/darkfish"
47+
autoload :JsonIndex, "#{__dir__}/generator/json_index"
48+
autoload :RI, "#{__dir__}/generator/ri"
49+
autoload :POT, "#{__dir__}/generator/pot"
5050

5151
end

lib/rdoc/i18n.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
module RDoc::I18n
66

7-
autoload :Locale, 'rdoc/i18n/locale'
7+
autoload :Locale, "#{__dir__}/i18n/locale"
88
require_relative 'i18n/text'
99

1010
end

lib/rdoc/markdown.kpeg

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@
187187

188188
%% {
189189

190-
require 'rdoc'
191-
require 'rdoc/markup/to_joined_paragraph'
192-
require 'rdoc/markdown/entities'
190+
require_relative '../rdoc'
191+
require_relative 'markup/to_joined_paragraph'
192+
require_relative 'markdown/entities'
193193

194-
require 'rdoc/markdown/literals'
194+
require_relative 'markdown/literals'
195195

196196
##
197197
# Supported extensions

lib/rdoc/markup.rb

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -822,46 +822,45 @@ def convert input, formatter
822822
document.accept formatter
823823
end
824824

825-
autoload :Parser, 'rdoc/markup/parser'
826-
autoload :PreProcess, 'rdoc/markup/pre_process'
825+
autoload :Parser, "#{__dir__}/markup/parser"
826+
autoload :PreProcess, "#{__dir__}/markup/pre_process"
827827

828828
# Inline markup classes
829-
autoload :AttrChanger, 'rdoc/markup/attr_changer'
830-
autoload :AttrSpan, 'rdoc/markup/attr_span'
831-
autoload :Attributes, 'rdoc/markup/attributes'
832-
autoload :AttributeManager, 'rdoc/markup/attribute_manager'
833-
autoload :RegexpHandling, 'rdoc/markup/regexp_handling'
829+
autoload :AttrChanger, "#{__dir__}/markup/attr_changer"
830+
autoload :AttrSpan, "#{__dir__}/markup/attr_span"
831+
autoload :Attributes, "#{__dir__}/markup/attributes"
832+
autoload :AttributeManager, "#{__dir__}/markup/attribute_manager"
833+
autoload :RegexpHandling, "#{__dir__}/markup/regexp_handling"
834834

835835
# RDoc::Markup AST
836-
autoload :BlankLine, 'rdoc/markup/blank_line'
837-
autoload :BlockQuote, 'rdoc/markup/block_quote'
838-
autoload :Document, 'rdoc/markup/document'
839-
autoload :HardBreak, 'rdoc/markup/hard_break'
840-
autoload :Heading, 'rdoc/markup/heading'
841-
autoload :Include, 'rdoc/markup/include'
842-
autoload :IndentedParagraph, 'rdoc/markup/indented_paragraph'
843-
autoload :List, 'rdoc/markup/list'
844-
autoload :ListItem, 'rdoc/markup/list_item'
845-
autoload :Paragraph, 'rdoc/markup/paragraph'
846-
autoload :Table, 'rdoc/markup/table'
847-
autoload :Raw, 'rdoc/markup/raw'
848-
autoload :Rule, 'rdoc/markup/rule'
849-
autoload :Verbatim, 'rdoc/markup/verbatim'
836+
autoload :BlankLine, "#{__dir__}/markup/blank_line"
837+
autoload :BlockQuote, "#{__dir__}/markup/block_quote"
838+
autoload :Document, "#{__dir__}/markup/document"
839+
autoload :HardBreak, "#{__dir__}/markup/hard_break"
840+
autoload :Heading, "#{__dir__}/markup/heading"
841+
autoload :Include, "#{__dir__}/markup/include"
842+
autoload :IndentedParagraph, "#{__dir__}/markup/indented_paragraph"
843+
autoload :List, "#{__dir__}/markup/list"
844+
autoload :ListItem, "#{__dir__}/markup/list_item"
845+
autoload :Paragraph, "#{__dir__}/markup/paragraph"
846+
autoload :Table, "#{__dir__}/markup/table"
847+
autoload :Raw, "#{__dir__}/markup/raw"
848+
autoload :Rule, "#{__dir__}/markup/rule"
849+
autoload :Verbatim, "#{__dir__}/markup/verbatim"
850850

851851
# Formatters
852-
autoload :Formatter, 'rdoc/markup/formatter'
852+
autoload :Formatter, "#{__dir__}/markup/formatter"
853853

854-
autoload :ToAnsi, 'rdoc/markup/to_ansi'
855-
autoload :ToBs, 'rdoc/markup/to_bs'
856-
autoload :ToHtml, 'rdoc/markup/to_html'
857-
autoload :ToHtmlCrossref, 'rdoc/markup/to_html_crossref'
858-
autoload :ToHtmlSnippet, 'rdoc/markup/to_html_snippet'
859-
autoload :ToLabel, 'rdoc/markup/to_label'
860-
autoload :ToMarkdown, 'rdoc/markup/to_markdown'
861-
autoload :ToRdoc, 'rdoc/markup/to_rdoc'
862-
autoload :ToTableOfContents, 'rdoc/markup/to_table_of_contents'
863-
autoload :ToTest, 'rdoc/markup/to_test'
864-
autoload :ToTtOnly, 'rdoc/markup/to_tt_only'
854+
autoload :ToAnsi, "#{__dir__}/markup/to_ansi"
855+
autoload :ToBs, "#{__dir__}/markup/to_bs"
856+
autoload :ToHtml, "#{__dir__}/markup/to_html"
857+
autoload :ToHtmlCrossref, "#{__dir__}/markup/to_html_crossref"
858+
autoload :ToHtmlSnippet, "#{__dir__}/markup/to_html_snippet"
859+
autoload :ToLabel, "#{__dir__}/markup/to_label"
860+
autoload :ToMarkdown, "#{__dir__}/markup/to_markdown"
861+
autoload :ToRdoc, "#{__dir__}/markup/to_rdoc"
862+
autoload :ToTableOfContents, "#{__dir__}/markup/to_table_of_contents"
863+
autoload :ToTest, "#{__dir__}/markup/to_test"
864+
autoload :ToTtOnly, "#{__dir__}/markup/to_tt_only"
865865

866866
end
867-

0 commit comments

Comments
 (0)