coins 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/coins +4 -0
  3. data/lib/coins.rb +69 -0
  4. metadata +46 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 146f4415f32eb120c65fd03e406a029d62b04228
4
+ data.tar.gz: 55b9d2afd5e44cbf44db09c12bec9323e2847f6d
5
+ SHA512:
6
+ metadata.gz: a98b5670f48723835371f6c3a591d30ad8e8441d09e38cb8ec3b1c4733149b739838752b87e60e7b6300a779278ef9de64382159179e5e669b40e220b886d0d8
7
+ data.tar.gz: ecccf51e9ac3603da31183a0b5cb949bc28b8d5b96bab1c5d069f90d88ef5ae7ac042cb1825cbaeb1bc73c334dd9aa4313e3df0152708cb2e7839bdeb16ce4f0
data/bin/coins ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'coins'
3
+
4
+ Coins.new
data/lib/coins.rb ADDED
@@ -0,0 +1,69 @@
1
+ require 'net/http'
2
+ require 'json'
3
+
4
+ class Coins
5
+ def initialize
6
+ parseArgs
7
+ end
8
+
9
+ def setRate base
10
+ begin
11
+ @exchange = JSON.parse Net::HTTP.get(URI 'http://api.fixer.io/latest?base=' + base)
12
+ rescue
13
+ puts "Could not get exchange rate information.\nCheck your internet connnection or try again later."
14
+ exit 1
15
+ end
16
+ end
17
+
18
+ def args? this
19
+ if ARGV.include? this
20
+ return true
21
+ end
22
+ return false
23
+ end
24
+
25
+ def currencyConvert from, to
26
+ return @exchange['rates'][to].to_f * from.to_f
27
+ end
28
+
29
+ def rates
30
+ @exchange['rates'].each do |types|
31
+ print types.to_s + "\n"
32
+ end
33
+ end
34
+
35
+ def rate currency
36
+ return @exchange['rates'][currency].to_s
37
+ end
38
+
39
+
40
+ def parseArgs
41
+ if args?('base')
42
+ setRate(ARGV[ARGV.index('base') + 1].upcase)
43
+ end
44
+
45
+ unless args?('base') || args?('against') || args?('from')
46
+ puts "No base rate set,\nset base rate by typing 'base' and than the three letter currency.\nDefaulting to USD.\n\n"
47
+ setRate('USD')
48
+ end
49
+
50
+ if args?('against')
51
+ setRate(ARGV[ARGV.index('against') + 1].upcase)
52
+ end
53
+
54
+ if args?('rates')
55
+ rates
56
+ end
57
+
58
+ if args?('rate')
59
+ puts rate ARGV[ARGV.index('rate') + 1].upcase
60
+ end
61
+
62
+ if args?('from') && args?('to')
63
+ setRate(ARGV[ARGV.index('from') + 2].upcase)
64
+ from = ARGV[ARGV.index('from') + 1].to_f
65
+ to = ARGV[ARGV.index('to') + 1].upcase
66
+ puts currencyConvert from, to
67
+ end
68
+ end
69
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: coins
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Demonstrandum
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A live terminal currency exchange rate converter
14
+ email: knutsen@jetspace.co
15
+ executables:
16
+ - coins
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/coins
21
+ - lib/coins.rb
22
+ homepage: https://github.com/Demonstrandum/Coins
23
+ licenses:
24
+ - GPL-3.0
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.9.2
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.6.11
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Terminal currency converter
46
+ test_files: []