[英]What is the purpose of `@ins << lambda` in this code?
在下面列出的第一种方法中,use方法对我来说看起来像:ins是一个实例变量,而attr是一种为:ins提供getter和setter的方法。 我不确定@ins << lambda
是做什么的。
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
<<
是数组推送运算符。 因此,这@ins
lambda推送到称为@ins
的数组(或至少类似数组的东西)上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.