Class RI::Options
In: lib/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 lib/rdoc/ri/ri_options.rb, line 226
226:     def initialize
227:       @use_stdout   = !STDOUT.tty?
228:       @width        = 72
229:       @formatter    = RI::TextFormatter.for("plain") 
230:       @list_classes = false
231:       @list_names   = false
232: 
233:       # By default all paths are used.  If any of these are true, only those
234:       # directories are used.
235:       @use_system = false
236:       @use_site = false
237:       @use_home = false
238:       @use_gems = false
239:       @doc_dirs = []
240:     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 lib/rdoc/ri/ri_options.rb, line 314
314:     def displayer
315:       ::RiDisplay.new(self)
316:     end

Parse command line options.

[Source]

     # File lib/rdoc/ri/ri_options.rb, line 244
244:     def parse(args)
245:     
246:       old_argv = ARGV.dup
247: 
248:       ARGV.replace(args)
249: 
250:       begin
251: 
252:         go = GetoptLong.new(*OptionList.options)
253:         go.quiet = true
254: 
255:         go.each do |opt, arg|
256:           case opt
257:           when "--help"       then OptionList.usage
258:           when "--version"    then show_version
259:           when "--list-names" then @list_names = true
260:           when "--no-pager"   then @use_stdout = true
261:           when "--classes"    then @list_classes = true
262: 
263:           when "--system"     then @use_system = true
264:           when "--site"       then @use_site = true
265:           when "--home"       then @use_home = true
266:           when "--gems"       then @use_gems = true
267: 
268:           when "--doc-dir"
269:             if File.directory?(arg)
270:               @doc_dirs << arg
271:             else
272:               $stderr.puts "Invalid directory: #{arg}"
273:               exit 1
274:             end
275: 
276:           when "--format"
277:             @formatter = RI::TextFormatter.for(arg)
278:             unless @formatter
279:               $stderr.print "Invalid formatter (should be one of "
280:               $stderr.puts RI::TextFormatter.list + ")"
281:               exit 1
282:             end
283:           when "--width"
284:             begin
285:               @width = Integer(arg)
286:             rescue 
287:               $stderr.puts "Invalid width: '#{arg}'"
288:               exit 1
289:             end
290:           end
291:         end
292: 
293:       rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument => error
294:         OptionList.error(error.message)
295: 
296:       end
297:     end

Return the selected documentation directories.

[Source]

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

[Source]

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

Show the version and exit

[Source]

     # File lib/rdoc/ri/ri_options.rb, line 221
221:     def show_version
222:       puts VERSION_STRING
223:       exit(0)
224:     end

[Validate]