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.
- #process ⇒ Object
-
#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, #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, #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.
35 36 37 38 39 40 41 |
# File 'lib/pry/commands/show_doc.rb', line 35 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)
64 65 66 67 68 69 70 71 72 |
# File 'lib/pry/commands/show_doc.rb', line 64 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.
76 77 78 |
# File 'lib/pry/commands/show_doc.rb', line 76 def super.merge signature: true end |
#process ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/pry/commands/show_doc.rb', line 24 def process super output.puts( "\nWARNING: the show-doc command is deprecated. It will be removed " \ "from future Pry versions.\nPlease use 'show-source' with the -d " \ "(or --doc) switch instead\nExample: show-source #{obj_name} -d" ) end |
#render_doc_markup_for(code_object) ⇒ Object
process the markup (if necessary) and apply colors
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/pry/commands/show_doc.rb', line 44 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
83 84 85 86 87 88 |
# File 'lib/pry/commands/show_doc.rb', line 83 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 |