Methods

FastRI::Util::MagicHelp

Public Instance Methods

magic_help(query) click to toggle source
# File lib/fastri/util.rb, line 138
def magic_help(query)
  if query =~ /\A(.*?)(#|::|\.)([^:#.]+)\Z/
    c, k, m = $1, $2, $3
    mid = m
    begin
      c = c.split(/::/).inject(Object){|s,x| s.const_get(x)}
      m = case k
          when "#"
            c.instance_method(m)
          when "::"
            c.method(m)
          when "."
            begin
              # if it's a private_instance_method, assume it was created
              # with module_function
              if c.private_instance_methods.include?(m)
                c.instance_method(m)
              else
                c.method(m)
              end
            rescue NameError
              c.instance_method(m)
            end
          end

      ret = help_method_extract(m)
      if ret == 'Class#new' and
          c.private_method_defined?(:initialize)
        return c.name + "::new"
      elsif ret =~ /^Kernel#/ and
          Kernel.instance_methods(false).include? mid
        return "Object##{mid}"
      end
      ret
    rescue Exception
      query
    end
  else
    query
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.