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

Methods

displayer   new   parse   paths   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 ri/ri_options.rb, line 178
178:     def initialize
179:       @use_stdout   = !STDOUT.tty?
180:       @width        = 72
181:       @formatter    = RI::TextFormatter.for("plain") 
182:       @list_classes = false
183:       @list_names   = false
184:     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 ri/ri_options.rb, line 250
250:     def displayer
251:       ::RiDisplay.new(self)
252:     end

Parse command line options.

[Source]

     # File ri/ri_options.rb, line 189
189:     def parse(args)
190:     
191:       old_argv = ARGV.dup
192: #      if ENV["RI"]
193: #        ARGV.replace(ENV["RI"].split.concat(ARGV))
194: #      end
195: 
196:      ARGV.replace(args)
197: 
198:       begin
199: 
200:         go = GetoptLong.new(*OptionList.options)
201:         go.quiet = true
202: 
203:         go.each do |opt, arg|
204:           case opt
205:           when "--help"       then OptionList.usage
206:           when "--version"    then show_version
207:           when "--list-names" then @list_names = true
208:           when "--no-pager"   then @use_stdout = true
209:           when "--classes"    then @list_classes = true
210:           when "--doc-dir"
211:             if File.directory?(arg)
212:               @doc_dir = arg
213:             else
214:               $stderr.puts "Invalid directory: #{arg}"
215:               exit 1
216:             end
217: 
218:           when "--format"
219:             @formatter = RI::TextFormatter.for(arg)
220:             unless @formatter
221:               $stderr.print "Invalid formatter (should be one of "
222:               $stderr.puts RI::TextFormatter.list + ")"
223:               exit 1
224:             end
225:           when "--width"
226:             begin
227:               @width = Integer(arg)
228:             rescue 
229:               $stderr.puts "Invalid width: '#{arg}'"
230:               exit 1
231:             end
232:           end
233:         end
234: 
235:       rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument => error
236:         OptionList.error(error.message)
237: 
238:       end
239:     end

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

[Source]

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

Show the version and exit

[Source]

     # File ri/ri_options.rb, line 172
172:     def show_version
173:       puts VERSION_STRING
174:       exit(0)
175:     end

[Validate]