txt_timesheet 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.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/README.md +1 -0
- data/assets/file1.txt +8 -0
- data/assets/file2.txt +12 -0
- data/assets/file3.txt +14 -0
- data/lib/txt_timesheet.rb +77 -0
- metadata +51 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 95743e89d67929a47fd07a4528cc45af611e3f95a7e55338f24891e2059ca300
|
4
|
+
data.tar.gz: 998d7f114174749f8188d746fafc6ba42dc520371663cb0eb39889ddecbe9f84
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5b959c7d965c086d305af56e9409987e47764b9d96f26e8673a3f0d62c0684b7d807b138a8228c9845d77ca526932b24623668344d9b30db04a21d19f5ecac6e
|
7
|
+
data.tar.gz: 80a6f3d97a514307d0668e6f59ccdb57cd13f998513795daa1c37500536bca260abd6f992743b5f70d3dd069de78cd7ae9b1ea2c0d2c0c6d805d183b1dd1ffc3
|
data/.gitignore
ADDED
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# txt-timesheet
|
data/assets/file1.txt
ADDED
data/assets/file2.txt
ADDED
data/assets/file3.txt
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
## Timesheet
|
2
|
+
|
3
|
+
morning: 09:45
|
4
|
+
brb lunch: 12:28
|
5
|
+
back: 13:31
|
6
|
+
brb: 18:07
|
7
|
+
back: 23:11
|
8
|
+
leaving: 23:11
|
9
|
+
|
10
|
+
## Daily report
|
11
|
+
|
12
|
+
Leaving:
|
13
|
+
- syncs with Flávia, and with Iago and Arthur
|
14
|
+
- started working on CRM side to create user with password in authenticator
|
@@ -0,0 +1,77 @@
|
|
1
|
+
time_regex = /(?<hours>\d{2})\:(?<minutes>\d{2})/
|
2
|
+
|
3
|
+
puts "REPORT:"
|
4
|
+
#### Percorre todos os arquivos na linha de comando
|
5
|
+
ARGV.each do|a|
|
6
|
+
sum_time = 0
|
7
|
+
i = 0
|
8
|
+
files = a
|
9
|
+
file = "../assets/#{a}"
|
10
|
+
content_file = File.open(file)
|
11
|
+
i_count = 0
|
12
|
+
time = []
|
13
|
+
time_to_min = []
|
14
|
+
|
15
|
+
### Percorre todas as linhas do arquivo de entrada para extrair os horários no formato hh:mm
|
16
|
+
while ! content_file.eof?
|
17
|
+
line = content_file.gets.chomp
|
18
|
+
if time_regex.match(line)
|
19
|
+
hours = time_regex.match(line)[:hours]
|
20
|
+
minutes = time_regex.match(line)[:minutes]
|
21
|
+
time.push(hours + ":" + minutes)
|
22
|
+
i+=1
|
23
|
+
end
|
24
|
+
end
|
25
|
+
i_count = time.count - i_count # Conta quantas registros tem em cada arquivo
|
26
|
+
content_file.close
|
27
|
+
###
|
28
|
+
|
29
|
+
### itera pelo array de strings e converte para inteiros
|
30
|
+
i = 0
|
31
|
+
inteiro = []
|
32
|
+
i_parse_int = i_count * 2
|
33
|
+
time.each do |a|
|
34
|
+
a = a.split(":")
|
35
|
+
a.each do |b|
|
36
|
+
inteiro.push(b.to_i)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
###
|
40
|
+
|
41
|
+
### Converte cada horário para minutos
|
42
|
+
while i < i_parse_int
|
43
|
+
hrs = inteiro[i]
|
44
|
+
hrs = hrs * 60
|
45
|
+
hrs = hrs + inteiro[i+1]
|
46
|
+
time_to_min.push(hrs)
|
47
|
+
i+=2
|
48
|
+
end
|
49
|
+
###
|
50
|
+
|
51
|
+
### Calcula o tempo trabalhado em minutos
|
52
|
+
i = 0
|
53
|
+
while i < i_count
|
54
|
+
sum_time = time_to_min[i+1] - time_to_min[i] + sum_time
|
55
|
+
i+=2
|
56
|
+
end
|
57
|
+
###
|
58
|
+
|
59
|
+
### Converte o tempo trabalhado para o formato hh:mm
|
60
|
+
hours = sum_time/60
|
61
|
+
hours = hours.to_i
|
62
|
+
minutes = sum_time - hours * 60
|
63
|
+
## Adiciona o 0 para manter o padrão de 2 algarismos do padrão hh:mm
|
64
|
+
if hours < 10
|
65
|
+
hours = "0#{hours}"
|
66
|
+
end
|
67
|
+
if minutes < 10
|
68
|
+
minutes = "0#{minutes}"
|
69
|
+
end
|
70
|
+
##
|
71
|
+
|
72
|
+
time_final = "#{hours}:#{minutes}"
|
73
|
+
print "#{files}: #{time_final} hours\n"
|
74
|
+
###
|
75
|
+
|
76
|
+
end
|
77
|
+
####
|
metadata
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: txt_timesheet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Elvis Serrão
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-10-11 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Receive n files as command line parameters, parse these files and than,
|
14
|
+
calculates how many hours has been worked .
|
15
|
+
email:
|
16
|
+
- elvis.serrao1@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- ".gitignore"
|
22
|
+
- README.md
|
23
|
+
- assets/file1.txt
|
24
|
+
- assets/file2.txt
|
25
|
+
- assets/file3.txt
|
26
|
+
- lib/txt_timesheet.rb
|
27
|
+
homepage: https://elvisserrao.github.io/
|
28
|
+
licenses:
|
29
|
+
- MIT
|
30
|
+
metadata:
|
31
|
+
homepage_uri: https://elvisserrao.github.io/
|
32
|
+
post_install_message:
|
33
|
+
rdoc_options: []
|
34
|
+
require_paths:
|
35
|
+
- lib
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.3.0
|
41
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
requirements: []
|
47
|
+
rubygems_version: 3.0.3
|
48
|
+
signing_key:
|
49
|
+
specification_version: 4
|
50
|
+
summary: Calculate Timesheet.
|
51
|
+
test_files: []
|