Class IHelp::IHelpDriver
In: lib/ihelp.rb
Parent: RiDriver
RiDriver IHelpDriver Renderer lib/ihelp.rb IHelp Module: IHelp

Version of RiDriver that takes its options as parameter to initialize.

Methods

Public Class methods

Create new IHelpDriver, with the given args passed to @options, which is a RI::Options.instance

[Source]

     # File lib/ihelp.rb, line 353
353:     def initialize(args = [])
354:       @options = RI::Options.instance
355:       @options.parse(args)
356:   
357:       paths = @options.paths || RI::Paths::PATH
358:       if paths.empty?
359:         report_missing_documentation(paths)
360:       end
361:       @ri_reader = RI::RiReader.new(RI::RiCache.new(paths))
362:       @display   = @options.displayer
363:     end

Public Instance methods

Display the info based on if it’s for a class or a method. Using ri’s pager.

[Source]

     # File lib/ihelp.rb, line 388
388:     def display_info(info)
389:       case [info.class] # only info.class doesn't work
390:       when [RI::ClassDescription]
391:         @display.display_class_info(info, @ri_reader)
392:       when [RI::MethodDescription]
393:         @display.display_method_info(info)
394:       end
395:     end

Get info for the class in the given namespaces.

[Source]

     # File lib/ihelp.rb, line 399
399:     def get_class_info_str(namespaces)
400:       return nil if namespaces.empty?
401:       klass = nil
402:       namespaces.find{|ns| 
403:         begin
404:           klass = @ri_reader.get_class(ns)
405:         rescue TypeError
406:           nil
407:         end
408:       }
409:       klass
410:     end

Get info string from ri database for klass_name [method_name]

[Source]

     # File lib/ihelp.rb, line 367
367:     def get_info_str(klass_name, method_name = nil, instance = false)
368:       is_class_method = (not instance)
369:       top_level_namespace = @ri_reader.top_level_namespace
370:       namespaces = klass_name.split(/::/).inject(top_level_namespace){
371:         |ns, current_name|
372:         @ri_reader.lookup_namespace_in(current_name, ns)
373:       }
374:       return nil if namespaces.empty?
375:       if method_name.nil?
376:         get_class_info_str(namespaces)
377:       else
378:         methods = @ri_reader.find_methods(
379:                     method_name, is_class_method, namespaces)
380:         return nil if methods.empty?
381:         get_method_info_str(method_name, methods)
382:       end
383:     end

Get info for the method in the given methods.

[Source]

     # File lib/ihelp.rb, line 414
414:     def get_method_info_str(requested_method_name, methods)
415:       if methods.size == 1
416:         @ri_reader.get_method(methods.first)
417:       else
418:         entries = methods.find_all {|m| m.name == requested_method_name}
419:         return nil if entries.empty?
420:         method = nil
421:         entries.find{|entry| method = @ri_reader.get_method(entry)}
422:         method
423:       end
424:     end

[Validate]