require 'brat' require 'brat/cli_helpers' module Brat::Help extend Brat::CLI::Helpers def self.get_help(methods,cmd=nil) help = '' if cmd.nil? || cmd == 'help' help = actions_table else ri_cmd = `which ri`.chomp if $? == 0 namespace = methods.select {|m| m[:name] === cmd }.map {|m| m[:owner]+'.'+m[:name] }.shift if namespace begin ri_output = `#{ri_cmd} -T #{namespace} 2>&1`.chomp if $? == 0 ri_output.gsub!(/#{cmd}\((.*)\)/, cmd+' \1') ri_output.gsub!(/Brat\./, 'brat> ') ri_output.gsub!(/Brat\..+$/, '') ri_output.gsub!(/\,/, '') help = ri_output else help = "Ri docs not found for #{namespace}, please install the docs to use 'help'" end rescue => e puts e.message end else help = "Unknown command: #{cmd}" end else help = "'ri' tool not found in your PATH, please install it to use the help." end end puts help end end