Class RI::Options
In: rdoc/ri/ri_options.rb
Parent: Object

Methods

displayer   new   parse   path   raw_path   show_version  

Included Modules

Singleton

Classes and Modules

Module RI::Options::OptionList

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

Public Class methods

[Source]

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

      # By default all paths are used.  If any of these are true, only those
      # directories are used.
      @use_system = false
      @use_site = false
      @use_home = false
      @use_gems = false
      @doc_dirs = []
    end

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 308
    def displayer
      ::RiDisplay.new(self)
    end

Parse command line options.

[Source]

# File rdoc/ri/ri_options.rb, line 238
    def parse(args)
    
      old_argv = ARGV.dup

      ARGV.replace(args)

      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 "--system"     then @use_system = true
          when "--site"       then @use_site = true
          when "--home"       then @use_home = true
          when "--gems"       then @use_gems = true

          when "--doc-dir"
            if File.directory?(arg)
              @doc_dirs << arg
            else
              $stderr.puts "Invalid directory: #{arg}"
              exit 1
            end

          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 selected documentation directories.

[Source]

# File rdoc/ri/ri_options.rb, line 295
    def path
      RI::Paths.path(@use_system, @use_site, @use_home, @use_gems, *@doc_dirs)
    end

[Source]

# File rdoc/ri/ri_options.rb, line 299
    def raw_path
      RI::Paths.raw_path(@use_system, @use_site, @use_home, @use_gems,
                         *@doc_dirs)
    end

Show the version and exit

[Source]

# File rdoc/ri/ri_options.rb, line 215
    def show_version
      puts VERSION_STRING
      exit(0)
    end

[Validate]

ruby-doc.org is a community service provided by James Britt and Happy Camper Studios, a Phoenix, Arizona, Ruby application development company.

Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.

For more information on the Ruby programming language, visit ruby-lang.org.

Want to help improve Ruby's API docs? See Ruby Documentation Guidelines.