本文へジャンプします。

ニフクラ ユーザーガイド

スクリプト: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

推奨画面サイズ 1024×768 以上