graywolf
graywolf

Reputation: 7520

Why does ruby require parentheses here?

When I try to do

assert_equal { dry: true }, res

I get

syntax error, unexpected ':', expecting '}'

        assert_equal { dry: true }, res

but

assert_equal({ dry: true }, res)

works fine. Why is first form not sufficient for ruby to understand what I mean? Or to be more precise, what does Ruby think I'm trying to do?

Upvotes: 4

Views: 57

Answers (1)

Jörg W Mittag
Jörg W Mittag

Reputation: 369584

In the first example, the curly braces are interpreted as delimiting a block. Since dry: true is not a legal expression, you get a SyntaxError.

Upvotes: 3

Related Questions