# File lib/warden/strategies.rb, line 6 def add(label, strategy = nil, &block) strategy ||= Class.new(Warden::Strategies::Base) strategy.class_eval(&block) if block_given? unless strategy.method_defined?(:authenticate!) raise NoMethodError, "authenticate! is not declared in the #{label.inspect} strategy" end unless strategy.ancestors.include?(Warden::Strategies::Base) raise "#{label.inspect} is not a #{base}" end _strategies[label] = strategy end