Ruby: Can I write multi-line string with no concatenation?

后端 未结 16 847
礼貌的吻别
礼貌的吻别 2020-12-04 04:42

Is there a way to make this look a little better?

conn.exec \'select attr1, attr2, attr3, attr4, attr5, attr6, attr7 \' +
          \'from table1, table2, ta         


        
16条回答
  •  臣服心动
    2020-12-04 05:23

    Recently with the new features in Ruby 2.3 the new squiggly HEREDOC will let you write our multiline strings in a nice manner with a minimal change so using this combined with the .squish (if you are using rails) will let you write multiline in a nice way! in case of just using ruby, you can do a <<~SQL.split.join(" ") which is almost the same

    [1] pry(main)> <<~SQL.squish
    [1] pry(main)*   select attr1, attr2, attr3, attr4, attr5, attr6, attr7
    [1] pry(main)*   from table1, table2, table3, etc, etc, etc, etc, etc,
    [1] pry(main)*   where etc etc etc etc etc etc etc etc etc etc etc etc etc
    [1] pry(main)* SQL
    => "select attr1, attr2, attr3, attr4, attr5, attr6, attr7 from table1, table2, table3, etc, etc, etc, etc, etc, where etc etc etc etc etc etc etc etc etc etc etc etc etc"
    

    ref: https://infinum.co/the-capsized-eight/multiline-strings-ruby-2-3-0-the-squiggly-heredoc

提交回复
热议问题