Class: Mayu::VDOM::Reconciliation::RangeIterator

Inherits:
Object
  • Object
show all
Defined in:
lib/mayu/vdom/reconciliation.rb

Instance Method Summary collapse

Constructor Details

#initialize(elements) ⇒ RangeIterator

Returns a new instance of RangeIterator.



10
11
12
13
14
# File 'lib/mayu/vdom/reconciliation.rb', line 10

def initialize(elements)
  @head = 0
  @tail = elements.length.pred
  @elements = elements
end

Instance Method Details

#[](idx) ⇒ Object



29
30
31
# File 'lib/mayu/vdom/reconciliation.rb', line 29

def [](idx)
  @elements[idx]
end

#[]=(idx, value) ⇒ Object



33
34
35
# File 'lib/mayu/vdom/reconciliation.rb', line 33

def []=(idx, value)
  @elements[idx] = value
end

#done?Boolean

Returns:

  • (Boolean)


16
# File 'lib/mayu/vdom/reconciliation.rb', line 16

def done? = @head > @tail

#headObject



18
# File 'lib/mayu/vdom/reconciliation.rb', line 18

def head = @elements[@head]

#next_head!Object



23
# File 'lib/mayu/vdom/reconciliation.rb', line 23

def next_head! = @head += 1

#next_tail!Object



24
# File 'lib/mayu/vdom/reconciliation.rb', line 24

def next_tail! = @tail -= 1

#tailObject



19
# File 'lib/mayu/vdom/reconciliation.rb', line 19

def tail = @elements[@tail]

#tail_idxObject



21
# File 'lib/mayu/vdom/reconciliation.rb', line 21

def tail_idx = @tail

#to_aObject



26
# File 'lib/mayu/vdom/reconciliation.rb', line 26

def to_a = @elements[to_range] || []

#to_rangeObject



27
# File 'lib/mayu/vdom/reconciliation.rb', line 27

def to_range = @head..@tail