In Perl I can do something like the following:
my $home = "/home";
my $alice = "$home/alice";
Can I do something like the following in YAML:
Home: /home
Alice: $Home/alice
So "Alice" is effectively /home/alice
in the end?
Unfortunately, you're out of luck. To do what you want you'd need to pass in $home
from a view file (or wherever) and interpolate it in your yaml entry, which could possibly look something like:
Alice: ! '%{home}/Alice'
See this StackOverflow Q&A for the detailed answer to pretty much exactly your question.
You should use ERB template.
you can write like following:
Alice: <%=home%>/alice
When use, you need parse home
value with ERB before parse as YAML.
if home is local variable, you need pass local binding in as #result method's argument.
if you not pass this, will use TOP LEVEL binding as default.
Like this:
require 'erb'
home = 'home'
YAML.load(ERB.new(yaml_content).result(binding))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With