# class RDoc::RD::Inline

frozen_string_literal: false

Inline keeps track of markup and labels to create proper links.

### Attributes

rdoc[R]

The markup of this reference in RDoc format

reference[R]

The text of the reference

to_s[R]

The markup of this reference in RDoc format

### Public Class Methods

new(rdoc, reference = rdoc) click to toggle source

Creates a new Inline for `rdoc` and `reference`.

`rdoc` may be another Inline or a String. If `reference` is not given it will use the text from `rdoc`.

Calls superclass method

    # File lib/rdoc/rd/inline.rb, line 23
    def self.new rdoc, reference = rdoc
      if self === rdoc and reference.equal? rdoc then
        rdoc
      else
        super
      end
    end

### Public Instance Methods

append(more) click to toggle source

Appends `more` to this inline. `more` may be a String or another Inline.

    # File lib/rdoc/rd/inline.rb, line 50
    def append more
      case more
      when String then
        @reference << more
        @rdoc      << more
      when RDoc::RD::Inline then
        @reference << more.reference
        @rdoc      << more.rdoc
      else
        raise "unknown thingy #{more}"
      end

      self
    end

### Protected Instance Methods

initialize(rdoc, reference) click to toggle source

Initializes the Inline with `rdoc` and `inline`

    # File lib/rdoc/rd/inline.rb, line 34
    def initialize rdoc, reference # :not-new:
      @reference = reference.equal?(rdoc) ? reference.dup : reference

      # unpack
      @reference = @reference.reference if self.class === @reference
      @rdoc      = rdoc
    end