Class: Glark::LineStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/glark/output/line_status.rb

Constant Summary collapse

WRITTEN =
Object.new
PRE_MATCH =
'-'
MATCH =
':'
POST_MATCH =
'+'

Instance Method Summary collapse

Constructor Details

#initializeLineStatus

Returns a new instance of LineStatus.



11
12
13
# File 'lib/glark/output/line_status.rb', line 11

def initialize 
  @stati = Array.new
end

Instance Method Details

#char(lnum) ⇒ Object



23
24
25
# File 'lib/glark/output/line_status.rb', line 23

def char lnum
  @stati[lnum]
end

#is_written?(lnum) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/glark/output/line_status.rb', line 15

def is_written? lnum
  @stati[lnum] == WRITTEN
end

#set_as_written(lnum) ⇒ Object



19
20
21
# File 'lib/glark/output/line_status.rb', line 19

def set_as_written lnum
  @stati[lnum] = WRITTEN
end

#set_match(pre_match_start, match_start, match_end, post_match_end) ⇒ Object



39
40
41
42
43
44
# File 'lib/glark/output/line_status.rb', line 39

def set_match pre_match_start, match_start, match_end, post_match_end
  start = [0, pre_match_start].max
  set_status start,         match_start - 1,    PRE_MATCH
  set_status match_start,   match_end,          MATCH
  set_status match_end + 1, post_match_end,     POST_MATCH
end

#set_status(from, to, status) ⇒ Object



27
28
29
30
31
# File 'lib/glark/output/line_status.rb', line 27

def set_status from, to, status
  from.upto(to) do |lnum|
    update_status lnum, status
  end
end

#update_status(lnum, status) ⇒ Object



33
34
35
36
37
# File 'lib/glark/output/line_status.rb', line 33

def update_status lnum, status
  if @stati[lnum].nil? || (status == MATCH && @stati[lnum] != WRITTEN)
    @stati[lnum] = status
  end
end