1

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使われるのでしょうか?

4

1 に答える 1