module ViewExampleGroupBehaviour

def assign(name, value)

def assign(name, value)
  assigns[name] = value
end

def assigns

def assigns
  @assigns ||= {}
end

def controller

def controller
  @controller ||= begin
                    controller = ViewExampleController.new
                    controller.controller_path = controller_path
                    controller.request = ActionDispatch::Request.new(Rack::MockRequest.env_for("/url"))
                    controller
                  end
end

def controller_path

def controller_path
  parts = file_to_render.split('/')
  parts.pop
  parts.join('/')
end

def file_to_render

def file_to_render
  running_example.example_group.description
end

def method_missing(selector, *args)

def method_missing(selector, *args)
  if Rails.application.routes.named_routes.helpers.include?(selector)
    controller.__send__(selector, *args)
  else
    super
  end
end

def render

def render
  @response = view.render :file => file_to_render
end

def response

def response
  @response
end

def view

def view
  @view ||= begin
              view = ActionView::Base.new(ActionController::Base.view_paths, assigns, controller)
              view.extend(ActionController::PolymorphicRoutes)
              view.extend(ViewExtension)
              view
            end
end