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 inherited from Pry::Command
Instance Attribute Summary
Attributes inherited from Pry::ClassCommand
Attributes inherited from Pry::Command
#_pry_, #arg_string, #captures, #command_block, #command_set, #context, #eval_string, #output, #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, #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, command_dependencies_met?, find_command, heading, highlight, jruby?, jruby_19?, mri?, mri_19?, mri_20?, mri_21?, mri_2?, not_a_real_file?, rbx?, #safe_send, safe_send, silence_warnings, stagger_output, use_ansi_codes?, windows?, windows_ansi?
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
banner, #block, #call_safely, #check_for_command_collision, command_name, #command_name, #command_options, command_regex, #commands, #complete, convert_to_regex, default_options, #dependencies_met?, #description, doc, group, hooks, #initialize, inspect, #interpolate_string, #match, match_score, matches?, name, #name, options, #process_line, #run, #source, source, source_file, source_line, #source_location, source_location, #state, subclass, #target_self, #text, #tokenize, #void
Methods included from Pry::CodeObject::Helpers
#c_method?, #command?, #module_with_yard_docs?, #real_method_object?
Methods included from Helpers::CommandHelpers
absolute_index_number, absolute_index_range, command_error, 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
Instance Method Details
#content_for(code_object) ⇒ Object
The docs for code_object prepared for display.
24 25 26 27 28 |
# 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) ⇒ 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)
52 53 54 55 56 57 58 59 60 |
# 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 ⇒ Object
Which sections to include in the ‘header’, can toggle: :owner, :signature and visibility.
64 65 66 |
# File 'lib/pry/commands/show_doc.rb', line 64 def super.merge :signature => true end |
#render_doc_markup_for(code_object) ⇒ Object
process the markup (if necessary) and apply colors
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# 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) ⇒ 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
71 72 73 74 75 76 77 78 |
# 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 |