haml--haml/lib/sass/error.rb

36 lines
1.2 KiB
Ruby
Raw Normal View History

module Sass
# Sass::SyntaxError encapsulates information about the exception,
# such as the line of the Sass template it was raised on
# and the Sass file that was being parsed (if applicable).
# It also provides a handy way to rescue only exceptions raised
# because of a faulty template.
class SyntaxError < StandardError
# The line of the Sass template on which the exception was thrown.
attr_accessor :sass_line
# The name of the file that was being parsed when the exception was raised.
# This will be nil unless Sass is being used as an ActionView plugin.
attr_reader :sass_filename
# Creates a new SyntaxError.
# +lineno+ should be the line of the Sass template on which the error occurred.
def initialize(msg, lineno = nil)
@message = msg
@sass_line = lineno
end
# Adds a properly formatted entry to the exception's backtrace.
# +filename+ should be the file in which the error occurred,
# if applicable (defaults to "(sass)").
def add_backtrace_entry(filename) # :nodoc:
@sass_filename = filename
self.backtrace ||= []
self.backtrace.unshift "#{filename || '(sass)'}:#{@sass_line}"
end
def to_s # :nodoc
@message
end
end
end