mBaaSのスクリプト機能がRubyに対応しました。JavaScriptの非同期な仕組みは苦手で、Rubyが好きという方にとってはぴったりな機能です。
公式ドキュメントにもローカルでテスト実行する方法について書かれていますが、ファイル名などが固定化されてしまっていたりするので、もう少し簡単に使える方法を紹介します。
必要なファイル
必要なファイルは次の3つです。
$ tree . . ├── Gemfile ├── config.ru └── register.rb // <- 作成しているスクリプト 0 directories, 3 files
Gemfileについて
Gemfileは公式ドキュメントと同じです。
source "https://rubygems.org" gem "rack"
記述後 bundle
コマンドを実行してください。bundlerがインストールされていない場合は gem install bundler
を実行してください。
config.ruについて
config.ruの内容は次の通りです。
class Script code = $stdin.readlines # デバッグするスクリプトを読み込む eval(code.join("\n")) end # 読み込んだスクリプトをハンドラーとして定義 map("/") do run Script.new end
実行について
実行は次のようにします。
$ rackup . < register.rb
つまり、作成しているスクリプトをrackupコマンドに標準入力として渡しています。その内容をそのままevalして実行します。
この場合、スクリプトのファイル名が変わっても使えますし、複数のスクリプトを切り替えるのも簡単です。
呼び出し
GET http://localhost:9292/
であったり POST http://localhost:9292/
でアクセスできます。 GETであればWebブラウザからアクセスすれば良いですし、POSTの場合はcurlコマンドで良いでしょう。
curl 'http://localhost:9292/' \ --data 'name=sample' \ -XPOST
まとめ
スクリプトはクラウド上で実行されるのでエラー時のデバッグが非常にやりづらいです。しかも実行回数や時間に制限があります。そのため、ローカルで十分にテストしてからアップロードするのが良いでしょう。複数ファイルを効率的に切り替えて、繰り返しテストできるようにしましょう。