class SEPOMEX::Strategy

Constants

ACROGENESIS
HCKDRK

Public Class Methods

call(*args, &block) click to toggle source
# File lib/sepomex/strategy.rb, line 6
def self.call(*args, &block)
  new(*args, &block).call
end
new(zip_code) click to toggle source
# File lib/sepomex/strategy.rb, line 10
def initialize(zip_code)
  @zip_code = zip_code
  @clients = [HCKDRK, ACROGENESIS]
end

Public Instance Methods

call() click to toggle source
# File lib/sepomex/strategy.rb, line 15
def call
  raise ArgumentError if @zip_code.blank?

  zip_code_result = {}
  @clients.each do |client|
    strategy = processor(client)
    zip_code_result = strategy.query
    break if zip_code_result.settlement.present?
  rescue StandardError => e
  end
  raise DataNotFoundError if zip_code_result.blank? || zip_code_result.settlement.blank?

  zip_code_result
end

Private Instance Methods

processor(client) click to toggle source
# File lib/sepomex/strategy.rb, line 32
def processor(client)
  case client
  when HCKDRK
    SEPOMEX::Clients::Hckdrk.new(@zip_code)
  when ACROGENESIS
    SEPOMEX::Clients::Acrogenesis.new(@zip_code)
  else
    raise ArgumentError
  end
end