class Robe::Sash::DocFor

Public Class Methods

method_struct(method) click to toggle source
# File lib/robe/sash/doc_for.rb, line 36
def self.method_struct(method)
  begin
    info = Pry::Method.new(method)

    if info.dynamically_defined?
      doc = ""
      source = "# This method was defined outside of a source file."
    else
      doc = info.doc
      source = (info.source? ? info.source : "# Not available.")
    end

    OpenStruct.new(docstring: doc, source: source,
                   aliases: info.aliases.map(&:to_sym))
  rescue Pry::CommandError
    message = $!.message =~ /pry-doc/ ? $!.message : ""
    return OpenStruct.new(docstring: message)
  end
end
new(method) click to toggle source
# File lib/robe/sash/doc_for.rb, line 13
def initialize(method)
  @method = method
end

Public Instance Methods

format() click to toggle source
# File lib/robe/sash/doc_for.rb, line 17
def format
  info = self.class.method_struct(@method)
  {docstring: info.docstring,
   source: info.source,
   aliases: info.aliases,
   visibility: visibility}
end
visibility() click to toggle source
# File lib/robe/sash/doc_for.rb, line 25
def visibility
  owner, name = @method.owner, @method.name
  if owner.__public_instance_methods__(false).include?(name)
    :public
  elsif owner.__protected_instance_methods__(false).include?(name)
    :protected
  elsif owner.__private_instance_methods__(false).include?(name)
    :private
  end
end