class Sinatra::Base

def condition(name = "#{caller.first[/`.*'/]} condition", &block)

block returns false.
Add a route condition. The route is considered non-matching when the
def condition(name = "#{caller.first[/`.*'/]} condition", &block)
  @conditions << generate_method(name, &block)
end