← Back to Ruby Operators

Double Left Angle Bracket

There are two contexts in which you'll see << show up in Ruby.

Shovel Operator

Perhaps more commonly is as the Shovel Operator, which is conceptually used to "shovel" a value into a container. The more common term for this kind of action is append.

In the simplest case, the shovel operator is used to append a value to an array.

> items = [:a, :b]
=> [:a, :b]
> items << :c
=> [:a, :b, :c]
> items << [1,2,3]
=> [:a, :b, :c, [1, 2, 3]]
> items << true
=> [:a, :b, :c, [1, 2, 3], true]

heredoc

A heredoc (here document) is a way to create a multi-line string in Ruby. It's typically used for creating multi-line messages, SQL queries, or HTML.

There are several ways to define a heredoc, the most common being <<HEREDOC, <<-HEREDOC, and <<~HEREDOC.

A basic example of a heredoc is this:

query = <<SQL
  select *
  from users
  where active = true
    and role = 'admin'
SQL

execute(query)

If you're curious what the different forms do, head over to the heredoc page.