class EmailPredictor::Predictor

Attributes

company[R]
message[R]
predicted_emails[R]

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method EmailPredictor::Base::new
# File lib/email_predictor/predictor.rb, line 11
def initialize(opts = {})
  super
  @company          = opts[:company].downcase
  @predicted_emails = []
  validate!
end
predict(opts) click to toggle source
# File lib/email_predictor/predictor.rb, line 19
def predict(opts)
  obj = new(opts).predict
  obj
end

Public Instance Methods

applicable_rules() click to toggle source
# File lib/email_predictor/predictor.rb, line 38
def applicable_rules
  data_analyser = EmailPredictor::DataAnalyser.find(@company)
  data_analyser ? data_analyser.rules : []
end
predict() click to toggle source
# File lib/email_predictor/predictor.rb, line 25
def predict
  obj = EmailPredictor::Rules.new(name: @name)
  unless applicable_rules.empty?
    applicable_rules.collect do |rule|
      @predicted_emails << "#{obj.send(rule)}@#{@company}.com"
      @message = 'Successfully predicted emails.'
    end
  else
    @message = "Prediction cannot be done for #{@name.titleize} as we don't have any historical data for #{@company} company."
  end
  self
end