sinatraのアプリのソースファイルを分割する

sinatraのサイトのREADME
http://sinatrarb.com/intro-ja.html

config.ruを用いたクラッシックスタイルアプリケーションの使用

アプリケーションファイルと、

# app.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

対応するconfig.ruを書きます。

require './app'
run Sinatra::Application

を参考に書いてみた。


同一フォルダに、以下の5つのファイルを作成する。
(foo.rb)

require 'sinatra'

get '/foo' do
  "foo\n"
end


(bar.rb)

require 'sinatra'

get '/bar' do
  "bar\n"
end


(baz.rb)

require 'sinatra'

get '/baz' do
  "baz\n"
end


(not_found.rb)

require 'sinatra'

not_found do
  "Not Found\n"
end


(config.ru)

require './foo'
require './bar'
require './baz'
require './not_found'

run Sinatra::Application


こんな書き方でいいのだろうか?


実行してみる。


アプリの起動

$ rackup -p 4567
[2021-08-25 19:56:25] INFO  WEBrick 1.6.0
[2021-08-25 19:56:25] INFO  ruby 2.7.2 (2020-10-01) [x86_64-linux]
[2021-08-25 19:56:25] INFO  WEBrick::HTTPServer#start: pid=29056 port=4567


curlでアクセスする

$ curl http://localhost:4567/foo
foo
$ curl http://localhost:4567/bar
bar
$ curl http://localhost:4567/baz
baz
$ curl http://localhost:4567/foobar
Not Found

Rack

第23回 Rackとは何か(1)Rackの生まれた背景
https://gihyo.jp/dev/serial/01/ruby/0023
第24回 Rackとは何か(2)Rackの使い方
https://gihyo.jp/dev/serial/01/ruby/0024
第25回 Rackとは何か(3)ミドルウェアのすすめ
https://gihyo.jp/dev/serial/01/ruby/0025


Rack入門 概念編 (1/3)
https://qiita.com/nishio-dens/items/e293f15856d849d3862b
Rack入門 Rack Application編 (2/3)
https://qiita.com/nishio-dens/items/852d7604b34d20514a70
Rack入門 Rack Middleware編 (3/3)
https://qiita.com/nishio-dens/items/8011842f50995f46eafe