2013-10-21 17:01:57 -04:00
|
|
|
class Event
|
2013-10-23 16:03:45 -04:00
|
|
|
attr_reader :path
|
|
|
|
attr_reader :line_number
|
|
|
|
attr_reader :line
|
|
|
|
attr_reader :string
|
|
|
|
attr_reader :is_localname
|
|
|
|
|
2013-10-31 17:11:11 -04:00
|
|
|
require 'pathname'
|
|
|
|
|
2013-10-21 17:01:57 -04:00
|
|
|
# ------------------------------------------------------------------------------------
|
|
|
|
private
|
|
|
|
# ------------------------------------------------------------------------------------
|
2013-10-31 17:11:11 -04:00
|
|
|
|
|
|
|
def relativize(root, path)
|
|
|
|
Pathname.new(path).relative_path_from(Pathname.new(root)).to_s
|
|
|
|
end
|
2013-10-21 17:01:57 -04:00
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------------
|
|
|
|
public
|
|
|
|
# ------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
def initialize(path, line_number, line, string)
|
|
|
|
@path = path
|
|
|
|
@line_number = line_number
|
|
|
|
@line = line
|
|
|
|
@string = string
|
|
|
|
@is_localname = string[0] == ?:
|
|
|
|
end
|
|
|
|
|
2013-10-31 17:11:11 -04:00
|
|
|
def to_s(directory_root = nil)
|
|
|
|
if directory_root
|
|
|
|
"#{relativize(directory_root, @path)} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
|
|
|
|
else
|
|
|
|
"#{@path} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
|
|
|
|
end
|
2013-10-21 17:01:57 -04:00
|
|
|
end
|
|
|
|
end
|