Module: Pry::Helpers::DocumentationHelpers
- Included in:
- Method, WrappedModule
- Defined in:
- lib/pry/helpers/documentation_helpers.rb
Overview
This class contains methods useful for extracting documentation from methods and classes.
Instance Method Summary (collapse)
- - (Object) process_comment_markup(comment, code_type)
- - (Object) process_rdoc(comment, code_type)
- - (Object) process_yardoc(comment)
- - (Object) process_yardoc_tag(comment, tag)
- - (String) strip_comments_from_c_code(code)
- - (String) strip_leading_hash_and_whitespace_from_ruby_comments(comment)
- - (String) strip_leading_whitespace(text)
Instance Method Details
- (Object) process_comment_markup(comment, code_type)
39 40 41 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 39 def process_comment_markup(comment, code_type) process_yardoc process_rdoc(comment, code_type) end |
- (Object) process_rdoc(comment, code_type)
7 8 9 10 11 12 13 14 15 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 7 def process_rdoc(comment, code_type) comment = comment.dup comment.gsub(/<code>(?:\s*\n)?(.*?)\s*<\/code>/m) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }. gsub(/<em>(?:\s*\n)?(.*?)\s*<\/em>/m) { Pry.color ? "\e[1m#{$1}\e[0m": $1 }. gsub(/<i>(?:\s*\n)?(.*?)\s*<\/i>/m) { Pry.color ? "\e[1m#{$1}\e[0m" : $1 }. gsub(/\B\+(\w*?)\+\B/) { Pry.color ? "\e[32m#{$1}\e[0m": $1 }. gsub(/((?:^[ \t]+.+(?:\n+|\Z))+)/) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }. gsub(/`(?:\s*\n)?([^\e]*?)\s*`/) { "`#{Pry.color ? CodeRay.scan($1, code_type).term : $1}`" } end |
- (Object) process_yardoc(comment)
32 33 34 35 36 37 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 32 def process_yardoc(comment) = ["param", "return", "option", "yield", "attr", "attr_reader", "attr_writer", "deprecate", "example"] ( - ["example"]).inject(comment) { |a, v| process_yardoc_tag(a, v) }. gsub(/^@(#{.join("|")})/) { Pry.color ? "\e[33m#{$1}\e[0m": $1 } end |
- (Object) process_yardoc_tag(comment, tag)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 17 def process_yardoc_tag(comment, tag) in_tag_block = nil comment.lines.map do |v| if in_tag_block && v !~ /^\S/ Pry::Helpers::Text.strip_color Pry::Helpers::Text.strip_color(v) elsif in_tag_block in_tag_block = false v else in_tag_block = true if v =~ /^@#{tag}/ v end end.join end |
- (String) strip_comments_from_c_code(code)
45 46 47 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 45 def strip_comments_from_c_code(code) code.sub(/\A\s*\/\*.*?\*\/\s*/m, '') end |
- (String) strip_leading_hash_and_whitespace_from_ruby_comments(comment)
51 52 53 54 55 56 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 51 def strip_leading_hash_and_whitespace_from_ruby_comments(comment) comment = comment.dup comment.gsub!(/\A\#+?$/, '') comment.gsub!(/^\s*#/, '') strip_leading_whitespace(comment) end |
- (String) strip_leading_whitespace(text)
60 61 62 |
# File 'lib/pry/helpers/documentation_helpers.rb', line 60 def strip_leading_whitespace(text) Pry::Helpers::CommandHelpers.unindent(text) end |