如何在
Ruby中完成这个简单的任务?
我有一些简单的配置文件
我有一些简单的配置文件
=== config.rb config = { 'var' => 'val' }
我想从一些方法加载配置文件,在main.rb文件中定义,以便config.rb中的局部变量成为该方法的局部变量.
这样的事情
=== main.rb Class App def loader load('config.rb') # or smth like that p config['var'] # => "val" end end
我知道我可以在config.rb中使用全局变量,然后在完成后对它们进行定义,但是我希望有一个红宝石的方式)
解决方法
除了受控环境外,我不建议这样做.
将模块保存到具有定义initialize和run_it方法的预定名称的文件中.对于这个例子,我使用test.rb作为文件名:
module Test @@classvar = 'Hello' def initialize @who = 'me' end def get_who @who end def run_it print "#{@@classvar} #{get_who()}" end end
然后编写一个简单的应用程序来加载并执行它:
require 'test' class Foo include Test end END { Foo.new.run_it } # >> Hello me
只因为你可以做某事并不意味着你应该.我不能想到在制作中这样做的原因,只能在这里表现为好奇心和概念证明.将这个提供给未知的人将是一个很好的方式让你的机器被黑客入侵,因为代码可以做任何事情拥有的帐户可以做.