lib/getto/roda/entry_point.rb in getto-roda-1.0.0 vs lib/getto/roda/entry_point.rb in getto-roda-1.1.0
- old
+ new
@@ -17,13 +17,31 @@
@app = app
@request = request
@config = config
@params = params
- @request_logger = request_logger
- @exception_notifier = exception_notifier
+ @request_logger = check_signature(:request_logger, request_logger, [
+ :debug,
+ :info,
+ :warn,
+ :error,
+ :fatal,
+ ])
+ @exception_notifier = check_signature(:exception_notifier, exception_notifier, [
+ :notify_exception,
+ ])
@logger = Getto::Roda::Logger.new
+ end
+
+ private def check_signature(name,obj,methods)
+ obj.tap{
+ methods.each do |method|
+ unless obj.respond_to?(method)
+ raise ArgumentError, "argument type error: #{name} is not respond_to #{method}"
+ end
+ end
+ }
end
attr_reader :error, :time,
:app, :request,
:config, :params, :account,