Sha256: ad727c7718e93f8056c921b2bd89291dd1652a45b620f16d95efabe9f6c26bf5

Contents?: true

Size: 663 Bytes

Versions: 1

Compression:

Stored size: 663 Bytes

Contents

require "active_support/concern"
require "render_with_view/version"
require "render_with_view/half_open_struct"

module RenderWithView
  extend ActiveSupport::Concern

  class View < HalfOpenStruct
  end

  included do
    helper_method :view

    def view
      raise ViewNotDefinedError, "View not defined" if !@__view__

      @__view__
    end

    def render_with_view(*args)
      if !args.first.is_a?(Hash)
        tmpl = args.shift
      else
        tmpl = action_name
      end

      view = args.shift
      opts = args.shift || {}

      # save to ivar for testing purposes
      @__view__ = View.new(view)

      render(tmpl, opts)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
render_with_view-0.2.0 lib/render_with_view.rb