class IRB::ExtendCommand::ShowDoc

Public Class Methods

transform_args(args) click to toggle source
# File lib/irb/cmd/show_doc.rb, line 9
def transform_args(args)
  # Return a string literal as is for backward compatibility
  if args.empty? || string_literal?(args)
    args
  else # Otherwise, consider the input as a String for convenience
    args.strip.dump
  end
end

Public Instance Methods

execute(*names) click to toggle source
# File lib/irb/cmd/show_doc.rb, line 22
def execute(*names)
  require 'rdoc/ri/driver'

  unless ShowDoc.const_defined?(:Ri)
    opts = RDoc::RI::Driver.process_args([])
    ShowDoc.const_set(:Ri, RDoc::RI::Driver.new(opts))
  end

  if names.empty?
    Ri.interactive
  else
    names.each do |name|
      begin
        Ri.display_name(name.to_s)
      rescue RDoc::RI::Error
        puts $!.message
      end
    end
  end

  nil
rescue LoadError, SystemExit
  warn "Can't display document because `rdoc` is not installed."
end