Sha256: 4ee1a5d2e9508fe5629391a91b33829596081edc0ae4b813bec41df50cd9e963
Contents?: true
Size: 960 Bytes
Versions: 2
Compression:
Stored size: 960 Bytes
Contents
module SEPOMEX class Strategy ACROGENESIS = 'acrogenesis'.freeze HCKDRK = 'hckdrk'.freeze def self.call(*args, &block) new(*args, &block).call end def initialize(zip_code) @zip_code = zip_code @clients = [HCKDRK, ACROGENESIS] end 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 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sepomex_client-0.2.0 | lib/sepomex/strategy.rb |
sepomex_client-0.1.1 | lib/sepomex/strategy.rb |