class Cryptoexchange::Exchanges::Cybex::Services::Pairs

Constants

HTTP_METHOD
MAIN_TARGET_SYMBOLS
OMITTED_SYMBOLS
PAIRS_URL
POST_PARAMS

Public Instance Methods

adapt(pair_list) click to toggle source
# File lib/cryptoexchange/exchanges/cybex/services/pairs.rb, line 33
def adapt(pair_list)
  pair_list.map do |pair|
    base, target = pair
    Cryptoexchange::Models::MarketPair.new(
      base:   base,
      target: target,
      market: Cybex::Market::NAME
    )
  end
end
fetch() click to toggle source
Calls superclass method Cryptoexchange::Services::Pairs#fetch
# File lib/cryptoexchange/exchanges/cybex/services/pairs.rb, line 12
def fetch
  output    = super
  pair_list = list_all_combinations(output)
  adapt(pair_list)
end
list_all_combinations(output) click to toggle source
# File lib/cryptoexchange/exchanges/cybex/services/pairs.rb, line 18
def list_all_combinations(output)
  pairs_list = []
  symbols    = output['result'].map { |asset| asset['symbol'] }
  symbols    = symbols - OMITTED_SYMBOLS
  symbols.delete_if { |sym| !/\A(#{Cryptoexchange::Exchanges::Cybex::Market::OMITTED_GATEWAY}\.)/.match(sym).nil? }
  symbols      = symbols.map { |a| a.split('.').last }
  symbol_pairs = symbols.product(MAIN_TARGET_SYMBOLS)
  symbol_pairs.map do |pair|
    next if pair[0] == pair[1] || pair[0] == 'USDT'
    next if /(BTC|ETH|CYB)/.match(pair[0]) && /(BTC|ETH|CYB)/.match(pair[1])
    pairs_list << pair
  end
  pairs_list
end