このプログラムはブラウザ側で入力したRubyプログラムのテキストデータと標準入力のテキストデータを用いてプログラムを実行し、標準出力と標準エラー出力とプロセスの終了ステータスの値をブラウザで表示させるSinatraアプリケーションです。
無限ループとかしても大丈夫なようにTimeoutを5秒でsetしています。
研究の参考にしてください。
このプログラムは不完全です。
File.openを使用されてもファイルの新規作成・書き換えを防ぐことは現状できません!
それ以外にも未検知の問題があるかもしれません。
くれぐれも実行する際には十分に注意を払ってください。
このリポジトリをクローンする
% git clone https://www.yatex.org/gitbucket/git/Fumichan/sinatra_ruby_editor.git
クローンしたディレクトリ下に移動
% cd sinatra_ruby_editor
bundlerをインストールする
% gem install bundler
Gemfileに以下のものがあることを確認
source 'http://rubygems.org' # 以下の3つのgemを使用(loggerは無くても可) gem 'sinatra' gem 'sinatra-reloader' gem 'logger'
bundle install
をする
% bundle install
app.rbを実行する(オプションは任意)
# -o addr → set the host (default is localhost) # -p port → set the port (default is 4567) % ruby app.rb
ブラウザから以下のアクセス
#host, portを変更した人は変更したURLに置き換えてアクセス http://localhost:4567
このプログラムは 東北公益文科大学16期生 佐藤文哉 が著作権を保有しています。このプログラムの入手・実行・改変・再配布はフリーです。ただしこのプログラムの取り扱いに伴い生じたいかなる事象に対しても著作権者は一切の責任を負いかねますのでご了承ください。