Sha256: 26c69d767427bcc984f07ac9e955244aac295f7e7bb1c8bf3efc370c24c8db78
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'net/ldap' module CMU class Person class RecordNotFound < StandardError; end def initialize(andrewid) raise RecordNotFound unless @data = fetch(andrewid) end def fetch(user) ldap = Net::LDAP.new(:host => 'ldap.andrew.cmu.edu') ldap.search(:base => 'ou=Person,dc=cmu,dc=edu', :filter => 'cmuAndrewId='+user ).first end def andrew_id @data[:cmuAndrewId].last end def name @data[:cn].last end def last_name @data[:sn].last end def first_name @data[:givenname].last end def email if @data.attribute_names.include?(:cmupreferredmail) @data[:cmupreferredmail].last else @data[:mail].last end end def type @data[:edupersonaffiliation].last end def title if @data.attribute_names.include?(:title) @data[:title].last else if @data.attribute_names.include?(:cmutitle) @data[:cmutitle].last else nil end end end def grade if @data.attribute_names.include?(:cmustudentclass) @data[:cmustudentclass].last else nil end end def department @data[:cmudepartment].last end def school @data[:edupersonschoolcollegename].last end def to_s @data.collect{|i,j| i.to_s.ljust(30)+":\t"+(j.is_a?(Array) ? "[ "+j.join(", ")+" ]" : j.to_s)+"\n"}.join("\n") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cmu-person-0.0.1 | lib/cmu-person.rb |