Class: Pry::Command::ShowDoc
- Inherits:
-
ShowInfo
- Object
- Pry::Command
- Pry::ClassCommand
- ShowInfo
- Pry::Command::ShowDoc
- Includes:
- Helpers::DocumentationHelpers
- Defined in:
- lib/pry/commands/show_doc.rb
Constant Summary
Constants included from Helpers::DocumentationHelpers
Helpers::DocumentationHelpers::YARD_TAGS
Constants inherited from Pry::Command
Constants included from Helpers::Text
Instance Attribute Summary
Attributes inherited from Pry::ClassCommand
Attributes inherited from Pry::Command
#arg_string, #captures, #command_block, #command_set, #context, #eval_string, #hooks, #output, #pry_instance, #target
Instance Method Summary collapse
-
#content_for(code_object) ⇒ Object
The docs for code_object prepared for display.
-
#docs_for(code_object) ⇒ Object
Return docs for the code_object, adjusting for whether the code_object has yard docs available, in which case it returns those.
-
#header_options ⇒ Object
Which sections to include in the ‘header’, can toggle: :owner, :signature and visibility.
-
#render_doc_markup_for(code_object) ⇒ Object
process the markup (if necessary) and apply colors.
-
#start_line_for(code_object) ⇒ Fixnum
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.
Methods included from Helpers::DocumentationHelpers
get_comment_content, process_comment_markup, process_rdoc, process_yardoc, process_yardoc_tag, strip_comments_from_c_code, strip_leading_whitespace
Methods inherited from ShowInfo
#code_object_header, #code_object_with_accessible_source, #complete, #content_and_header_for_code_object, #content_and_headers_for_all_module_candidates, #file_and_line_for, #header, #initialize, #method_header, #method_sections, #module_header, #no_definition_message, #obj_name, #options, #process, #show_all_modules?, #use_line_numbers?, #valid_superclass?
Methods included from Helpers::BaseHelpers
#colorize_code, #find_command, #heading, #highlight, #not_a_real_file?, #safe_send, #silence_warnings, #stagger_output, #use_ansi_codes?
Methods inherited from Pry::ClassCommand
#call, #complete, doc, #help, inherited, #options, #process, #setup, #slop, source, source_file, source_line, source_location, #subcommands
Methods inherited from Pry::Command
#_pry_, banner, #block, #check_for_command_collision, command_name, #command_name, #command_options, command_regex, #commands, #complete, convert_to_regex, default_options, #description, doc, group, #initialize, inspect, #interpolate_string, #match, match_score, matches?, name, #name, options, #process_line, #run, source, #source, source_file, source_line, state, #state, subclass, #target_self, #tokenize, #void
Methods included from Pry::CodeObject::Helpers
#c_method?, #c_module?, #command?, #module_with_yard_docs?, #real_method_object?
Methods included from Helpers::Text
#bold, #default, #indent, #no_color, #no_pager, #strip_color, #with_line_numbers
Methods included from Helpers::CommandHelpers
#absolute_index_number, #absolute_index_range, #get_method_or_raise, #internal_binding?, #one_index_number, #one_index_range, #one_index_range_or_number, #restrict_to_lines, #set_file_and_dir_locals, #temp_file, #unindent
Methods included from Helpers::OptionsHelpers
Constructor Details
This class inherits a constructor from Pry::Command::ShowInfo
Instance Method Details
#content_for(code_object) ⇒ Object
The docs for code_object prepared for display.
25 26 27 28 29 30 31 |
# File 'lib/pry/commands/show_doc.rb', line 25 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) ⇒ Object
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)
54 55 56 57 58 59 60 61 62 |
# File 'lib/pry/commands/show_doc.rb', line 54 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 ⇒ Object
Which sections to include in the ‘header’, can toggle: :owner, :signature and visibility.
66 67 68 |
# File 'lib/pry/commands/show_doc.rb', line 66 def super.merge signature: true end |
#render_doc_markup_for(code_object) ⇒ Object
process the markup (if necessary) and apply colors
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/pry/commands/show_doc.rb', line 34 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 || 'current context'}" end process_comment_markup(docs) end end |
#start_line_for(code_object) ⇒ Fixnum
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
73 74 75 76 77 78 |
# File 'lib/pry/commands/show_doc.rb', line 73 def start_line_for(code_object) return 1 if code_object.command? || opts.present?(:'base-one') return 1 unless code_object.source_line code_object.source_line - code_object.doc.lines.count end |