module Granite::ProjectorHelpers::ClassMethods

Public Instance Methods

draw_routes(&block) click to toggle source
# File lib/granite/rspec/projector_helpers.rb, line 11
def draw_routes(&block)
  before(:all) do
    routes = Rails.application.routes
    routes.disable_clear_and_finalize = true
    routes.draw(&block)
  end

  after(:all) do
    Rails.application.routes.disable_clear_and_finalize = false
    Rails.application.reload_routes!
    Rails.application.routes.routes.clear_cache!
  end
end
projector(&block) click to toggle source
# File lib/granite/rspec/projector_helpers.rb, line 25
def projector(&block)
  setup_controller(&block)
  setup_view_context
  let(:projector) { controller.projector }
end

Private Instance Methods

controller_class() click to toggle source
# File lib/granite/rspec/projector_helpers.rb, line 35
def controller_class
end
setup_controller() { || ... } click to toggle source
# File lib/granite/rspec/projector_helpers.rb, line 33
def setup_controller
  singleton_class.class_eval do
    def controller_class
    end
  end

  before do
    @controller = yield.controller_class.new
    @controller.class.instance_variable_set(:@controller_path, yield.projector_path)
    @controller.request = @request
  end
end
setup_view_context() click to toggle source
# File lib/granite/rspec/projector_helpers.rb, line 46
def setup_view_context
  before { Granite.view_context = controller.view_context }
  after { Granite.view_context = nil }
end