スクリプト:Rubyスクリプトの作成
スクリプト作成時の注意事項につきましては、技術仕様をご確認ください。
RubyスクリプトにはRack互換のcallメソッドを宣言してください。
callメソッドは、引数としてenv(リクエスト情報が格納されたHash)のみを受け取ります。
callメソッドからは「HTTPステータスコード(Integer)」「HTTPヘッダ(Hash)」「HTTPレスポンスボディ(Array of String)」からなる配列を返却するようにします。
def call(env)
[200, {"Content-Type" => "text/plain"}, ["hello", "\n", "world"]]
end
envハッシュの内容については、File: SPEC — Documentation for rack/rack (master)に記載されている通りです。
スクリプトをローカル環境でデバッグする
Rubyがインストールされている環境で、スクリプトをデバッグする方法について解説します。
RubyのRackライブラリを使って簡単なWebサーバーを作成し、そこにデバッグするスクリプトを組み込みます。
まず、新しくRubyプロジェクト用のディレクトリを用意し、以下のGemfileを作成します。
Gemfile:
source "https://rubygems.org"
gem "rack"
rackは必須ですが、それ以外のgemに関しては、こちらで使用できるものを確認しつつ、必要なものを記載してください。
Gemfileが作成できたら、bundle installで依存ライブラリのインストールを行います。
$ bundle install
次に、config.ruを作成します。
config.ru:
class TestScript
PATH = "test_script.rb"
CODE = File.read(PATH)
eval(CODE, binding, fname=PATH)
end
map("/2015-09-01") do
run TestScript.new
end
また、config.ruと同じ場所にデバッグするスクリプトを用意します。
(ここでは冒頭に掲載したスクリプトを書き込んでみます。)
$ vim test_script.rb
準備ができたらrackupコマンドでサーバーを起動してください。
$ rackup
[2018-03-27 18:05:48] INFO WEBrick 1.3.1
[2018-03-27 18:05:48] INFO ruby 2.3.1 (2016-04-26) [x86_64-linux-gnu]
[2018-03-27 18:05:48] INFO WEBrick::HTTPServer#start: pid=19383 port=9292
curlコマンドを利用してスクリプトを呼び出すことで、作成中のスクリプトが返す結果を受け取ることができます。
$ curl http://localhost:9292/2015-09-01/
hello
world