【发布时间】:2014-05-31 11:04:06
【问题描述】:
我有一个包含一些项目配置的 YAML 文件,我希望重用部分代码以使其易于维护。所以,我尝试使用锚来做到这一点,但我想覆盖以前的节点。这可能吗?
下面是我的例子:
default: &default
output: &default_output
make_video: true
take_screenshot: true
browser: &default_browser
type: :chrome
width: 1024
height: 1280
logger: &default_logger
level: TRACE
output_type: :file
chrome_browser: &chrome_browser
<<: *default
browser:
type: :chrome
user_agent: user_agent_string_for_chrome
firefox_browser: &firefox_browser
<<: *default
browser:
type: :firefox
user_agent: user_agent_string_for_firefox
好的,这是第一部分:这可能吗? firefox_browser 会覆盖“类型”吗?
现在是第二部分:
profile:
<<: *default
staging:
europe:
url: www.staging-europe-site.com
chrome:
<<: *browser_chrome
firefox:
<<: *browser_firefox
america:
url: www.staging-america-site.com
chrome:
<<: &browser_chrome
firefox:
<<: &browser_firefox
live:
europe:
url: www.europe-site.com
chrome:
<<: &browser_chrome
firefox:
<<: &browser_firefox
america:
url: www.america-site.com
chrome:
<<: &browser_chrome
firefox:
<<: &browser_firefox
我可以这样做,以便在阅读 yaml 之后,我可以这样做:
profile_yaml['staging.europe.chrome']
我得到了所有的配置?
【问题讨论】: