Closed skymountain closed 9 years ago
使い方を……
今手直ししてる最中なのでしばしお待ち下さい
書き直し終わりました.使い方は config/example/master.yml に書いてある通り
interact:
default:
run: # commands to start an interpreter
sandbox: "URI of interactor.cgi."
を設定に加えてください.すると su としてログインしているときに限り /record の status header に 「対話」タブが追加され,そのタブで入力した文字列が sandbox で立ち上がったインタプリタに投げられます.
例えば OCaml だと
interact:
default:
run:
- ocaml
sandbox: "http://localhost:3000/sandbox/interactor.cgi"
とすればとりあえずインタプリタが立ち上がります.もし提出されたファイルをロードしたければ
interact:
default:
run:
- ocamlbuild -I src -lib str -no-hygiene main.byte
- cd _build
- ocaml
sandbox: "http://localhost:3000/sandbox/interactor.cgi"
と書き #load で .cmo ファイルをロードすれば使えるようになります.
そういえば、sandbox側でもbundleすることになったのなら、sandbox用のcgiで7z使っているところをrubyzipに置き換えてはどうでしょうか?
そうですね,これとは別件なので issue を立てます.
とりあえず動作は確認しました、コードも一通り見て大丈夫そうでしたけど、自信ないのでほかの人待ちです。
:bow:
inputパラメータは必須ではないので、ここで nil が渡る可能性があると思うんですが、 nil を渡してしまっても大丈夫なんでしょうか?
大丈夫なようなです.が,nil だったら空文字にした方が意図がはっきりするのでそうした方がいいでしょうね.
他のAPIと同様に渡せるパラメータの一覧のコメントだけでもあると便利な気がします。 (とりあえず他のAPIの Usage の行相当のもので十分だとは思いますが
今書いてあるのだとどこら辺が不十分でしょ?(admin_interact.rbですよね?)
今書いてあるのだとどこら辺が不十分でしょ?(admin_interact.rbですよね?)
sandbox/interactor.rb の方です。 こっちもrackアプリケーションに見えたので。 わかりづらくてすいません :sweat_drops:
sandbox/interactor.rb の方です。 こっちもrackアプリケーションに見えたので。
なるほど,了解です.
ファイル提出してない人のところでこの機能を使うと500エラーになって、デバッグメッセージが返ってくるのですが、仕様ということでいいですか?
ファイル提出してない人のところでこの機能を使うと500エラーになって、デバッグメッセージが返ってくるのですが、仕様ということでいいですか?
エラー対応しました.
script/helper.rb の追加とそれに伴う script/test の変更は別コミットにしてもらえると見通しが良くなるかと思います。
エスケープとコミットの分割はやりました.
:+1: :+1: :+1:
:bow: :pray: :bow: :pray: :bow:
intepreter との簡易な対話webインターフェイスを実装しました. まだ admin 権限をもつ場合だけタブを表示する,test系の機能の共通化などの実装すべきことは残っていますが,とりあえず PR 出しておきます.現時点でのコードレビューももちろん歓迎します.