Class: Hamlit::HamlHelpers::ErrorReturn
- Defined in:
- lib/hamlit/parser/haml_helpers.rb,
lib/hamlit/parser/haml_xss_mods.rb
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
(also: #html_safe, #html_safe?, #html_safe!)
Raises an error.
Constructor Details
#initialize(method) ⇒ ErrorReturn
Returns a new instance of ErrorReturn.
17 18 19 20 21 22 23 |
# File 'lib/hamlit/parser/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/hamlit/parser/haml_helpers.rb', line 48 def inspect "::Hamlit::HamlHelpers::ErrorReturn(#{@message.inspect})" end |
#to_s ⇒ Object Also known as: html_safe, html_safe?, html_safe!
Raises an error.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/hamlit/parser/haml_helpers.rb', line 28 def to_s raise ::Hamlit::HamlError.new(@message) rescue ::Hamlit::HamlError => 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 |