universaltranslator 1.0.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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/universaltranslator.rb +99 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9dc174bf279916bfc29dd60ac3175987385556903468aed3bb6f6241e17d82d3
4
+ data.tar.gz: ad2006b62fd210339bc567407ba590f9c5dc9d5971b7f670f49bf1734eb83dd8
5
+ SHA512:
6
+ metadata.gz: f86d1f6bd647de79c9b3fc620192439600d2fc58870afca4e37ae6e6cd6413afc917b25c7fcd539624e3d720fb28086e2515293720244556178fac77fb2d1d36
7
+ data.tar.gz: b721d6fb82862684e8a1904e7cdba83c8cb69791ffa5ff9a46a90722a67b52b60737250d37ddf93040cb352048ddd04238227d527dcdfaf5c58f8dcfcd239698
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This class converts between international metric units
4
+ class UniversalTranslator
5
+ def initialize
6
+ @translations = {
7
+ 'km' => 1000,
8
+ 'hm' => 100,
9
+ 'dam' => 10,
10
+ 'm' => 1,
11
+ 'dm' => 0.1,
12
+ 'cm' => 0.01,
13
+ 'mm' => 0.001
14
+ }
15
+ end
16
+
17
+ def get_data(input)
18
+ lineslist = []
19
+
20
+ return 'File is empty' if File.zero?(input)
21
+
22
+ # Check if input is valid
23
+ begin
24
+ File.foreach(input) { |line| lineslist.push(line) }
25
+ rescue StandardError
26
+ return 'Input is invalid'
27
+ end
28
+
29
+ values = []
30
+ froms = []
31
+ tos = []
32
+ i = 0
33
+
34
+ loop do
35
+ i += 1
36
+
37
+ break if i == lineslist.length
38
+
39
+ # Check if there is missing data
40
+ tmp = lineslist[i].split(' ')
41
+ return 'There is missing data' if tmp.length != 3
42
+
43
+ # Check if value is valid
44
+ if tmp[0].to_i.zero?
45
+ return 'Your value is not valid or is 0'
46
+ else
47
+ values << tmp[0].to_f
48
+ end
49
+
50
+ # Check if initial metric unit is valid
51
+ if @translations.key?(tmp[1])
52
+ froms << @translations[tmp[1]].to_f
53
+ else
54
+ return 'There is an error in a initial metric unit'
55
+ end
56
+
57
+ # Check if destiny metric unit is valid
58
+ if @translations.key?(tmp[2])
59
+ tos << @translations[tmp[2]].to_f
60
+ else
61
+ return 'There is an error in a destiny metric unit'
62
+ end
63
+ end
64
+ calculate_and_print(values, froms, tos)
65
+ 'Succesfully Made Output'
66
+ end
67
+
68
+ def calculate_and_print(value, from, to)
69
+ outputs = []
70
+ i = 0
71
+ loop do
72
+ break if i == value.length
73
+
74
+ tmp_from = from[i]
75
+ tmp_to = to[i]
76
+
77
+ if value[i] < 1
78
+ tbt = value[i] / tmp_from
79
+ tbt *= tmp_to
80
+ else
81
+ tbt = value[i] * tmp_from
82
+ tbt /= tmp_to
83
+ end
84
+ outputs << tbt
85
+ i += 1
86
+ end
87
+ file = File.open('output.txt', 'w')
88
+ file.puts 'Value Desde Hasta Output'
89
+ i = 0
90
+ loop do
91
+ break if i == value.length
92
+
93
+ tmp_string = (value[i].to_s + ' ' + from[i].to_s + ' ' + to[i].to_s + ' ' + outputs[i].to_s)
94
+ file.puts tmp_string
95
+ i += 1
96
+ end
97
+ file.close
98
+ end
99
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: universaltranslator
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Marino Gomez
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-05-19 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple gem to translate metric units
14
+ email: marinogomez24@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/universaltranslator.rb
20
+ homepage: https://rubygems.org/gems/universaltranslator
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.0.3
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Translate to international units
43
+ test_files: []