In Sinatra calls to methods like get, post, put, and delete are called routes. They take a path, and a block that handles a request.

What’s up with that term?

The request is being picked up by the webserver, and then routed to a piece of code that handles the request, and specifies the response. They’re like the info desk at a shopping mall: You (as an HTTP request) walk up to them, and tell them GET /something. They’ll route (send) you to a certain shop on a certain floor where you can find what you’re after.

So, this would be three Sinatra routes:

get "/" do
  "OMG, hello Ruby Monstas!"

get "/signup" do
  "Here you can sign up for the next beginners course."

post "/signin" do
  # do something to sign in the user

When a request comes in Sinatra will look at the request method and path, and match it against the first route: