class Pry::Command::ShowDoc - pry-0.10.1 Documentation

# class Pry::Command::ShowDoc

### Public Instance Methods

content_for(code_object) click to toggle source

The docs for code_object prepared for display.

    # File lib/pry/commands/show_doc.rb, line 24
    def content_for(code_object)
      Code.new(render_doc_markup_for(code_object),
               start_line_for(code_object), :text).
        with_line_numbers(use_line_numbers?).to_s
    end

docs_for(code_object) click to toggle source

Return docs for the code_object, adjusting for whether the code_object has yard docs available, in which case it returns those. (note we only have to check yard docs for modules since they can have multiple docs, but methods can only be doc’d once so we dont need to check them)

    # File lib/pry/commands/show_doc.rb, line 52
    def docs_for(code_object)
      if code_object.module_with_yard_docs?
        # yard docs
        code_object.yard_doc
      else
        # normal docs (i.e comments above method/module/command)
        code_object.doc
      end
    end

header_options() click to toggle source

Which sections to include in the ‘header’, can toggle: :owner, :signature and visibility.

Calls superclass method Pry::Command::ShowInfo#header_options

    # File lib/pry/commands/show_doc.rb, line 64
    def header_options
      super.merge :signature => true
    end

render_doc_markup_for(code_object) click to toggle source

process the markup (if necessary) and apply colors

    # File lib/pry/commands/show_doc.rb, line 31
    def render_doc_markup_for(code_object)
      docs = docs_for(code_object)

      if code_object.command?
        # command '--help' shouldn't use markup highlighting
        docs
      else
        if docs.empty?
          raise CommandError, "No docs found for: #{
            obj_name ? obj_name : 'current context'
          }"
        end
        process_comment_markup(docs)
      end
    end

start_line_for(code_object) click to toggle source

figure out start line of docs by back-calculating based on number of lines in the comment and the start line of the code_object @return [Fixnum] start line of docs

    # File lib/pry/commands/show_doc.rb, line 71
    def start_line_for(code_object)
      if code_object.command? || opts.present?(:'base-one')
         1
      else
        code_object.source_line.nil? ? 1 :
          (code_object.source_line - code_object.doc.lines.count)
      end
    end