A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://ruby.github.io/rdoc/RDoc/Comment.html below:

class RDoc::Comment - rdoc Documentation

  1. RDoc::
  2. Comment

A comment holds the text comment for a RDoc::CodeObject and provides a unified way of cleaning it up and parsing it into an RDoc::Markup::Document.

Each comment may have a different markup format set by format=. By default ‘rdoc’ is used. The :markup: directive tells RDoc which format to use.

See Directive for Specifying RDoc Source Format at RDoc::MarkupReference.

Attributes

Overrides the content returned by parse. Use when there is no text source for this comment

Line where this Comment was written

The text for this comment

The text for this comment

Public Class Methods

Source

# File lib/rdoc/comment.rb, line 56
def initialize(text = nil, location = nil, language = nil)
  @location = location
  @text     = text.nil? ? nil : text.dup
  @language = language

  @document   = nil
  @format     = 'rdoc'
  @normalized = false
end

Creates a new comment with text that is found in the RDoc::TopLevel location.

Public Instance Methods

Source

# File lib/rdoc/comment.rb, line 125
def empty?
  @text.empty? && (@document.nil? || @document.empty?)
end

A comment is empty if its text String is empty.

Source

# File lib/rdoc/comment.rb, line 132
def encode!(encoding)
  @text = String.new @text, encoding: encoding
  self
end

HACK dubious

Source

# File lib/rdoc/comment.rb, line 95
def extract_call_seq
  # we must handle situations like the above followed by an unindented first
  # comment.  The difficulty is to make sure not to match lines starting
  # with ARGF at the same indent, but that are after the first description
  # paragraph.
  if /^(?<S> ((?!\n)\s)*+        (?# whitespaces except newline))
       :?call-seq:
         (?<B> \g<S>(?<N>\n|\z)  (?# trailing spaces))?
       (?<seq>
         (\g<S>(?!\w)\S.*\g<N>)*
         (?>
           (?<H> \g<S>\w+        (?# ' #   ARGF' in the example above))
           .*\g<N>)?
         (\g<S>\S.*\g<N>         (?# other non-blank line))*+
         (\g<B>+(\k<H>.*\g<N>    (?# ARGF.to_a lines))++)*+
       )
       (?m:^\s*$|\z)
      /x =~ @text
    seq = $~[:seq]

    all_start, all_stop = $~.offset(0)
    @text.slice! all_start...all_stop

    seq.gsub!(/^\s*/, '')
  end
end

Look for a ‘call-seq’ in the comment to override the normal parameter handling. The :call-seq: is indented from the baseline. All lines of the same indentation level and prefix are consumed.

For example, all of the following will be used as the :call-seq:

# :call-seq:
#   ARGF.readlines(sep=$/)     -> array
#   ARGF.readlines(limit)      -> array
#   ARGF.readlines(sep, limit) -> array
#
#   ARGF.to_a(sep=$/)     -> array
#   ARGF.to_a(limit)      -> array
#   ARGF.to_a(sep, limit) -> array

Source

# File lib/rdoc/comment.rb, line 140
def format=(format)
  @format = format
  @document = nil
end

Sets the format of this comment and resets any parsed document

Source

# File lib/rdoc/comment.rb, line 154
def normalize
  return self unless @text
  return self if @normalized # TODO eliminate duplicate normalization

  @text = normalize_comment @text

  @normalized = true

  self
end

Normalizes the text. See RDoc::Text#normalize_comment for details

Source

# File lib/rdoc/comment.rb, line 176
def parse
  return @document if @document

  @document = super @text, @format
  @document.file = @location
  @document
end

Parses the comment into an RDoc::Markup::Document. The parsed document is cached until the text is changed.

Source

# File lib/rdoc/comment.rb, line 197
def remove_private
  # Workaround for gsub encoding for Ruby 1.9.2 and earlier
  empty = ''
  empty = RDoc::Encoding.change_encoding empty, @text.encoding

  @text = @text.gsub(%r%^\s*([#*]?)--.*?^\s*(\1)\+\+\n?%m, empty)
  @text = @text.sub(%r%^\s*[#*]?--.*%m, '')
end

Removes private sections from this comment. Private sections are flush to the comment marker and start with -- and end with ++. For C-style comments, a private marker may not start at the opening of the comment.

/*
 *--
 * private
 *++
 * public
 */

Source

# File lib/rdoc/comment.rb, line 211
def text=(text)
  raise RDoc::Error, 'replacing document-only comment is not allowed' if
    @text.nil? and @document

  @document = nil
  @text = text.nil? ? nil : text.dup
end

Replaces this comment’s text with text and resets the parsed document.

An error is raised if the comment contains a document but no text.

Source

# File lib/rdoc/comment.rb, line 222
def tomdoc?
  @format == 'tomdoc'
end

Returns true if this comment is in TomDoc format.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4