lib/txt_timesheet.rb in txt_timesheet-0.1.0 vs lib/txt_timesheet.rb in txt_timesheet-1.0.0
- old
+ new
@@ -1,77 +1,81 @@
-time_regex = /(?<hours>\d{2})\:(?<minutes>\d{2})/
+class Txt_timesheet
+ def run
+ time_regex = /(?<hours>\d{2})\:(?<minutes>\d{2})/
-puts "REPORT:"
+ puts "REPORT:"
#### Percorre todos os arquivos na linha de comando
-ARGV.each do|a|
- sum_time = 0
- i = 0
- files = a
- file = "../assets/#{a}"
- content_file = File.open(file)
- i_count = 0
- time = []
- time_to_min = []
+ ARGV.each do |a|
+ sum_time = 0
+ i = 0
+ files = a
+ file = "#{a}"
+ content_file = File.open(file)
+ i_count = 0
+ time = []
+ time_to_min = []
- ### Percorre todas as linhas do arquivo de entrada para extrair os horários no formato hh:mm
- while ! content_file.eof?
- line = content_file.gets.chomp
- if time_regex.match(line)
- hours = time_regex.match(line)[:hours]
- minutes = time_regex.match(line)[:minutes]
- time.push(hours + ":" + minutes)
- i+=1
- end
- end
- i_count = time.count - i_count # Conta quantas registros tem em cada arquivo
- content_file.close
- ###
+ ### Percorre todas as linhas do arquivo de entrada para extrair os horários no formato hh:mm
+ while ! content_file.eof?
+ line = content_file.gets.chomp
+ if time_regex.match(line)
+ hours = time_regex.match(line)[:hours]
+ minutes = time_regex.match(line)[:minutes]
+ time.push(hours + ":" + minutes)
+ i+=1
+ end
+ end
+ i_count = time.count - i_count # Conta quantas registros tem em cada arquivo
+ content_file.close
+ ###
- ### itera pelo array de strings e converte para inteiros
- i = 0
- inteiro = []
- i_parse_int = i_count * 2
- time.each do |a|
- a = a.split(":")
- a.each do |b|
- inteiro.push(b.to_i)
- end
- end
- ###
+ ### itera pelo array de strings e converte para inteiros
+ i = 0
+ inteiro = []
+ i_parse_int = i_count * 2
+ time.each do |a|
+ a = a.split(":")
+ a.each do |b|
+ inteiro.push(b.to_i)
+ end
+ end
+ ###
- ### Converte cada horário para minutos
- while i < i_parse_int
- hrs = inteiro[i]
- hrs = hrs * 60
- hrs = hrs + inteiro[i+1]
- time_to_min.push(hrs)
- i+=2
- end
- ###
+ ### Converte cada horário para minutos
+ while i < i_parse_int
+ hrs = inteiro[i]
+ hrs = hrs * 60
+ hrs = hrs + inteiro[i+1]
+ time_to_min.push(hrs)
+ i+=2
+ end
+ ###
- ### Calcula o tempo trabalhado em minutos
- i = 0
- while i < i_count
- sum_time = time_to_min[i+1] - time_to_min[i] + sum_time
- i+=2
- end
- ###
+ ### Calcula o tempo trabalhado em minutos
+ i = 0
+ while i < i_count
+ sum_time = time_to_min[i+1] - time_to_min[i] + sum_time
+ i+=2
+ end
+ ###
- ### Converte o tempo trabalhado para o formato hh:mm
- hours = sum_time/60
- hours = hours.to_i
- minutes = sum_time - hours * 60
- ## Adiciona o 0 para manter o padrão de 2 algarismos do padrão hh:mm
- if hours < 10
- hours = "0#{hours}"
- end
- if minutes < 10
- minutes = "0#{minutes}"
- end
- ##
-
- time_final = "#{hours}:#{minutes}"
- print "#{files}: #{time_final} hours\n"
- ###
+ ### Converte o tempo trabalhado para o formato hh:mm
+ hours = sum_time/60
+ hours = hours.to_i
+ minutes = sum_time - hours * 60
+ ## Adiciona o 0 para manter o padrão de 2 algarismos do padrão hh:mm
+ if hours < 10
+ hours = "0#{hours}"
+ end
+ if minutes < 10
+ minutes = "0#{minutes}"
+ end
+ ##
+ time_final = "#{hours}:#{minutes}"
+ print "#{files}: #{time_final} hours\n"
+ ###
+
+ end
+ ####
+ end
end
-####
\ No newline at end of file