我想在
Ruby heredoc中迭代一个数组.
- <<-BLOCK
- Feature: User logs in
- In order to post content
- As an user
- I want to log in
- << Here i want to iterate scenarios >>
- BLOCK
“scenario”是我想要循环的数组.对于我要打印的每个元素:
- Scenario: #{scenario}
- Given
- When
- Then
例如,如果“scenario”包含:
- scenarios[0] = "User successfully logs in"
- scenarios[1] = "User Failed to log in"
我希望heredoc字符串是:
- <<-BLOCK
- Feature: #{feature}
- In order to #{in_order_to}
- As #{as}
- I want #{i_want}
- Scenario: User successfully logs in
- Given
- When
- And
- Scenarios: User Failed to log in
- Given
- When
- And
- BLOCK
如何在Ruby heredoc中进行迭代?
解决方法
你可以这样做,但我不确定它是最可读的方法:
- s = <<-BLOCK
- Feature: User logs in
- In order to post content
- As an user
- I want to log in
- #{scenarios.map{|x|
- <<-INNERBLOCK
- Scenario: #{x}
- Given
- When
- Then
- INNERBLOCK
- }}
- BLOCK