Class Options
In: options.rb
Parent: Object

Methods

parse   title   title=  

Included Modules

Singleton

Classes and Modules

Module Options::OptionList

Attributes

all_one_file  [R]  should the output be placed into a single file
charset  [R]  character-set
css  [R]  URL of stylesheet
diagram  [R]  should diagrams be drawn
exclude  [RW]  files matching this pattern will be excluded
extra_accessor_flags  [R] 
extra_accessors  [R]  pattern for additional attr_... style methods
fileboxes  [R]  should we draw fileboxes in diagrams
files  [R]  and the list of files to be processed
generator  [RW]  description of the output generator (set with the -fmt option
ignore_case  [R]  The case of names of classes or modules or methods are ignored
image_format  [R]  image format for diagrams
include_line_numbers  [R]  include line numbers in the source listings
inline_source  [R]  should source code be included inline, or displayed in a popup
main_page  [RW]  name of the file, class or module to display in the initial index page (if not specified the first file we encounter is used)
merge  [R]  merge into classes of the name name when generating ri
op_dir  [RW]  the name of the output directory
op_name  [R]  the name to use for the output
promiscuous  [R]  Are we promiscuous about showing module contents across multiple files
quiet  [R]  Don‘t display progress as we process the files
rdoc_include  [R]  array of directories to search for files to satisfy an :include:
show_all  [RW]  include private and protected methods in the output
show_hash  [R]  include the ’#’ at the front of hyperlinked instance method names
tab_width  [R]  the number of columns in a tab
template  [R]  template to be used when generating output
webcvs  [R]  URL of web cvs frontend

Public Instance methods

Parse command line options. We‘re passed a hash containing output generators, keyed by the generator name

[Source]

     # File options.rb, line 349
349:   def parse(argv, generators)
350:     old_argv = ARGV.dup
351:     begin
352:       ARGV.replace(argv)
353:       @op_dir = "doc"
354:       @op_name = nil
355:       @show_all = false
356:       @main_page = nil
357:       @marge     = false
358:       @exclude   = []
359:       @quiet = false
360:       @generator_name = 'html'
361:       @generator = generators[@generator_name]
362:       @rdoc_include = []
363:       @title = nil
364:       @template = nil
365:       @diagram = false
366:       @fileboxes = false
367:       @show_hash = false
368:       @image_format = 'png'
369:       @inline_source = false
370:       @all_one_file  = false
371:       @tab_width = 8
372:       @include_line_numbers = false
373:       @extra_accessor_flags = {}
374:       @promiscuous = false
375:       @ignore_case = false
376: 
377:       @css = nil
378:       @webcvs = nil
379: 
380:       @charset = case $KCODE
381:                  when /^S/i
382:                    'Shift_JIS'
383:                  when /^E/i
384:                    'EUC-JP'
385:                  else
386:                    'iso-8859-1'
387:                  end
388: 
389:       accessors = []
390: 
391:       go = GetoptLong.new(*OptionList.options)
392:       go.quiet = true
393: 
394:       go.each do |opt, arg|
395:         case opt
396:         when "--all"           then @show_all      = true
397:         when "--charset"       then @charset       = arg
398:         when "--debug"         then $DEBUG         = true
399:         when "--exclude"       then @exclude       << Regexp.new(arg)
400:         when "--inline-source" then @inline_source = true
401:         when "--line-numbers"  then @include_line_numbers = true
402:         when "--main"          then @main_page     = arg
403:         when "--merge"         then @merge         = true
404:         when "--one-file"      then @all_one_file  = @inline_source = true
405:         when "--op"            then @op_dir        = arg
406:         when "--opname"        then @op_name       = arg
407:         when "--promiscuous"   then @promiscuous   = true
408:         when "--quiet"         then @quiet         = true
409:         when "--show-hash"     then @show_hash     = true
410:         when "--style"         then @css           = arg
411:         when "--template"      then @template      = arg
412:         when "--title"         then @title         = arg
413:         when "--webcvs"        then @webcvs        = arg
414:         when "--ignore-case"   then @ignore_case   = true
415: 
416:         when "--accessor" 
417:           arg.split(/,/).each do |accessor|
418:             if accessor =~ /^(\w+)(=(.*))?$/
419:               accessors << $1
420:               @extra_accessor_flags[$1] = $3
421:             end
422:           end
423: 
424:         when "--diagram"
425:           check_diagram
426:           @diagram = true
427: 
428:         when "--fileboxes"
429:           @fileboxes = true if @diagram
430: 
431:         when "--fmt"
432:           @generator_name = arg.downcase
433:           setup_generator(generators)
434: 
435:         when "--help"      
436:           OptionList.usage(generators.keys)
437: 
438:         when "--help-output"      
439:           OptionList.help_output
440: 
441:         when "--image-format"
442:           if ['gif', 'png', 'jpeg', 'jpg'].include?(arg)
443:             @image_format = arg
444:           else
445:             raise GetoptLong::InvalidOption.new("unknown image format: #{arg}")
446:           end
447: 
448:         when "--include"   
449:           @rdoc_include.concat arg.split(/\s*,\s*/)
450: 
451:         when "--ri", "--ri-site", "--ri-system"
452:           @generator_name = "ri"
453:           @op_dir = case opt
454:                     when "--ri" then RI::Paths::HOMEDIR 
455:                     when "--ri-site" then RI::Paths::SITEDIR
456:                     when "--ri-system" then RI::Paths::SYSDIR
457:                     else fail opt
458:                     end
459:           setup_generator(generators)
460: 
461:         when "--tab-width"
462:           begin
463:             @tab_width     = Integer(arg)
464:           rescue 
465:             $stderr.puts "Invalid tab width: '#{arg}'"
466:             exit 1
467:           end
468: 
469:         when "--extension"
470:           new, old = arg.split(/=/, 2)
471:           OptionList.error("Invalid parameter to '-E'") unless new && old
472:           unless RDoc::ParserFactory.alias_extension(old, new)
473:             OptionList.error("Unknown extension .#{old} to -E")
474:           end
475: 
476:         when "--version"
477:           puts VERSION_STRING
478:           exit
479:         end
480: 
481:       end
482: 
483:       @files = ARGV.dup
484: 
485:       @rdoc_include << "." if @rdoc_include.empty?
486: 
487:       if @exclude.empty?
488:         @exclude = nil
489:       else
490:         @exclude = Regexp.new(@exclude.join("|"))
491:       end
492: 
493:       check_files
494: 
495:       # If no template was specified, use the default
496:       # template for the output formatter
497: 
498:       @template ||= @generator_name
499: 
500:       # Generate a regexp from the accessors
501:       unless accessors.empty?
502:         re = '^(' + accessors.map{|a| Regexp.quote(a)}.join('|') + ')$' 
503:         @extra_accessors = Regexp.new(re)
504:       end
505: 
506:     rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument => error
507:       OptionList.error(error.message)
508: 
509:     ensure
510:       ARGV.replace(old_argv)
511:     end
512:   end

[Source]

     # File options.rb, line 515
515:   def title
516:     @title ||= "RDoc Documentation"
517:   end

Set the title, but only if not already set. This means that a title set from the command line trumps one set in a source file

[Source]

     # File options.rb, line 522
522:   def title=(string)
523:     @title ||= string
524:   end

[Validate]