オレオレ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みたいに共通のルールが整備されてないので大変😇)