Sinatra READMEには、次の例を含む Custom Route Matchersというセクションがあります。
class AllButPattern
Match = Struct.new(:captures)
def initialize(except)
@except = except
@captures = Match.new([])
end
def match(str)
@captures unless @except === str
end
end
def all_but(pattern)
AllButPattern.new(pattern)
end
get all_but("/index") do
# ...
end
これがどのように機能するかを教えてくれる人はいますか? 私がよくわからないのは、例にMatch
構造体がある理由と何でcaptures
あるかです。ユーザーは@captures
インスタンス変数を設定できません@except
。1 つだけです。では、どのようにcaptures
使われるのでしょうか?