在this博文中,他给出了一个Ruby配置文件的例子。
<?php
session_start(); //Not required if your form action is on same page, else required //Rest code
$_SESSION['subTitleRadio'] = $_GET['subTitleRadio'] // OR $_POST['subTitleRadio']; // Rest code
?>
在配置文件加载后我想到了一个哈希,但也许这不是这种类型的配置的意图......
更新
如果我执行它,我会
config do
allow ['server.com', `hostname`.strip]
vhost 'api.server.com' do
path ‘/usr/local/api’
end
vhost 'www.server.com' do
path '/usr/local/web'
end
%w{wiki blog support}.each do |host|
vhost "#{host}.server.com" do
path "/usr/local/#{host}"
end
end
end
问题
解析和转储此配置文件的内容需要哪些Ruby代码?
答案 0 :(得分:2)
该配置示例不能直接加载,如果我理解博客文章的作者是正确的,那么它并不意味着要么加载/解析该示例也不容易。
关键部分在博客文章中,他指出&#34;构建简单的DSL来设计语义上健壮的配置文件,而底层的ruby显眼&#34; (我的重点)。潜在的红宝石&#39;我的意思是代码,它可以启用您所看到的DSL元素,例如&#39; config&#39;和&#39; vhost&#39;。
然而,您的原始问题是加载该配置需要什么代码 - 下面是一些可行的示例,完整的实现取决于您并且我非常确定有更清洁,&#34 ;更好&#34;做同样的方法。
class AppConfig
attr_accessor :hosts
def allow(hosts)
@hosts = hosts
end
def vhost(hostname)
end
def process_config(&block)
instance_eval(&block)
end
end
def config(&block)
config = AppConfig.new
config.process_config &block
puts "Hosts are: #{config.hosts}"
end
load 'config.rb'