Skip to content

Instantly share code, notes, and snippets.

@vitaly-pushkar
Created January 23, 2020 20:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vitaly-pushkar/409dd464bf6405e7f33d1822b7846a86 to your computer and use it in GitHub Desktop.
Save vitaly-pushkar/409dd464bf6405e7f33d1822b7846a86 to your computer and use it in GitHub Desktop.
From the blog post "Error Handling with Either Monads in Ruby"
def call(fields)
fields = yield validate_fields(fields)
email = yield validate_email(fields['email'])
user = yield find_user(fields['id'])
user = yield update_user(user, {name: fields['name'], email: fields['email']})
sent = yield send_email(user, :profile_updated)
Success(user)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment