2015-10-03 61 views
0

我有一個用Ruby編寫的簡單腳本,可以啓動和停止可執行文件。我想在簡單的網頁上有兩個按鈕,啓動和停止,然後在託管頁面的計算機上執行代碼。什麼是最簡單/最輕的做法?從網絡控制Ruby腳本

+0

也許,您將在客戶端使用JavaScript,並且我認爲,出於安全原因,通過設計,客戶端上的JavaScript無法在主機上執行代碼。所以,一個靜態網站不能這樣做;你需要一個網絡應用程序來做到這一點。一個簡單的框架是Sinatra。 – sawa

+0

訪問文件系統並做任何你想做的事情。對於php你可以寫'',?php系統('ruby test.rb',$ output);' – marmeladze

回答

1

我會建議使用Sinatra進行這樣的小任務。讓我們的Gemfile開始,如果你使用捆綁:

source 'https://rubygems.org' 
gem 'sinatra' 
gem 'slim' 

然後只需運行「捆綁安裝」或只是手動安裝這些寶石。讓我們寫我們非常微小的Web服務器上,創建myapp.rb有以下內容:

require 'sinatra' 

get '/' do 
    slim :index 
end 

post '/start' do 
    puts "Starting..." 
    redirect '/' 
end 

post '/stop' do 
    puts "Stopping..." 
    redirect '/' 
end 

這基本上爲路徑「/」,「/啓動」,「/停止」創建三個處理程序。 「/」呈現slim html模板(我們即將到達),「/ start」和「/ stop」現在只需將文本打印到STDOUT並將您重定向回「/」即可。讓我們創建一個文件夾「意見」,並在其文件「的意見/ index.slim」:

doctype html 
html 
    head 
    title Simple Ruby web interface 

    body 
    form method="post" action="/start" 
     input type="submit" value="Start" 
    form method="post" action="/stop" 
     input type="submit" value="Stop" 

這將按鈕來呈現爲HTML兩種形式,這將張貼到/啓動/停止間上提交。你可以只用

ruby myapp.rb 

這運行將開始在端口4567 Web服務器只是去爲localhost:4567,然後按按鈕。現在,您可以添加需要執行的操作,而不是放置「正在開始...」並放置「正在停止...」並自定義這個非常基本的Web應用程序外觀。