Okay, pending an extraction of something like `Address` as you proposed, I still think I'd like a bit of cleanup here. Our style guide cautions against both `return` and `if` / `unless` surprises.

```ruby
if name == full_address || name.empty?
  name
end
```

It may also be worth trying to not even set the key unless there is a "name", or to always return a string even if it empty. I'm somewhat torn between the two, but I'm leaning toward the empty string.