スクリプト機能に新しい言語としてRubyが対応しました。Ruby向けには公式SDKは提供されておらず、コミュニティベースで作成されているものを利用しています。
今回はそのスクリプトを使ってデータストアにデータを保存するためのコードの書き方を紹介します。
基本形
まずはスクリプトの基本形です。これでアクセスすると空文字列を返すスクリプトになります。
def call(env) req = Rack::Request.new(env) [200, {"Content-Type" => "text/plain"}, ['']] end
NCMBライブラリを読み込む
NCMBライブラリはあらかじめ組み込まれていますので require で読み込めます。ローカルで試す場合には Gemfile に gem 'ncmb-ruby-client'
を追加してください。
require 'ncmb'
初期化する
まずNCMBをアプリケーションキーとクライアントキーで初期化します。
application_key = 'YOUR_APPLICATION_KEY' client_key = 'YOUR_CLIENT_KEY' NCMB.initialize application_key: application_key, client_key: client_key
データストアを呼び出す
データストアは以下のように呼び出します。この例ではMessageクラスを定義しています。
message = NCMB::DataStore.new 'Message'
インスタンスを作る
次にMessageクラスのインスタンスを定義します。
item = message.new
値をセットする
値をセットするのは set メソッドになります。こうした処理はJavaScript SDKに似せています。
item.set('name', req.params["name"])
保存する
最後に保存します。これは save メソッドで行います。
item.save
全体の流れ
サンプルのコードは以下のようなコードになります。
require 'rack' require 'ncmb' def call(env) req = Rack::Request.new(env) application_key = 'YOUR_APPLICATION_KEY' client_key = 'YOUR_CLIENT_KEY' NCMB.initialize application_key: application_key, client_key: client_key name = req.params["name"] message = NCMB::DataStore.new 'Message' item = message.new item.set('name', name) item.save [200, {"Content-Type" => "text/plain"}, [{object_id: item.objectId}.to_s]] end
まとめ
RubyライブラリはJavaScript SDKを参考にして作られています。あまり迷わず使えるのではないでしょうか。JavaScriptだと多くなりがちな非同期処理も、Rubyであればありません。とても簡単に書けますので、JavaScriptが苦手な方はぜひRubyでスクリプト機能を使ってみてください。