Skip to content

Commit

Permalink
Refactoring, generalizing
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Morrison committed Aug 29, 2009
1 parent fe54a54 commit bb40cc6
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions genderer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,25 @@
class Genderer
def initialize(name_frequencies = CensusFileNameFrequencies.gender_hashes)
@name_frequencies = name_frequencies
# @female_frequencies = name_frequencies["female"]
# @male_frequencies = name_frequencies["male"]
end

def gender_for(name)
name = name.upcase

female_score = score_gender_by(@name_frequencies["female"], name)
male_score = score_gender_by(@name_frequencies["male"], name)
scores_by_gender = {}
@name_frequencies.keys.each do |gender|
scores_by_gender[gender] = score_gender_by(@name_frequencies[gender], name)
end

scores = scores_by_gender.values
winning_score = scores.max
tie = scores.all? { |score| score == winning_score }
winner = scores_by_gender.invert[winning_score]

if female_score == male_score
'unknown'
elsif female_score > male_score
'female'
if tie
"unknown"
else
'male'
winner
end
end

Expand All @@ -37,7 +40,6 @@ def score_gender_by(hash, name)
end

def frequency_by(hash, name)
name = name.upcase
hash[name] || 0
end
end

0 comments on commit bb40cc6

Please sign in to comment.