Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where do I put code in Sinatra (ruby web framework) that I just want to execute once?

Tags:

ruby

sinatra

I don't know if this is a ruby question or a Sinatra question, because I'm new to both. The following code does not work, and I understand why, because the first my_variable is local to its block. I just don't know the syntax for getting it right.

require 'rubygems'
require 'sinatra'

configure do
    my_variable = "world"
end

get '/' do
    "Hello " + my_variable
end

EDIT1 - the following works, but then I guess I'm confused about the proper purpose of the configure block.

require 'rubygems'
require 'sinatra'

my_variable = "world"

get '/' do
    "Hello " + my_variable
end
like image 514
Corey Trager Avatar asked Nov 28 '09 14:11

Corey Trager


2 Answers

require 'rubygems'
require 'sinatra'

set :my_variable, "world"

get '/' do
  "Hello " + settings.my_variable
end
like image 89
Simone Carletti Avatar answered Sep 27 '22 21:09

Simone Carletti


Configure block is just to app configuration related. If that's what it is, you should encapsulate it proper:

require 'sinatra'

configure do
  set :my_option, "world"
end

get '/' do
  "Hello #{options.my_option}"
end
like image 29
zanst Avatar answered Sep 27 '22 21:09

zanst