背景
Sinatraでサーバー起動したかったんだが、
rackup
や、bundle exec ruby ~~~
で起動する方法しかググれなかった、、、
結論
Rakefileのタスクの中などで、Sinatra::Baseのサブクラスのrun!
を呼ぶ
option = {port: 12345}
ClassOfSinatraServer.run!(option)
経緯と詳細
Sinatraのドキュメントをざっと読んだんだが、
「モジュラーアプリケーションの提供」あたりにいくつか起動方法が書いてあるんだが、
rubyスクリプトで起動する方法がずばり書いてない、、、(と思う、、)
書いてあったが、わからんかった。(run!
メソッドがprivateなんかと思った)
その他ググったりして、
以下の感じで一応起動したので、メモ作成
Gemfile
source "https://rubygems.org"
gem 'sinatra'
the_server.rb
require 'sinatra/base'
class TheServer < Sinatra::Base
get '/' do
'Hello, Sinatra'
end
end
Rakefile
require './the_server.rb'
task default: :sinatra_server
desc 'start Sinatra server'
task :sinatra_server do
option = {
port: 12345
}
TheServer.run!(option)
end
上記3ファイルを同じフォルダにおいて、そこのフォルダをカレントにして
> bundle
> rake
で起動する!