Ever had a need to pass not just one, but two or even multiple multiline strings to a method in one go?
Here is how I did it before:
# I have a function that will take strings as arguments # and set their cases accordingly. def print_my_strings(string_a, string_b) puts string_a.upcase puts string_b.downcase end # First, assign the strings to variables using the multiline string notation. string_a = <<STRA Hello, I am string A, and I am wasting lines of code. STRA string_b = <<STRB Hello, I am string B, and I am ALSO wasting lines of code. STRB # and call it print_my_strings(string_a, string_b)
This is perhaps a little inefficient if you know you won't be needing those variable assignments later on.
Why not get rid of them?
Here is a better way.
print_my_strings(< <STRA, <<STRB) Hello, I am string A and I am not wasting any lines STRA And I am string B, also not wasting precious any lines of code either. STRB # will output HELLO, I AM STRING A AND I AM NOT WASTING ANY LINES and i am string b, also not wasting precious any lines of code either.
For fore on multiline strings, checkout Jay Fields' Thoughts.