这里需要读取一个 json 文件并制作从一个类完成的变量并在另一个类中使用它们。到目前为止我所拥有的是
助手.rb
class MAGEINSTALLER_Helper
#note nonrelated items removed
require 'fileutils'
#REFACTOR THIS LATER
def load_settings()
require 'json'
file = File.open("scripts/installer_settings.json", "rb")
contents = file.read
file.close
#note this should be changed for a better content check.. ie:valid json
#so it's a hack for now
if contents.length > 5
begin
parsed = JSON.parse(contents)
rescue SystemCallError
puts "must redo the settings file"
else
puts parsed['bs_mode']
parsed.each do |key, value|
puts "#{key}=>#{value}"
instance_variable_set("@" + key, value) #better way?
end
end
else
puts "must redo the settings file"
end
end
#a method to provide feedback simply
def download(from,to)
puts "completed download for #{from}\n"
end
end
在 Pre_start.rb 文件中调用
class Pre_start
#note nonrelated items removed
def initialize(params=nil)
puts 'World'
mi_h = MAGEINSTALLER_Helper.new
mi_h.load_settings()
bs_MAGEversion=instance_variable_get("@bs_MAGEversion") #doesn't seem to work
file="www/depo/newfile-#{bs_MAGEversion}.tar.gz"
if !File.exist?(file)
mi_h.download("http://www.dom.com/#{bs_MAGEversion}/file-#{bs_MAGEversion}.tar.gz",file)
else
puts "mage package exists"
end
end
end
josn 文件是有效的 json 并且是一个简单的对象(注意有更多只是显示相关)
{
"bs_mode":"lite",
"bs_MAGEversion":"1.8.0.0"
}
我需要一个 json 设置文件的原因是我需要从 bash 脚本和后来的 php 脚本中提取设置。该文件是用于传递设置每个共享和需要匹配的公共线程。
现在我最终得到一个空字符串作为值。