deployment - samsung - como pasar aplicaciones de un celular a otro por bluetooth
¿Cómo enviar una aplicación Sinatra como una gema y desplegarla? (1)
Ignorando los problemas de ruta por ahora, así es como lo resolví :
La aplicación incluida como gema, tubemp
.
Un Gemfile
para instalar e incluir la aplicación gemificada:
gem ''tubemp''
Un config.ru
que ejecuta la aplicación gemificada, llamada Tubemp
:
require ''rubygems''
require ''bundler/setup'' # To allow inclusion via the Bundle/Gemfile
require ''sinatra'' # Sinatra is required so we can call its "set"
require ''tubemp'' # And include the application
# Set the environment to :production on production
set :environment, ENV[''RACK_ENV''].to_sym
# And fire the application.
run Tubemp
Estos dos archivos son todo lo que se necesita para crear una nueva aplicación en rack, que incluye la aplicación gemificada Sinatra y, como tal, son dispositivos de arranque, por ejemplo, nginx, pasajero o simplemente rackup
.
Tengo una aplicación de sinatra y la he empacado como una gema . Su diseño de archivo se ve más o menos así:
├── bin
│ └── tubemp
├── lib
│ └── tubemp.rb
├── Gemfile
└── tubemp.gemspec
Puedo instalarlo y ejecutarlo bien. Llamar a ruby lib/tubemp.rb
también ruby lib/tubemp.rb
la aplicación, porque Sinatra lo hizo ruby lib/tubemp.rb
propia. tubemp.rb
:
class Tubemp < Sinatra::Application
get ''/'' do
erb :index, :locals => { :title => "YouTube embeds without third party trackers." }
end
end
El binario es realmente simple también. bin/tubemp
:
#!/usr/bin/env ruby
require "tubemp.rb"
Tubemp.run!
Pero ahora quiero implementar esto como Rack-app. O impleméntalo dentro de una aplicación Rack. Al menos debería funcionar bajo Passenger en una máquina de producción.
Con una aplicación genérica es tan simple como agregar una config.ru
en el directorio donde vive la aplicación. Este archivo luego, aproximadamente, incluye y llama a run Tubemp
. Señalando el pasajero de nginx o apache en el directorio donde vive este archivo de rackup y la aplicación, lo inicia. Esto funcionó, hasta el punto en que lo hice una joya; porque ahora ya no tengo "un directorio donde vive la aplicación", otra vez donde gem install tubemp
decide colocar los archivos.
¿Necesito crear una aplicación de wrapper
que agrupe la gema de tubemp y sus dependencias? Si es así, ¿cómo puedo llamar a la gema desde un archivo de rackup
? ¿O voy a esto completamente equivocado?