Class: OCL::Label

Inherits:
Object
  • Object
show all
Defined in:
lib/dbc/ocl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, file, line) ⇒ Label



24
25
26
27
28
29
30
31
# File 'lib/dbc/ocl.rb', line 24

def initialize(message, file, line)
  @message = message
  if message =~ /[\n\r"]/
    raise ParseError, "label '#{message}' contains invalid characters: '\\n', '\\r', or '\"'"
  end
  @file = file
  @line = line
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



33
34
35
# File 'lib/dbc/ocl.rb', line 33

def file
  @file
end

#lineObject (readonly)

Returns the value of attribute line.



33
34
35
# File 'lib/dbc/ocl.rb', line 33

def line
  @line
end

#messageObject (readonly)

Returns the value of attribute message.



33
34
35
# File 'lib/dbc/ocl.rb', line 33

def message
  @message
end

Instance Method Details

#to_s(context = nil) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/dbc/ocl.rb', line 35

def to_s(context = nil)
  if @file
    tag = "\"#{@file}:#{@line}: "
  else
    tag = " __FILE__ \":#{@line}: "
  end
  # C string is open
  tag << context << ': ' if context
  tag << ' ' << @message if @message
  tag << "\"" # close C string
end