Module: Haml::Filters::Ruby
- Includes:
- Base
- Defined in:
- /tmp/buildd/ruby-haml-3.1.6/lib/haml/filters.rb
Overview
Parses the filtered text with the normal Ruby interpreter. All output sent to $stdout
, such as with puts
, is output into the Haml document. Not available if the :suppress_eval
option is set to true. The Ruby code is evaluated in the same context as the Haml template.
Instance Method Summary (collapse)
Methods included from Base
included, #internal_compile, #lazy_require, #render, #render_with_options
Instance Method Details
- compile(compiler, text)
271 272 273 274 275 276 277 278 279 280 281 282 |
# File '/tmp/buildd/ruby-haml-3.1.6/lib/haml/filters.rb', line 271
def compile(compiler, text)
return if compiler.options[:suppress_eval]
compiler.instance_eval do
push_silent <<-FIRST.gsub("\n", ';') + text + <<-LAST.gsub("\n", ';')
_haml_old_stdout = $stdout
$stdout = StringIO.new(_hamlout.buffer, 'a')
FIRST
_haml_old_stdout, $stdout = $stdout, _haml_old_stdout
_haml_old_stdout.close
LAST
end
end
|