Вопрос

I have a skeleton Padrino (0.10.7) project, with pretty much no code. I am trying to insert a middleware in boot.rb:

##
# Add your after (RE)load hooks here
#
Padrino.after_load do
    DataMapper.finalize
    Padrino.use MyClass      #Line (1) added by me
end

Padrino.load!

In MyClass,

class MyClass
    def initialize arg
    @arg = arg
    end
end

If I try to use thin server (1.5.x), I get this exception (only when I insert my middleware):

Uncaught exception: app required

Same works fine with builtin webrick.

Any idea on how to make it work with thin?

Это было полезно?

Решение

Never mind, found it. Basically, you need to define the call (env) method too, otherwise it wont even start the server. This is what minimum is required from a middleware:

class MyClass
    def initialize app
        @app = app
    end
    def call env
        @app.call env
    end
end
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top