RI::Options (Class)

In: rdoc/ri/ri_options.rb
Parent: Object

Methods

displayer   parse   paths   show_version  

Attributes

doc_dir  [R]  the directory we search for original documentation
formatter  [R]  the formatting we apply to the output
list_classes  [R]  should we just display a class list and exit
list_names  [R]  should we display a list of all names
use_stdout  [RW]  No not use a pager. Writable, because ri sets it if it can’t find a pager
width  [R]  The width of the output line

Classes and Modules

Module RI::Options::OptionList

Included Modules

Singleton

Public Instance methods

Return an instance of the displayer (the thing that actually writes the information). This allows us to load in new displayer classes at runtime (for example to help with IDE integration)

[Source]

# File rdoc/ri/ri_options.rb, line 241
    def displayer
      ::RiDisplay.new(self)
    end

Parse command line options.

[Source]

# File rdoc/ri/ri_options.rb, line 182
    def parse
    
      @use_stdout   = !STDOUT.tty?
      @width        = 72
      @formatter    = RI::TextFormatter.for("plain") 
      @list_classes = false
      @list_names   = false

      old_argv = ARGV.dup
      if ENV["RI"]
        ARGV.replace(ENV["RI"].split.concat(ARGV))
      end

      begin

        go = GetoptLong.new(*OptionList.options)
        go.quiet = true

        go.each do |opt, arg|
          case opt
          when "--help"       then OptionList.usage
          when "--version"    then show_version
          when "--list-names" then @list_names = true
          when "--no-pager"   then @use_stdout = true
          when "--classes"    then @list_classes = true
          when "--doc-dir"    then @doc_dir = arg

          when "--format"
            @formatter = RI::TextFormatter.for(arg)
            unless @formatter
              $stderr.print "Invalid formatter (should be one of "
              $stderr.puts RI::TextFormatter.list + ")"
              exit 1
            end
          when "--width"
            begin
              @width = Integer(arg)
            rescue 
              $stderr.puts "Invalid width: '#{arg}'"
              exit 1
            end
          end
        end

      rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument => error
        OptionList.error(error.message)

      end
    end

Return the doc_dir as an array, or nil if no overriding doc dir was given

[Source]

# File rdoc/ri/ri_options.rb, line 233
    def paths
      defined?(@doc_dir) ? [ @doc_dir ] : nil
    end

Show the version and exit

[Source]

# File rdoc/ri/ri_options.rb, line 173
    def show_version
      cvs_info = CVS_ID.split
      puts "#{VERSION_STRING} (#{cvs_info[2]} #{cvs_info[3]})"
      exit(0)
    end

[Validate]