Mock/Stub CanCan and Devise in test/dummy app
# lib/katalog/engine.rb
module Katalog
  class Engine < ::Rails::Engine
    isolate_namespace Katalog
    config.to_prepare do
      # Katalog can use CanCan to restrict access but it is optional.
      # If CanCan is not present load this module that stubs the methods we would need.
      ApplicationController.send :include, Katalog::CanCan unless Object.const_defined?('CanCan')
    end
  end
end
# lib/katalog/cancan.rb
# Katalog can use CanCan to restrict access but it is optional.
# If CanCan is not present this module is added to the host apps application
# controller to stubs the methods we would need.
# There is a gits "cancan load_and_authorize_resource mock.rb" check that out 
# if you need "load_and_authorize_resource" too.
module Katalog
  module CanCan
    extend ActiveSupport::Concern
    module ClassMethods
      def authorize_resource(*args)
        true
      end
    end
  end
end
# test/dummy/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  # Stub Devise current user method so we don't need to have Devise installed in
  # the dummy app.
  def current_user
    User.find_or_create_by_id(1)
  end
end