我有一个完整的用于常见任务的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