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.
- checksums.yaml +7 -0
- data/lib/universaltranslator.rb +99 -0
- 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: []
|