class Hamburglar::Report

Hamburglar::Report is the main class for generating fraud reports

Attributes

params[R]

Parameters that will be used to generate this fraud report

response[R]

Response from gateway

Public Class Methods

new(params = {}) click to toggle source
# File lib/hamburglar/report.rb, line 10
def initialize(params = {})
  @gateway  = params.delete(:gateway) || Hamburglar.config.gateway
  @params   = params
  @response = generate_report!
end

Public Instance Methods

fraud?() click to toggle source
# File lib/hamburglar/report.rb, line 28
def fraud?
  @fraud = true if @response.nil? || @response.empty?
  return @fraud if @fraud
  if Hamburglar.config.fraud_proc.nil?
    @fraud = @response[:score].to_f >= Hamburglar.config.fraud_score.to_f
  else
    @fraud = Hamburglar.config.fraud_proc.call(self) == true
  end
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/hamburglar/report.rb, line 16
def method_missing(method, *args, &block)
  if @response && @response[method.to_sym]
    @response[method.to_sym]
  else
    super
  end
end
respond_to?(key) click to toggle source
Calls superclass method
# File lib/hamburglar/report.rb, line 24
def respond_to?(key)
  @response.has_key?(key) || super
end

Private Instance Methods

gateway() click to toggle source
# File lib/hamburglar/report.rb, line 49
def gateway
  case @gateway.to_s
  when /min_fraud/
    Gateways::MaxMind::MinFraud
  when /telephone/
    Gateways::MaxMind::TelephoneVerification
  else
    raise Hamburglar::InvalidGateway, @gateway
  end
end
generate_report!() click to toggle source
# File lib/hamburglar/report.rb, line 40
def generate_report!
  api = gateway.new(@params)
  if api.valid?
    api.submit
  else
    api.errors
  end
end