-
-
Save scottwater/879712 to your computer and use it in GitHub Desktop.
def friendly_name(user) | |
temp_name = if user.first_name.blank? && user.last_name.blank? | |
user.email | |
elsif user.first_name.blank? | |
user.last_name | |
elsif user.last_name.blank? | |
user.first_name | |
else | |
"#{user.first_name} #{user.last_name}" | |
end | |
"#{temp_name}'s" | |
end |
You can boil this down into two conditional statements and then format your response. If first and last names are blank, assign temp name to email, otherwise "#{user.first_name} #{user.last_name}". To take into account nil first or last names, strip temp_name before returning ("#{temp_name.strip}'s".
To piggyback on @subdigital's point, and you may have it already set up this way outside the gist, it probably belongs on your user model versus in a helper.
Thanks for the tips, especially on full_name. I think that will clean things up quite a bit.
@chris - I think full_name belongs on the model. But the friendly (possessive) part is just for the benefit of the user visiting the site, so it is probably better off in the helper. Although now that i write this it is used in one spot and can probably just be inlined in the view.
Thanks again for the tips.
@chris - nevermind, I get what you meant about them both being on the model. Bah...consider it committed. :)
I'd instead make the possessive part a separate method and favor early returning, like this:
You could probably make this better with more composition...