我有一個完整的用於常見任務的ruby腳本目錄,並且我已經開始累積一組通用變量和方法,我發現自己在每個新腳本中定義。改善這一點的下一步似乎是創建一個文件(比如commonstuff.rb),並從其他腳本中「需要」該文件,以便公共變量和方法在所有地方都可用並且只定義一次。Ruby:在一組腳本中共享公共變量和方法
一個簡單的嘗試,沒有工作:
commonstuff.rb
username=ENV['USER']
home_dir_path=ENV['HOME']
def print_and_execute(command, &block)
puts command
process_io = IO.popen(command + "2>&1")
while(line=process_io.gets)
if (block != nil)
yield line
else
puts line
STDOUT.flush
end
end
end
script1.rb
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/common_stuff'
puts home_dir_path # Fail
print_and_execute "date" # Fail
我用Ruby庫和框架,但我不」在我目前的環境中沒有任何可用的。我只是筆直的紅寶石,對於一些基本的習慣用法,我可能會有點生疏,或者這對於紅寶石專家來說看起來是正確的。
任何幫助表示讚賞!
謝謝! 爲了其他人的利益,它看起來像常量(是的,我應該說在問題中的「常量」,而不是「變量」)可以留在模塊定義之外。 此外,在將模塊放入模塊之後,我必須使用附加的「include」語句將該模塊包含在使用其功能的腳本中。 – Charlie 2009-07-27 21:38:36
是的,我不會在模塊中放置這樣的常量,因爲它們不會在您的用例中導致衝突。 – 2009-07-27 21:45:47