syntax/interpolated_statements.rb
tests/_examples/syntax/interpolated_statements.rb in the metorex repository.
# The code inside #{...} is a run of statements whose value is the last
# one's, so a modifier, a semicolon, and a line break mean there what they
# mean anywhere else.
count = 1
p("keyword#{"s" if count > 1}")
p("#{count += 1; count * 10}")
p("total: #{
doubled = count * 2
doubled + 1
}")
p("#{"inner #{count}" unless count.zero?}")
p("#{begin; raise "no"; rescue; "rescued"; end}")
p(:"symbol#{1 if true}")
Output:
"keyword"
"20"
"total: 5"
"inner 2"
"rescued"
:symbol1