6. Redis? Let’s do it!
# gemfile
gem 'ohm'
# app.rb
require 'ohm'
Ohm.redis = Redic.new('redis://127.0.0.1:6379')
get '/' do
Ohm.redis.call 'SET', 'Foo', 'Bar'
Ohm.redis.call 'GET', 'Foo'
end
7. WTF!? WHAT IS REDIS?
https://redis.io/documentation
https://redis.io/topics/quickstart
8. How to surprise your mentors?
Full guide:
https://www.oreilly.com/library/view/sinatra-up-and/9781449306847/ch04.html
http://rusrails.ru/rails-routing
https://blog.carbonfive.com/2013/06/24/sinatra-best-practices-part-one/
https://blog.carbonfive.com/2013/06/28/sinatra-best-practices-part-two/
9. Small guide
Your Architecture should look like
PLEASE! DON’T WRITE YOUR SINATRA
APPLICATION IN SINGLE FILE. IT SHOULD BE
MODULAR!
12. How to run it?
# start config.ru
require 'sinatra/base'
Dir.glob('./{helpers,controllers}/*.rb').each { |file|
require file }
map('/users') { run UsersController }
map('/') { run ApplicationController }
# end config.ru
# terminal
shotgun config.ru --server=thin
13. Templates? YES!
Full info: http://sinatrarb.com/intro.html , ctrl+f Templates
gem ‘slim’
# application_controller.rb
class ApplicationController
set :views, File.expand_path(File.join( __FILE__, '../../views'))
…
end
# users_controller.rb
get '/' do
@some_variable = 123
slim :'/users/index'
end