Class: Haml::Helpers::ErrorReturn
Overview
An object that raises an error when #to_s is called. It's used to raise an error when the return value of a helper is used when it shouldn't be.
Instance Method Summary collapse
-
#initialize(method) ⇒ ErrorReturn
constructor
A new instance of ErrorReturn.
-
#inspect ⇒ String
A human-readable string representation.
-
#to_s ⇒ Object
Raises an error.
Constructor Details
#initialize(method) ⇒ ErrorReturn
Returns a new instance of ErrorReturn.
17 18 19 20 21 22 23 |
# File 'lib/haml/helpers.rb', line 17
def initialize(method)
@message = <<MESSAGE
#{method} outputs directly to the Haml template.
Disregard its return value and use the - operator,
or use capture_haml to get the value as a String.
MESSAGE
end
|
Instance Method Details
#inspect ⇒ String
Returns A human-readable string representation.
48 49 50 |
# File 'lib/haml/helpers.rb', line 48
def inspect
"Haml::Helpers::ErrorReturn(#{@message.inspect})"
end
|
#to_s ⇒ Object
Raises an error.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/haml/helpers.rb', line 28
def to_s
raise Haml::Error.new(@message)
rescue Haml::Error => e
e.backtrace.shift
# If the ErrorReturn is used directly in the template,
# we don't want Haml's stuff to get into the backtrace,
# so we get rid of the format_script line.
#
# We also have to subtract one from the Haml line number
# since the value is passed to format_script the line after
# it's actually used.
if e.backtrace.first =~ /^\(eval\):\d+:in `format_script/
e.backtrace.shift
e.backtrace.first.gsub!(/^\(haml\):(\d+)/) {|s| "(haml):#{$1.to_i - 1}"}
end
raise e
end
|