Sha256: 57aee158ac8327232dc4b87ddfe214d82df4c34c6ba8a7adffb136fffa455299

Contents?: true

Size: 1.47 KB

Versions: 7

Compression:

Stored size: 1.47 KB

Contents

begin
  require 'rubygems'
  require 'active_support'
  require 'action_controller'
  require 'action_view'
  action_view_included = true
rescue LoadError
  action_view_included = false
end

if action_view_included
  class ActionView::Base
    alias_method :old_concat, :concat unless instance_methods.include? "old_concat"
    alias_method :old_form_tag, :form_tag unless instance_methods.include? "old_form_tag"
  end
  
  module Haml
    module Helpers
      # This module overrides various helpers in ActionView to make them
      # work more effectively with Haml. It's not available unless ActionView
      # is installed.
      #
      #--
      # Methods in this module should be nodoc'd.
      #++
      module ActionViewMods
        def self.included(othermod) # :nodoc:
          othermod.class_eval do
            action_view(true)
            alias_method :capture_erb_with_buffer, :capture_haml_with_buffer
          end
        end
        
        def concat(string, binding = nil) # :nodoc:
          buffer.buffer.concat(string)
        end
        
        def form_tag(url_for_options = {}, options = {}, *parameters_for_url, &proc) # :nodoc:
          if block_given?
            oldproc = proc 
            proc = bind_proc do |*args|
              concat "\n"
              tab_up
              oldproc.call(*args)
              tab_down
            end
          end
          old_form_tag(url_for_options, options, *parameters_for_url, &proc)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
haml-1.0.4 lib/haml/helpers/action_view_mods.rb
haml-1.0.3 lib/haml/helpers/action_view_mods.rb
typo-4.1.1 vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb
typo-5.0.1 vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb
typo-5.0.2 vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb
typo-4.1 vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb
typo-5.0 vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb