Sha256: 2334329b37a8847b73316adbee8d9fd3110e158bfe26d38dd8c34780726f048c

Contents?: true

Size: 962 Bytes

Versions: 3

Compression:

Stored size: 962 Bytes

Contents

module ActionView #:nodoc:
  module Helpers #:nodoc:
    module NestedLayoutsHelper

      # Wrap part of the template into layout.
      # All layout files must be in app/views/layouts.
      def inside_layout(layout, &block)
        layout_template = @template.view_paths.find_template(layout.to_s =~ /layouts\// ? layout : "layouts/#{layout}", :html)
        @template.instance_variable_set('@content_for_layout', capture(&block))
        concat( layout_template.render_template(@template) )
      end

      # Wrap part of the template into inline layout.
      # Same as +inside_layout+ but takes layout template content rather than layout template name.
      def inside_inline_layout(template_content, &block)
        @template.instance_variable_set('@content_for_layout', capture(&block))
        concat( @template.render(:inline => template_content) )
      end
    end
  end
end

ActionView::Base.send :include, ActionView::Helpers::NestedLayoutsHelper

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
nested_layouts-0.1.3 lib/nested_layouts.rb
nested-layouts-0.1.2 lib/nested_layouts.rb
nested-layouts-0.1.1 lib/nested_layouts.rb