我有一個ruby腳本(.rb),它打開文件並在解析後生成一個csv文件。如何將獨立維護的ruby腳本合併到rails應用程序
我獨立維護腳本並可能在其他應用程序中使用。
現在我剛剛複製並粘貼到我的控制器的代碼...我知道這是不正確的!
我該如何將這個ruby腳本合併到我的應用程序中?
我可以做它的寶石嗎?
謝謝。
我有一個ruby腳本(.rb),它打開文件並在解析後生成一個csv文件。如何將獨立維護的ruby腳本合併到rails應用程序
我獨立維護腳本並可能在其他應用程序中使用。
現在我剛剛複製並粘貼到我的控制器的代碼...我知道這是不正確的!
我該如何將這個ruby腳本合併到我的應用程序中?
我可以做它的寶石嗎?
謝謝。
使它成爲寶石並安裝它是一種選擇。否則,將文件的目錄註冊爲加載路徑。這部分可能取決於操作系統。例如,對於Ubuntu Linux操作系統,我做終端:
export RUBYLIB=path_to_the_directory_where_the_file_is
然後,require
該文件並使用它。如果你希望你的庫的行爲不同,這取決於它是否是從命令或者從另一個Ruby腳本直接調用,常見的方法是在你的庫來編寫:
if __FILE__ == $0
commands_to_execute_when_called_directly_from_command
end
我們不寫基於Ruby的命令行所有的工具,並把它們當作普通的Linux應用程序。使用back ticks或%x
來調用它們或使用常規管道(|
)鏈接它們就像我們常規應用程序一樣簡單。
如果我們要投入大量數據,通常我們會使用OptionParser添加一個--json
標誌,它允許我們將JSON發送到調用程序,使得重用數據變得更容易,而不必解析CSV或列數據。
您可以在* nix系統上安裝/usr/local/bin
這些應用程序,確保路徑設置爲在那裏搜索,然後在shell,Ruby或任何其他能夠使用子shell的語言之間共享代碼。
僅僅因爲它們是用Ruby編寫的,並不意味着它們必須是寶石或模塊。紅寶石的能力遠不止於此,並能很好地適應通常的寄主生態。
這聽起來不錯,適合本地使用,將它綁定到rails應用程序我會設置一個ENV []參考腳本遠程回購?謝謝! – twinturbotom
你可以這樣做。或者,將其路徑放在Rails應用程序擁有用戶的PATH變量中,或者在調用它時明確指向它。 –
非常有幫助,謝謝。我會玩註冊遠程repo到我的heroku服務器,以查看之間的差異和寶石...謝謝。 – twinturbotom