Class: Mayu::VDOM::Reconciliation::RangeIterator
- Inherits:
-
Object
- Object
- Mayu::VDOM::Reconciliation::RangeIterator
- Defined in:
- lib/mayu/vdom/reconciliation.rb
Instance Method Summary collapse
- #[](idx) ⇒ Object
- #[]=(idx, value) ⇒ Object
- #done? ⇒ Boolean
- #head ⇒ Object
-
#initialize(elements) ⇒ RangeIterator
constructor
A new instance of RangeIterator.
- #next_head! ⇒ Object
- #next_tail! ⇒ Object
- #tail ⇒ Object
- #tail_idx ⇒ Object
- #to_a ⇒ Object
- #to_range ⇒ Object
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
16 |
# File 'lib/mayu/vdom/reconciliation.rb', line 16 def done? = @head > @tail |
#head ⇒ Object
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 |
#tail ⇒ Object
19 |
# File 'lib/mayu/vdom/reconciliation.rb', line 19 def tail = @elements[@tail] |
#tail_idx ⇒ Object
21 |
# File 'lib/mayu/vdom/reconciliation.rb', line 21 def tail_idx = @tail |
#to_a ⇒ Object
26 |
# File 'lib/mayu/vdom/reconciliation.rb', line 26 def to_a = @elements[to_range] || [] |
#to_range ⇒ Object
27 |
# File 'lib/mayu/vdom/reconciliation.rb', line 27 def to_range = @head..@tail |