Top Sinatra framework interview questions and answers
1. What is Sinatra?
Sinatra is web application framework for rapidly building applications in Ruby.Sinatra is a domain specific language or DSL which means it is designed from the ground up to build applications with minimal efforts.It is written in Ruby and an alternative to Ruby web application frameworks such as Ruby on Rails, Merb, Nitro, and Camping.
2. How to use sessions in Sinatra?
By default, Sessions are disabled in Sinatra.You need to enable them and then use the session hash from routes and views. Below code shows how to enable, set or get a session in Sinatra.
//Enabling Session enable :sessions get '/foo' do // setting session value session[:message] = 'Hello World!' redirect to('/bar') end get '/bar' do // getting session value session[:message] # => 'Hello World!' end
3. How do you flash a session message in Sinatra ?
Rack:: Flash is used to flash a message in Sinatra.
Example Usage :
require 'sinatra/base' require 'rack-flash' class MyApp < Sinatra::Base enable :sessions use Rack::Flash post '/set-flash' do # Set a flash entry flash[: notice] = "Thanks for signing up!" # Get a flash entry flash[:notice] # => "Thanks for signing up!" # Set a flash entry for only the current request flash.now[: notice] = "Thanks for signing up!" end end
4. How do I get the “route” for the current page?
The request object probably has what you’re looking for:
get '/hello-world' do request.path_info # => '/hello-world' request.fullpath # => '/hello-world?foo=bar' request.url # => 'http://example.com/hello-world?foo=bar' end