Skip to content

Instantly share code, notes, and snippets.

@trevmex
Forked from practicingruby/refactoring patterns
Created October 2, 2010 18:40
Show Gist options
  • Save trevmex/607875 to your computer and use it in GitHub Desktop.
Save trevmex/607875 to your computer and use it in GitHub Desktop.
# Extract Method (http://refactoring.com/catalog/extractMethod.html)
#
# not refactored
#
def self.display_name(login)
ad_entry = self.find(login)
first_name_match = /FirstName:\s*(.*)$/.match(self.find(login))
last_name_match = /LastName:\s*(.*)$/.match(self.find(login))
first_name = first_name_match[1].split(' ').each {|s| s.capitalize!}.join(' ') unless first_name_match.blank?
last_name = last_name_match[1].split(' ').each {|s| s.capitalize!}.join(' ') unless last_name_match.blank?
"#{first_name} #{last_name}"
end
#
# refactored
#
def self.clean_string(string)
string.split(' ').map {|s| s.capitalize}.join(' ')
end
def self.ad_key_extract(ad_entry, key)
re = /#{Regexp.escape(key)}:\s*(.*)$/
clean_string(ad_entry[re, 1].to_s)
end
def self.display_name(login)
ad_entry = find(login)
first_name = ad_key_extract(ad_entry, :FirstName)
last_name = ad_key_extract(ad_entry, :LastName)
"#{first_name} #{last_name}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment