DRYing database.yml

Just a little self-reminder on how to DRY my database.yml

login: &login username: username password: password adapter: mysql host: localhost development: database: development_db <<: *login test: database: testing_db <<: *login production: database: production_db <<: *login

It works, but its one of those moments where I got no idea what is going on behind the scene. What does ‘&’ in ‘&login’ represent? What exactly does

<<: *login


I’d appreciate any comments.