Class: RDoc::Markup::AttrSpan

Inherits:
Object
  • Object
show all
Defined in:
lib/rdoc/markup/attr_span.rb

Overview

An array of attributes which parallels the characters in a string.

Instance Method Summary collapse

Constructor Details

#initialize(length, exclusive) ⇒ AttrSpan

Creates a new AttrSpan for length characters



10
11
12
13
# File 'lib/rdoc/markup/attr_span.rb', line 10

def initialize(length, exclusive)
  @attrs = Array.new(length, 0)
  @exclusive = exclusive
end

Instance Method Details

#[](n) ⇒ Object

Accesses flags for character n



31
32
33
# File 'lib/rdoc/markup/attr_span.rb', line 31

def [](n)
  @attrs[n]
end

#set_attrs(start, length, bits) ⇒ Object

Toggles bits from start to length



17
18
19
20
21
22
23
24
25
26
# File 'lib/rdoc/markup/attr_span.rb', line 17

def set_attrs(start, length, bits)
  updated = false
  for i in start ... (start+length)
    if (@exclusive & @attrs[i]) == 0 || (@exclusive & bits) != 0
      @attrs[i] |= bits
      updated = true
    end
  end
  updated
end