Ruby かいてて些細なミスでハマったことを書いておきます。

goro = "gorogoro",
hoge = "hogehoge"

1行目の最後に カンマ が入っているのがポイントです。

期待した結果は

goro # => "gorogoro"
hoge # => "hogehoge"

です。

実際には

goro # => ["gorogoro", "hogehoge"]
hoge # => "hogehoge"

となりました。

1行目の最後にある カンマ を削除すれば期待した結果になります。

このミスは hash で値を渡していたところを 代入に書き換えたときに発生しました。異常はテストコードのおかげで直ちに検知できました。(ちらちら)

解説

カンマのあとの改行なので、 式が完結していないので以下と等価です。

goro = "gorogoro", hoge = "hogehoge"

括弧をつけてわかりやすくします。

goro = ("gorogoro", (hoge = "hogehoge"))

もうちょっとわかりやすくします。

hoge = "hogehoge"
goro = "gorogoro", hoge

hoge が上にきているのに注意してください。

もう必要ないと思いますが、以下と等価です。

hoge = "hogehoge"
goro = ["gorogoro", hoge]