Move email-related methods to mixin

This commit is contained in:
Anton Khorev 2023-09-01 19:33:22 +03:00
parent abecde92f5
commit f5c20527aa
2 changed files with 28 additions and 22 deletions

View file

@ -0,0 +1,27 @@
module EmailMethods
extend ActiveSupport::Concern
private
def canonical_email(email)
local_part, domain = if email.nil?
nil
else
email.split("@")
end
local_part.sub!(/\+.*$/, "")
local_part.delete!(".") if %w[gmail.com googlemail.com].include?(domain)
"#{local_part}@#{domain}"
end
##
# get list of MX servers for a domains
def domain_mx_servers(domain)
Resolv::DNS.open do |dns|
dns.getresources(domain, Resolv::DNS::Resource::IN::MX).collect { |mx| mx.exchange.to_s }
end
end
end

View file

@ -1,4 +1,5 @@
class UsersController < ApplicationController class UsersController < ApplicationController
include EmailMethods
include SessionMethods include SessionMethods
include UserMethods include UserMethods
@ -361,26 +362,4 @@ class UsersController < ApplicationController
!blocked !blocked
end end
def canonical_email(email)
local_part, domain = if email.nil?
nil
else
email.split("@")
end
local_part.sub!(/\+.*$/, "")
local_part.delete!(".") if %w[gmail.com googlemail.com].include?(domain)
"#{local_part}@#{domain}"
end
##
# get list of MX servers for a domains
def domain_mx_servers(domain)
Resolv::DNS.open do |dns|
dns.getresources(domain, Resolv::DNS::Resource::IN::MX).collect { |mx| mx.exchange.to_s }
end
end
end end