我正在寫一個紅寶石寶石,我希望能夠區分是否在http服務器下使用gem(即作爲rails框架的一部分被調用)或者如果ruby gem是從獨立腳本調用的,比如ruby test_script.rb 。有可能確定ruby代碼塊是在http服務器下執行還是作爲獨立腳本執行?
我知道我可以檢查某些ENV變量,如'REMOTE_ADDR','HTTP_REFERER'以決定它是源自Web應用程序還是獨立腳本。但顯然它不會是正確的,所以只是想知道是否有更好的方法來檢查是否在http服務器下執行ruby代碼塊。
感謝
'UNDER_RAILS = Kernel.const_defined? 'Rails'' – mudasobwa
是的,我可以這樣做,但那隻針對rails而已,其他框架呢?因爲其他框架肯定不會使用這個變量,因此正在尋找更適用於大多數框架的通用解決方案,所以每次有新框架時都不必更新代碼庫。感謝 –