class CryptoVal::List::CryptoCompare

Public Class Methods

fetch() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 8
def self.fetch
  new.fetch
end

Public Instance Methods

fetch() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 4
def fetch
  format_response
end

Private Instance Methods

base_url() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 14
def base_url
  "https://www.cryptocompare.com"
end
format_response() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 38
def format_response
  list = []
  parsed["Data"].keys.each do |key|
    data = parsed["Data"][key]
    if data.is_a?(Hash)
      logo = data["ImageUrl"].to_s.empty? ? "" : "#{base_url}#{data["ImageUrl"]}"
      list << { 
                symbol: data["Name"], 
                name: data["CoinName"],
                logo: logo,
                algorithm: data["Algorithm"] 
              }
    end
  end
  list
end
get_response() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 26
def get_response
  uri = URI.parse(url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Get.new(uri.request_uri)
  http.request(request).body
end
parsed() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 34
def parsed
  @parsed ||= JSON.parse(response)
end
response() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 22
def response
  @response ||= get_response
end
url() click to toggle source
# File lib/crypto_val/list/crypto_compare.rb, line 18
def url
  "#{base_url}/api/data/coinlist"
end