I have a Sinatra app setup where most of the logic is performed inside of various classes, and the post
/get
routes instantiate those classes and call their methods.
I'm thinking about whether putting the post
/get
route handlers inside of the classes themselves would be a better structure.
In any case, I'd like to know if it is possible. So for instance:
class Example
def say_hello
"Hello"
end
get '/hello' do
@message = say_hello
end
end
Without modification to the above, Sinatra will say there is no method say_hello
on the SinatraApplication
object.
You might want to use Sinatra Helpers.
You just need to inherit from
Sinatra::Base
:You can run your app with
Example.run!
.If you need more separation between parts of your application, just make another Sinatra app. Put shared functionality in model classes and helpers, and run all your apps together with Rack.
config.ru:
Install Thin, and run your app with
thin start
.