class Haml::Helpers::ErrorReturn
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.
Public Class Methods
new(method)
click to toggle source
# File lib/haml/helpers.rb, line 15 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
Public Instance Methods
html_safe()
Any attempt to treat ErrorReturn
as a string should cause it to blow up.
Alias for: to_s
inspect()
click to toggle source
@return [String] A human-readable string representation
# File lib/haml/helpers.rb, line 46 def inspect "Haml::Helpers::ErrorReturn(#{@message.inspect})" end
to_s()
click to toggle source
Raises an error.
@raise [Haml::Error] The error
# File lib/haml/helpers.rb, line 26 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