Class: StatModule::Location

Inherits:
JSONable show all
Defined in:
lib/location.rb

Constant Summary

Constants inherited from JSONable

JSONable::FORMATTING_BALL, JSONable::FORMATTING_CHECKMARK, JSONable::FORMATTING_STAR, JSONable::FORMATTING_WARNING

Instance Method Summary collapse

Methods inherited from JSONable

from_json!, #to_json

Constructor Details

#initialize(path, hash = nil) ⇒ Location



6
7
8
9
10
11
12
# File 'lib/location.rb', line 6

def initialize(path, hash = nil)
  if hash.is_a? Hash
    super(hash)
    return
  end
  @path = path
end

Instance Method Details

#begin_columnObject



37
38
39
# File 'lib/location.rb', line 37

def begin_column
  @beginColumn
end

#begin_column=(begin_column) ⇒ Object

Raises:



32
33
34
35
# File 'lib/location.rb', line 32

def begin_column=(begin_column)
  raise TypeException unless begin_column.is_a?(Integer)
  @beginColumn = begin_column
end

#begin_lineObject



28
29
30
# File 'lib/location.rb', line 28

def begin_line
  @beginLine
end

#begin_line=(begin_line) ⇒ Object

Raises:



23
24
25
26
# File 'lib/location.rb', line 23

def begin_line=(begin_line)
  raise TypeException unless begin_line.is_a?(Integer)
  @beginLine = begin_line
end

#end_columnObject



55
56
57
# File 'lib/location.rb', line 55

def end_column
  @endColumn
end

#end_column=(end_column) ⇒ Object

Raises:



50
51
52
53
# File 'lib/location.rb', line 50

def end_column=(end_column)
  raise TypeException unless end_column.is_a?(Integer)
  @endColumn = end_column
end

#end_lineObject



46
47
48
# File 'lib/location.rb', line 46

def end_line
  @endLine
end

#end_line=(end_line) ⇒ Object

Raises:



41
42
43
44
# File 'lib/location.rb', line 41

def end_line=(end_line)
  raise TypeException unless end_line.is_a?(Integer)
  @endLine = end_line
end

#pathObject



19
20
21
# File 'lib/location.rb', line 19

def path
  @path
end

#path=(path) ⇒ Object

Raises:



14
15
16
17
# File 'lib/location.rb', line 14

def path=(path)
  raise TypeException unless path.is_a?(String)
  @path = path
end


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/location.rb', line 59

def print
  result = "in #{path}"
  if !begin_line.nil? && !end_line.nil?
    if begin_line != end_line
      if !begin_column.nil? && !end_column.nil?
        result += ", line #{begin_line}:#{begin_column} to line #{end_line}:#{end_column}"
      elsif !begin_column.nil? && end_column.nil?
        result += ", line #{begin_line}:#{begin_column} to line #{end_line}"
      elsif begin_column.nil? && !end_column.nil?
        result += ", line #{begin_line} to line #{end_line}:#{end_column}"
      else
        result += ", lines #{begin_line}-#{end_line}"
      end
    else
      if begin_column.nil?
        result += ", line #{begin_line}"
      else
        result += ", line #{begin_line}:#{begin_column}"
        result += "-#{end_column}" unless end_column.nil?
      end
    end
  end
  result
end