coins 0.1.0

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.
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: []