module APIHub::LeadScore::Score
Attributes
defaults[RW]
Public Instance Methods
calculate(result, options = {})
click to toggle source
# File lib/apihub/lead_score/score.rb, line 19 def calculate(result, options = {}) options = defaults.merge(options) score = 0.0 return score unless result if person = result.person if person.avatar score += 5 end if person.twitter.followers score += person.twitter.followers * options.twitter_followers_weight end if person.angellist.followers score += person.angellist.followers * options.angellist_followers_weight end if person.klout.score score += person.klout.score * options.klout_score_weight end end if company = result.company unless company.personal score += options.company_score end if company.raised score += company.raised * options.company_raised_weight end if company.employees score += company.employees * options.company_employees_weight end if company.alexa.globalRank score += 1 / (company.alexa.globalRank * options.company_alexa_rank_weight) end if company.google.rank && company.google.rank > 0 score += 1 / (company.google.rank * options.company_google_rank_weight) end if company.twitter.followers score += company.twitter.followers * options.company_twitter_followers_weight end end score /= options.total_score [score.round(1), 1.0].min end