Skip to content

Commit

Permalink
Fix easter_egg run without RDoc, fix input-method test run without RD…
Browse files Browse the repository at this point in the history
…oc (#998)

* EasterEgg no longer depend on RDoc

* Run most of the input-method tests even if RDoc is not avialable
tompng authored Sep 3, 2024
1 parent 87d0754 commit 30fa159
Showing 2 changed files with 10 additions and 7 deletions.
12 changes: 7 additions & 5 deletions lib/irb/easter-egg.rb
Original file line number Diff line number Diff line change
@@ -107,13 +107,14 @@ def render_frame(i)
end

private def easter_egg(type = nil)
print "\e[?1049h"
type ||= [:logo, :dancing].sample
case type
when :logo
require "rdoc"
RDoc::RI::Driver.new.page do |io|
type = STDOUT.external_encoding == Encoding::UTF_8 ? :unicode_large : :ascii_large
io.write easter_egg_logo(type)
Pager.page do |io|
logo_type = STDOUT.external_encoding == Encoding::UTF_8 ? :unicode_large : :ascii_large
io.write easter_egg_logo(logo_type)
STDIN.raw { STDIN.getc } if io == STDOUT
end
when :dancing
STDOUT.cooked do
@@ -138,10 +139,11 @@ def render_frame(i)
end
rescue Interrupt
ensure
print "\e[0m\e[?1049l"
trap("SIGINT", prev_trap)
end
end
ensure
print "\e[0m\e[?1049l"
end
end
end
5 changes: 3 additions & 2 deletions test/irb/test_input_method.rb
Original file line number Diff line number Diff line change
@@ -70,6 +70,7 @@ def test_initialization_without_use_autocomplete
end

def test_initialization_with_use_autocomplete
omit 'This test requires RDoc' unless defined?(RDoc)
original_show_doc_proc = Reline.dialog_proc(:show_doc)&.dialog_proc
empty_proc = Proc.new {}
Reline.add_dialog_proc(:show_doc, empty_proc)
@@ -190,5 +191,5 @@ def test_perfect_matching_handles_nil_namespace
def has_rdoc_content?
File.exist?(RDoc::RI::Paths::BASE)
end
end
end if defined?(RDoc)
end if defined?(RDoc)
end

0 comments on commit 30fa159

Please sign in to comment.