class Kaca

Public Class Methods

new(opts = ARGV) click to toggle source
# File lib/kaca.rb, line 6
def initialize(opts = ARGV)
  urls = {
      altin: 'http://www.doviz.com/api/v1/golds/all/latest',
      doviz: 'http://www.doviz.com/api/v1/currencies/all/latest',
      bitcoin: 'https://blockchain.info/tr/ticker'
  }

  if is_number? opts[0]
    ne      = opts[1]
    nekadar = opts[0]
    islem   = opts[2]
  else
    ne      = opts[0]
    nekadar = nil
    islem   = opts[1]
  end

  altinlar = %w(ceyrek-altin yarim-altin tam-altin cumhuriyet-altini ata-altin besli-altin gumus)
  birimler = %w(amerikan-dolari euro sterlin isvicre-frangi rus-rublesi japon-yeni)
  bitcoin  = %w(bitcoin coin)
  ne       = FuzzyMatch.new(altinlar + birimler + bitcoin).find(ne.downcase)
  url      = if altinlar.include? ne
               urls[:altin]
             elsif bitcoin.include? ne
               urls[:bitcoin]
             else
               urls[:doviz]
             end

  islem = if ['alabilirim', 'alırım', 'alirim', 'bulurum'].include? islem
            'selling'
          else
            'buying'
          end

  islem = islem[0..-4] if ne == 'bitcoin'

  getir(url, ne, nekadar, islem)
rescue => e
  puts "Anlarken Errör olustu: #{e}"
end

Public Instance Methods

get(url) click to toggle source
# File lib/kaca.rb, line 68
def get url
  uri     = URI.parse(url)
  http    = Net::HTTP.new(uri.host)
  req     = Net::HTTP::Get.new(uri, 'Content-Type' => 'application/json')
  res     = http.request(req)
  result  = JSON.parse(res.body)

  return result
end
getir(url, ne, nekadar, islem) click to toggle source
# File lib/kaca.rb, line 48
def getir(url, ne, nekadar, islem)
  result = get url

  if ne == 'bitcoin'
    aranan  = 'bitcoin'
    dolar   = get('http://www.doviz.com/api/v1/currencies/all/latest').select { |r| r['name'] == 'amerikan-dolari' }.first
    try     = (result['USD'][islem] * dolar['selling']).to_f.round(2)
  else
    aranan  = result.select { |r| r['name'] == ne }.first
    try     = aranan[islem].to_f.round(2)
    aranan  = aranan['full_name'].downcase
  end
  try     = try * nekadar.to_i unless nekadar.nil?

  sonuc   = "#{try} TRY e #{aranan} #{islem == 'buying' ? 'satabilirsin' : 'alabilirsin'}."
  puts sonuc
rescue => e
  puts "Getirirken Errör olustu: #{e}"
end
is_number?(string) click to toggle source

Ilk parametre string fakat numeric mi bakmak icin

# File lib/kaca.rb, line 79
def is_number? string
  true if Float(string) rescue false
end