0
我有一個完美顯示在終端內的進程列表,但我想修改該類,以便消息不僅顯示到STDOUT通道,而且還寫入緩衝區。通過緩衝區在瀏覽器中顯示ruby消息
我知道我必須在文件末尾添加Sinatra方法,以便緩衝區顯示在瀏覽器中。
我的代碼看起來像這樣的時刻(因爲你可以看到,我試圖開始執行緩衝,但是我無法在這裏繼續):
require 'Sinatra'
$buffer = "buffer"
module ImpossibleMachine
@process = []
g = Game.new(STDOUT)
g.start
@process[0] = g.action_1(1)
@process[1] = g.action_2(@process[0])
@process[2] = g.action_3(@process[1])
g.finish
end
# Sinatra route:
get '/' do
# missing sinatra code
end
我真的不明白你試圖用你的全局'$ buffer'變量來實現(這通常是一個壞主意)。將它分配給你的本地'g'只會覆蓋你對剛剛創建的'Game'對象的引用,''start'方法將在''buffer''字符串上被調用,它不會理解它。你爲什麼試圖在全局字符串中存儲任何東西? – Patru
在讀取代碼時,我不知道將其分配給本地g會覆蓋我對「遊戲」的引用。所以現在我可以擺脫這一點。但是我仍然需要全局的'$ buffer'變量。如何修改該類以便將其寫入緩衝區? – samgbelton
ruby中的字符串是可變的,因此您可以使用'+ ='或'<<'以合理透明的方式添加到它們。這仍然沒有回答你想用'$ buffer'做什麼的問題。當然,你可能只是把它輸出到你的「get」中,但那不會是重點。 – Patru