lib/contour/fixes/omniauth.rb in contour-0.8.3 vs lib/contour/fixes/omniauth.rb in contour-0.8.4

- old
+ new

@@ -1,8 +1,43 @@ require 'omniauth' # Overwriting methods from Rack module OmniAuth + + # class Builder updates for Rack 1.4.0 + class Builder + def initialize(app = nil,&block) + @use, @map, @run = [], nil, app + instance_eval(&block) if block_given? + end + + def on_failure(&block) + OmniAuth.config.on_failure = block + end + + def configure(&block) + OmniAuth.configure(&block) + end + + def provider(klass, *args, &block) + if klass.is_a?(Class) + middleware = klass + else + begin + middleware = OmniAuth::Strategies.const_get("#{OmniAuth::Utils.camelize(klass.to_s)}") + rescue NameError + raise LoadError, "Could not find matching strategy for #{klass.inspect}. You may need to install an additional gem (such as omniauth-#{klass})." + end + end + + use middleware, *args, &block + end + + def call(env) + to_app.call(env) + end + end + module Strategies class LDAP # include OmniAuth::Strategy def initialize(app, options = {}, &block) \ No newline at end of file