123456789_123456789_123456789_123456789_123456789_

Class: RDoc::Markup::AttrSpan

Relationships & Source Files
Inherits: Object
Defined in: lib/rdoc/markup/attr_span.rb

Overview

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

Class Method Summary

Instance Method Summary

Constructor Details

.new(length, exclusive) ⇒ AttrSpan

Creates a new AttrSpan for length characters

[ GitHub ]

  
# 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)

Accesses flags for character n

[ GitHub ]

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

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

#set_attrs(start, length, bits)

Toggles bits from start to length

[ GitHub ]

  
# 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