Aplicaciones Modulares

Las aplicaciones normales Sinatra se denominan aplicaciones clásicas sinatra y viven en Sinatra::Application, que es una subclase de Sinatra::Base.

En las aplicaciones clásicas Sinatra extiende la clase Object en el momento de cargarse lo que, en cierto modo, contamina el espacio de nombres global. Eso dificulta que nuestra aplicación pueda ser distribuída como una gema y que se puedan tener varias aplicaciones clásicas en un único proceso.

Una aplicación Sinatra se dice una aplicación modular sinatra si no hace uso de Sinatra::Application, renunciando al DSL de alto nivel proveído por Sinatra, sino que hereda de Sinatra::Base.

Podemos combinar una aplicación clásica con una modular, pero sólo puede haber una aplicación clásica por proceso.

[~/sinatra/sinatra-simple(master)]$ cat app.rb 
require 'sinatra/base'

class App < Sinatra::Base
  get '/' do
    "hello get!"
  end
end

[~/sinatra/sinatra-simple(master)]$ cat config.ru 
require './app'

run App

Casiano Rodriguez León 2015-06-18