Class: Fast::Source::Range
- Inherits:
-
Object
- Object
- Fast::Source::Range
- Defined in:
- lib/fast/source.rb
Instance Attribute Summary collapse
-
#begin_pos ⇒ Object
readonly
Returns the value of attribute begin_pos.
-
#end_pos ⇒ Object
readonly
Returns the value of attribute end_pos.
-
#source_buffer ⇒ Object
readonly
Returns the value of attribute source_buffer.
Instance Method Summary collapse
- #adjust(begin_pos: 0, end_pos: 0) ⇒ Object
- #begin ⇒ Object
- #column ⇒ Object
- #end ⇒ Object
- #first_line ⇒ Object
-
#initialize(source_buffer, begin_pos, end_pos) ⇒ Range
constructor
A new instance of Range.
- #join(other) ⇒ Object
- #last_line ⇒ Object
- #line ⇒ Object
- #source ⇒ Object
- #to_range ⇒ Object
Constructor Details
#initialize(source_buffer, begin_pos, end_pos) ⇒ Range
Returns a new instance of Range.
22 23 24 25 26 |
# File 'lib/fast/source.rb', line 22 def initialize(source_buffer, begin_pos, end_pos) @source_buffer = source_buffer @begin_pos = begin_pos @end_pos = end_pos end |
Instance Attribute Details
#begin_pos ⇒ Object (readonly)
Returns the value of attribute begin_pos.
20 21 22 |
# File 'lib/fast/source.rb', line 20 def begin_pos @begin_pos end |
#end_pos ⇒ Object (readonly)
Returns the value of attribute end_pos.
20 21 22 |
# File 'lib/fast/source.rb', line 20 def end_pos @end_pos end |
#source_buffer ⇒ Object (readonly)
Returns the value of attribute source_buffer.
20 21 22 |
# File 'lib/fast/source.rb', line 20 def source_buffer @source_buffer end |
Instance Method Details
#adjust(begin_pos: 0, end_pos: 0) ⇒ Object
65 66 67 |
# File 'lib/fast/source.rb', line 65 def adjust(begin_pos: 0, end_pos: 0) self.class.new(source_buffer, self.begin_pos + begin_pos, self.end_pos + end_pos) end |
#begin ⇒ Object
28 29 30 |
# File 'lib/fast/source.rb', line 28 def begin self.class.new(source_buffer, begin_pos, begin_pos) end |
#column ⇒ Object
52 53 54 55 |
# File 'lib/fast/source.rb', line 52 def column last_newline = source_buffer.source.to_s.rindex("\n", begin_pos - 1) begin_pos - (last_newline ? last_newline + 1 : 0) end |
#end ⇒ Object
32 33 34 |
# File 'lib/fast/source.rb', line 32 def end self.class.new(source_buffer, end_pos, end_pos) end |
#first_line ⇒ Object
44 45 46 |
# File 'lib/fast/source.rb', line 44 def first_line source_buffer.source.to_s[0...begin_pos].count("\n") + 1 end |
#join(other) ⇒ Object
61 62 63 |
# File 'lib/fast/source.rb', line 61 def join(other) self.class.new(source_buffer, [begin_pos, other.begin_pos].min, [end_pos, other.end_pos].max) end |
#last_line ⇒ Object
48 49 50 |
# File 'lib/fast/source.rb', line 48 def last_line source_buffer.source.to_s[0...end_pos].count("\n") + 1 end |
#line ⇒ Object
40 41 42 |
# File 'lib/fast/source.rb', line 40 def line first_line end |
#source ⇒ Object
36 37 38 |
# File 'lib/fast/source.rb', line 36 def source source_buffer.source.to_s[begin_pos...end_pos] end |
#to_range ⇒ Object
57 58 59 |
# File 'lib/fast/source.rb', line 57 def to_range begin_pos...end_pos end |