Hi,

The strength of rack is that it's a common standard.  A rack application must respond to call, and receive an argument, the environment.

If you were to create middleware with a different entry method, how would the calling middleware know what to call?  The standard says to call the "call" method, thus, all middleware know how to execute all middleware / applications.  By changing the names of methods, you're not not able to call it.

If your application absolutely _must_ implement a call method, then you'll need to wrap it.  If a module you're including defines a call method, then you'll need to divorce that from the actual middleware container.

Your middleware can be a very simple wrapper around your object, but in order to work the interface for rack must be preserved.

HTH
Daniel

On 20 February 2010 09:22, Guoliang Cao <gcao99@gmail.com> wrote:
Hi,

I'm relatively new here. Please forgive me if this has been asked
before.

I'm wondering if it is possible to name 'call' differently in my
middleware. Because 'call' is a relatively popular name and in case it
is already used in one of the modules I included, I have to create a
wrapper for my middleware. It'll be perfect if I can do something like
this:

class MyMiddleware
 def rack_call_method
    :my_rack_call
 end

 def my_rack_call env
    # my middleware implementation goes here
 end
end

Thank you.

Cao