kaca 0.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/kaca +1 -1
- data/lib/kaca.rb +51 -14
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e157ae52e4bab357e18b156c1770db9503e8bc39
|
4
|
+
data.tar.gz: 4e5d1fd71492f1522f8d9ddc2a2cd36dec62c2b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9466b6c31177f25fe13a125c4fc04c8f020ab5dd04a14ef2a62ef6e0aa3f0d5a7b6f69770fb8c55411f8ed8d1f4da4aa80ea51f91c239c93059ee60aba176ab
|
7
|
+
data.tar.gz: 71be9de7c7dcc02f672a22e413df0e599a9434ad73cea029bc3609401bcac98fc0794afc2a220def7d14d1c8e98d71176a1a1fd4412833d11dcbd62034fbbb99
|
data/bin/kaca
CHANGED
data/lib/kaca.rb
CHANGED
@@ -3,43 +3,80 @@ require 'net/http'
|
|
3
3
|
require 'json'
|
4
4
|
|
5
5
|
class Kaca
|
6
|
-
def initialize(opts)
|
6
|
+
def initialize(opts = ARGV)
|
7
7
|
urls = {
|
8
|
-
|
9
|
-
|
8
|
+
altin: 'http://www.doviz.com/api/v1/golds/all/latest',
|
9
|
+
doviz: 'http://www.doviz.com/api/v1/currencies/all/latest',
|
10
|
+
bitcoin: 'https://blockchain.info/tr/ticker'
|
10
11
|
}
|
11
12
|
|
13
|
+
if is_number? opts[0]
|
14
|
+
ne = opts[1]
|
15
|
+
nekadar = opts[0]
|
16
|
+
islem = opts[2]
|
17
|
+
else
|
18
|
+
ne = opts[0]
|
19
|
+
nekadar = nil
|
20
|
+
islem = opts[1]
|
21
|
+
end
|
22
|
+
|
12
23
|
altinlar = %w(ceyrek-altin yarim-altin tam-altin cumhuriyet-altini ata-altin besli-altin gumus)
|
13
24
|
birimler = %w(amerikan-dolari euro sterlin isvicre-frangi rus-rublesi japon-yeni)
|
14
|
-
|
25
|
+
bitcoin = %w(bitcoin coin)
|
26
|
+
ne = FuzzyMatch.new(altinlar + birimler + bitcoin).find(ne.downcase)
|
15
27
|
url = if altinlar.include? ne
|
16
28
|
urls[:altin]
|
29
|
+
elsif bitcoin.include? ne
|
30
|
+
urls[:bitcoin]
|
17
31
|
else
|
18
32
|
urls[:doviz]
|
19
33
|
end
|
20
34
|
|
21
|
-
islem = if
|
35
|
+
islem = if ['alabilirim', 'alırım', 'alirim', 'bulurum'].include? islem
|
22
36
|
'selling'
|
23
37
|
else
|
24
38
|
'buying'
|
25
39
|
end
|
26
40
|
|
27
|
-
|
41
|
+
islem = islem[0..-4] if ne == 'bitcoin'
|
42
|
+
|
43
|
+
getir(url, ne, nekadar, islem)
|
44
|
+
rescue => e
|
45
|
+
puts "Anlarken Errör olustu: #{e}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def getir(url, ne, nekadar, islem)
|
49
|
+
result = get url
|
50
|
+
|
51
|
+
if ne == 'bitcoin'
|
52
|
+
aranan = 'bitcoin'
|
53
|
+
dolar = get('http://www.doviz.com/api/v1/currencies/all/latest').select { |r| r['name'] == 'amerikan-dolari' }.first
|
54
|
+
try = (result['USD'][islem] * dolar['selling']).to_f.round(2)
|
55
|
+
else
|
56
|
+
aranan = result.select { |r| r['name'] == ne }.first
|
57
|
+
try = aranan[islem].to_f.round(2)
|
58
|
+
aranan = aranan['full_name'].downcase
|
59
|
+
end
|
60
|
+
try = try * nekadar.to_i unless nekadar.nil?
|
61
|
+
|
62
|
+
sonuc = "#{try} TRY e #{aranan} #{islem == 'buying' ? 'satabilirsin' : 'alabilirsin'}."
|
63
|
+
puts sonuc
|
28
64
|
rescue => e
|
29
|
-
puts "Errör: #{e}"
|
65
|
+
puts "Getirirken Errör olustu: #{e}"
|
30
66
|
end
|
31
67
|
|
32
|
-
def
|
68
|
+
def get url
|
33
69
|
uri = URI.parse(url)
|
34
70
|
http = Net::HTTP.new(uri.host)
|
35
71
|
req = Net::HTTP::Get.new(uri, 'Content-Type' => 'application/json')
|
36
72
|
res = http.request(req)
|
37
73
|
result = JSON.parse(res.body)
|
38
74
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
75
|
+
return result
|
76
|
+
end
|
77
|
+
|
78
|
+
# Ilk parametre string fakat numeric mi bakmak icin
|
79
|
+
def is_number? string
|
80
|
+
true if Float(string) rescue false
|
44
81
|
end
|
45
|
-
end
|
82
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kaca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Murat Bastas
|
@@ -10,6 +10,20 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: fuzzy_match
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +38,20 @@ dependencies:
|
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '2.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.6'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.6'
|
27
55
|
description: Kaça altın alırım? Kaça dolar satarım? Terminal üzerinden döviz hesabı
|
28
56
|
yapabileceğiniz bir uygulama.
|
29
57
|
email:
|
@@ -55,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
83
|
version: '0'
|
56
84
|
requirements: []
|
57
85
|
rubyforge_project:
|
58
|
-
rubygems_version: 2.6.
|
86
|
+
rubygems_version: 2.6.8
|
59
87
|
signing_key:
|
60
88
|
specification_version: 4
|
61
89
|
summary: Kaca alır satarım?
|