Skip to content

Instantly share code, notes, and snippets.

@stevenharman
Created August 14, 2013 02:23
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save stevenharman/6227508 to your computer and use it in GitHub Desktop.
Extract Devises "raw" tokens from outgoing email, since the tokens stored in the DB have been digested. (As for Devise 3.1)
module Features
module MailHelpers
def last_email
ActionMailer::Base.deliveries[0]
end
# Can be used like:
# extract_token_from_email(:reset_password)
def extract_token_from_email(token_name)
mail_body = last_email.body.to_s
mail_body[/#{token_name.to_s}_token=([^"]+)/, 1]
end
end
end
@stevenharman
Copy link
Author

@gingerlime
Copy link

Thanks @stevenharman - I've encountered the same problem and your gist really helped. I made some tiny tweaks to the regex and used text_part instead to make it work for me though (see fork).

@leishman
Copy link

Thank you! Helped me write my test!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment