Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.71 KB | None | 0 0
  1. namespace :emails do
  2.   desc "get all emails from nicknames"
  3.   task take_emails: :environment do
  4.     REGEXP_EMAIL = /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i
  5.  
  6.     Nickname.in_batches(of: 15).each do |nicknames|
  7.       nicknames.each do |hash|
  8.         nick_last = Nickname.all.select(:id).order(:id).last[:id]
  9.         output = %x[github-email #{hash[:name]}]
  10.         data = (output.gsub /[\e\n\t]/, " ").split
  11.         selected = data.select { |emails| emails =~ REGEXP_EMAIL }
  12.         selected.uniq.map { |email| Email.create(email: email, nickname_id: hash[:id]) }
  13.  
  14.         if hash[:id] == nick_last
  15.           break
  16.         end
  17.       end
  18.  
  19.       nicknames.delete_all
  20.       sleep 900
  21.     end
  22.   end
  23. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement