Sha256: 5c4dc6a6b94afb92385429dcb1184ac54ae6917ba0eaf986110759063c4d3da4
Contents?: true
Size: 949 Bytes
Versions: 2
Compression:
Stored size: 949 Bytes
Contents
# frozen_string_literal: true module LdapDisambiguate # This class allows you to use LDAP to extract user information # from an email or list of emails # class Email < Base class << self def disambiguate(email) return unless email.include?('@psu.edu') email_in_name(email) end private def email_in_name(email_list) parts = email_list.split(' ') emails = parts.select { |part| part.include?('@') } results = [] Array(emails).each do |email_str| email = Mail::Address.new(email_str) results << (ldap_attributes_for_id(email.local) || ldap_attributes_for_email(email.address) || [LdapUser.results_hash(mail: [email.address])]).first end results end def ldap_attributes_for_email(email) users = LdapUser.query_ldap_by_mail(email, ldap_attrs) users.count < 1 ? nil : users end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ldap_disambiguate-0.0.5 | lib/ldap_disambiguate/email.rb |
ldap_disambiguate-0.0.4 | lib/ldap_disambiguate/email.rb |