module Blocks::HamlCapture

Public Class Methods

new(view, *) click to toggle source
Calls superclass method
# File lib/blocks/helpers/haml_capture.rb, line 18
def initialize(view, *)
  super
  if defined?(::Haml) && !view.instance_variables.include?(:@haml_buffer)
    class << view
      include Haml::Helpers
    end
    view.init_haml_helpers
  end
end

Public Instance Methods

capture(*) click to toggle source
Calls superclass method
# File lib/blocks/helpers/haml_capture.rb, line 28
def capture(*)
  old_haml_buffer = view.instance_variable_get(:@haml_buffer)
  if old_haml_buffer
    was_active = old_haml_buffer.active?
    old_haml_buffer.active = false
  else
    haml_buffer = Haml::Buffer.new(nil, Haml::Options.new.for_buffer)
    haml_buffer.active = false
    view.instance_variable_set(:@haml_buffer, haml_buffer)
  end
  super
ensure
  old_haml_buffer.active = was_active if old_haml_buffer
  view.instance_variable_set(:@haml_buffer, old_haml_buffer)
end