Dans la première méthode listée ci-dessous, la méthode use, elle me ressemble: ins est une variable d'instance et attr est une méthode qui fournit des getters et setters pour: ins. Ce que je ne suis pas sûr, c'est ce que fait le @ins << lambda
.Quel est le but de `@ins << lambda` dans ce code?
module Rack
class Builder
attr :ins
def use(middleware, *args, &block)
middleware.instance_variable_set "@rack_builder", self
def middleware.rack_builder
@rack_builder
end
@ins << lambda { |app|
middleware.new(app, *args, &block)
}
end
def run(app)
klass = app.class
klass.instance_variable_set "@rack_builder", self
def klass.rack_builder
@rack_builder
end
@ins << app #lambda { |nothing| app }
end
def leaf_app
ins.last
end
end
end