オレオレWebフレームワークのv0.1.2をリリースしました🥳
今回のアップデートで、unicornやpumaといったRack::Handlerに対応したアプリケーションサーバーであれば好きなものを使えるようになりました🙌
変更方法は簡単でGemfileにアプリケーションサーバーのgemを追加してMakanai::Settingsの値を変更してあげるだけです👍
pumaを使う場合は、Gemfileにpumaを追加して、
gem 'puma'
下記のようにhandlerにpumaを指定して、
require 'makanai/main' Makanai::Settings.rack_app_config = { handler: :puma, host: '0.0.0.0', port: '8080' } router.get '/' do 'Hello Makanai!' end
起動してあげるだけです🙆♂️
$ ruby app.rb Puma starting in single mode... * Version 4.3.1 (ruby 2.7.0-p0), codename: Mysterious Traveller * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:8080 Use Ctrl-C to stop
unicornを使う場合は、素のunicornがRack::Handlerに対応してないので、unicorn-railsを使うと良い感じに起動できます🦄
gem 'unicorn-rails'
require 'makanai/main' require 'unicorn-rails' Makanai::Settings.rack_app_config = { handler: :unicorn, host: '0.0.0.0', port: '8080' } router.get '/' do 'Hello Makanai!' end
$ be ruby app.rb I, [2020-02-23T18:36:35.750377 #4936] INFO -- : listening on addr=0.0.0.0:8080 fd=13 I, [2020-02-23T18:36:35.750546 #4936] INFO -- : worker=0 spawning... I, [2020-02-23T18:36:35.751820 #4936] INFO -- : master process ready I, [2020-02-23T18:36:35.752928 #4950] INFO -- : worker=0 spawned pid=4950 I, [2020-02-23T18:36:35.753498 #4950] INFO -- : worker=0 ready
仕組みとしてはhandlerで指定した値でRack::Handler.getを利用してRack::Handlerに対応したサーバーのClassを取得して起動しているという感じですね👀
Rack便利!!✨
(次は複数のDBMSに対応しようと思っているのですがRackみたいに共通のルールが整備されてないので大変😇)