我想創建ruby應用程序(不是rails)。這是一個控制檯應用程序,它需要保存一些數據。我使用pstore作爲數據庫。我想將這個應用程序部署爲一個寶石。帶持久數據的Ruby Gems
我的問題是:我的數據在哪裏?
目前我已經創建了一個數據目錄作爲兄弟的bin目錄在一個標準的寶石佈局。因此,我認爲,在部署之後,寶石會將其數據存儲在「內部」。但是當我做一個本地gem安裝測試時,我發現數據被本地存儲到項目文件中,而不是在gems目錄中的某處。
當然,這可能是我誤解了「rake install_gem」在做什麼。另外,我隱約擔心,如果我需要sudo來安裝gem,它實際上能夠在gem目錄中「在它自己內部」創建數據文件。
有人可以澄清這一點嗎?
謝謝。 John Schank
@makevoid - 感謝您的回覆。這是我的主要腳本的全部內容。在/ bin目錄...(我把它添加到主要的問題,因爲我不熟悉如何格式化評論內容 - 和粘貼代碼看起來可怕
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
require 'timesheet'
begin
command_hash = TimesheetParser.parse
store = YAML::Store.new("data/time_entries.yaml")
tl = TimeLog.new(store)
ts = Timesheet.new(tl)
ts.process(command_hash)
rescue Exception => e
raise if command_hash[:debug]
puts e.message
你能打印出來,並告訴我們你的PStore文件正在保存加載的路徑嗎?這是否是您的主要寶石加載路徑? (* gem env *弄明白了) – makevoid 2010-01-02 09:18:09
我在原帖中添加了詳細信息,因爲評論似乎沒有那麼豐富的編輯功能 – jschank 2010-01-02 21:43:08
好吧,所以看起來我想用Johannes發佈的答案,並且可能會做一些類似於查找ENV [「timesheet_home」]的內容,以便用戶可以覆蓋位置,回退到ENV [「HOME」]以及一些標準位置,如Johannes的答案。如果兩者都沒有設定,那就解釋失敗。 謝謝大家誰回覆! – jschank 2010-01-02 22:36:29