Class: Lookout::Diff::Range
- Inherits:
-
Object
show all
- Includes:
- Enumerable
- Defined in:
- lib/lookout/diff/range.rb
Instance Method Summary
collapse
Constructor Details
#initialize(items, range = 0...items.size) ⇒ Range
Returns a new instance of Range.
6
7
8
|
# File 'lib/lookout/diff/range.rb', line 6
def initialize(items, range = 0...items.size)
@items, @range = items, range.exclude_end? ? range.begin..range.end - 1 : range
end
|
Instance Method Details
38
39
40
|
# File 'lib/lookout/diff/range.rb', line 38
def +(other)
self.class.new(items, range.begin..other.range.end)
end
|
#==(other) ⇒ Object
80
81
82
|
# File 'lib/lookout/diff/range.rb', line 80
def ==(other)
range == other.range and items == other.items
end
|
#[](index) ⇒ Object
68
69
70
|
# File 'lib/lookout/diff/range.rb', line 68
def [](index)
items[index]
end
|
#at(range) ⇒ Object
34
35
36
|
# File 'lib/lookout/diff/range.rb', line 34
def at(range)
self.class.new(items, range)
end
|
72
73
74
|
# File 'lib/lookout/diff/range.rb', line 72
def begin
range.begin
end
|
#begin_after(other) ⇒ Object
26
27
28
|
# File 'lib/lookout/diff/range.rb', line 26
def begin_after(other)
self.class.new(items, other.range.end + 1..range.end)
end
|
#begin_at(index) ⇒ Object
42
43
44
|
# File 'lib/lookout/diff/range.rb', line 42
def begin_at(index)
self.class.new(items, index..range.end)
end
|
#begins_before?(other) ⇒ Boolean
18
19
20
|
# File 'lib/lookout/diff/range.rb', line 18
def begins_before?(other)
range.begin < other.range.begin
end
|
50
51
52
53
54
55
|
# File 'lib/lookout/diff/range.rb', line 50
def each
range.each do |index|
yield items[index]
end
self
end
|
#each_with_index ⇒ Object
57
58
59
60
61
62
|
# File 'lib/lookout/diff/range.rb', line 57
def each_with_index
range.each do |index|
yield items[index], index
end
self
end
|
#empty? ⇒ Boolean
10
11
12
|
# File 'lib/lookout/diff/range.rb', line 10
def empty?
size < 1
end
|
76
77
78
|
# File 'lib/lookout/diff/range.rb', line 76
def end
range.end
end
|
#end_at(index) ⇒ Object
46
47
48
|
# File 'lib/lookout/diff/range.rb', line 46
def end_at(index)
self.class.new(items, range.begin..index)
end
|
#end_before(other) ⇒ Object
30
31
32
|
# File 'lib/lookout/diff/range.rb', line 30
def end_before(other)
self.class.new(items, range.begin...other.range.begin)
end
|
#ends_after?(other) ⇒ Boolean
22
23
24
|
# File 'lib/lookout/diff/range.rb', line 22
def ends_after?(other)
range.end > other.range.end
end
|
84
85
86
|
# File 'lib/lookout/diff/range.rb', line 84
def inspect
'%p[%p]' % [items, range]
end
|
14
15
16
|
# File 'lib/lookout/diff/range.rb', line 14
def size
range.end - range.begin + 1
end
|
64
65
66
|
# File 'lib/lookout/diff/range.rb', line 64
def to_items
items[range]
end
|