-
-
Save korutsuru/733098 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
Ok, me tome la libertad de llenar este programa de comentarios | |
en virtud de que quede super bien entendido ¿ok?, trataré de | |
comentarlo a nivel noobie. | |
=end | |
headers = nil #aqui almacenaremos los headers (les dije que nivel noobie!) | |
rows = [] #se declara un array que de momento esta vacio, aqui guardaremos las filas | |
File.open(ARGV[0] || 'data.csv', 'r') do |file| | |
=begin | |
File.open('file name','mode') do |x| | |
donde x podremos poner el nombre de la cadena que será tratada como una linea de texto | |
los modos pueden ser: | |
r=solo lectura | |
r+=lectura-escritura | |
w=solo escritura | |
ARGV es un array global donde se almacenara cualquier cosa | |
que escribas despues del nombre de tu programa de ruby. | |
por ejemplo si corres el programa así: | |
ruby analizer.rb "hola mundo" "como estan" 4 | |
el array ARGV tomará estos valores: | |
ARGV ["hola mundo","como estan",4] | |
Entonces el nombre del archivo que abriremos es: | |
ARGV[0] || 'data.csv' (recuerden que || es OR) | |
osea el nombre del archivo puede ser ARGV[0] OR el archivo 'data.csv' | |
esto nos da chance de tener dos formas de ejecutar el programa | |
forma 1: | |
ruby analizer.rb | |
forma 2: | |
ruby analizer.rb 'filename.csv' | |
la forma 2 nos da oportunidad de elegir otro csv en vez del data.csv | |
que pusimos por default. | |
=end | |
headers = file.gets.split(',') #file de momento es la primer línea de texto y se almacena en headers dividida por comas | |
while(line = file.gets) do #aqui file ya es la segunda linea de texto y entra en el ciclo while hasta que termina, en cda vuelta se le asigna el valor de file.gets a 'line' | |
cols = line.split(',') #la linea 'line' se divide por comas y se almacena en cols | |
#en la primera vuelta será cols ['September 13, 2010','Pepe Juarez','No'"Complete task # 34",'learn ruby'] | |
rows << cols #con << se iran uniendo cada columna a la fila creando un array multidimensional | |
=begin | |
rows [['September 13, 2010','Pepe Juarez','No',"Complete task # 34",'learn ruby'] | |
['October 20, 2010','Pepe Juarez','Yes',"Complete task # 65",'A new issue arose on XYZ module']] | |
=end | |
end | |
end | |
puts "Tu csv tiene #{headers.size} columnas " #.size es igual a .lenght te dice la cantidad de elementos dentro | |
puts "Tu csv tiene #{rows.size} renglones " #.size es igual a .lenght te dice la cantidad de elementos dentro | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
# Imprime el ultimo elemento de la primer fila | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
puts rows[0].last #pone el ultimo elemento de la primera fila que es 'learn ruby' | |
puts "-"*20 #linea punteada fancy, no le hagan caso | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
# Imprime las fechas | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
rows.each do |element| #pasara por ambos arrays dentro de rows y a cada elemento dentro de cada array se les llamara 'element' | |
puts "Las fechas son #{element[0]}" #elemento 0 del array 1 es: 'September 13, 2010' | |
#elemento 0 del array 2 es: 'October 20, 2010' | |
end | |
puts "-"*20 #linea punteada fancy, no le hagan caso | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
# Aqui no se que hace xD | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
count = 0 | |
rows.each do |element| | |
element[2].gsub!(/^\s/, '') | |
=begin | |
gsub!(a,b) sustituye a con b | |
a debe ser un pattern (regular expresion) | |
lo que entendí es que las patterns en ruby se escriben dentro de slashes /pattern/ | |
y en este caso segun entendi despues de una breve leida | |
^(lo que comience con)\s(espacio) sera sustituido por '' | |
en otras palabras quiere eliminarle los espacios a como entendi esto pero not so sure :/ | |
=end | |
count += 1 if element[2].chomp == 'Pepe Juarez' #el .chomp le quita el ultimo caracter a element[2] creo que lo utilizamos mal | |
end | |
puts "Contador = #{count}" | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
# Quiero que me diga cuantas tareas esta haciendo pepe juarez (creo que era lo que hicimos en el anterior) | |
#//////////////////////////////////////////////////////////////////////////////////////////// | |
c=0 | |
rows.each do |element| | |
c+=1 if element[2].to_s =='Pepe Juarez' #el to_s pasa el elemento a cadena | |
end | |
print (c>0? "Pepe Juarez realizo #{c} tareas" :'pepe no hizo nada') #forma corta del if: condition? true : false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
headers = nil | |
rows = [] | |
File.open(ARGV[0] || 'data.csv', 'r') do |file| | |
headers = file.gets.split(',') | |
while(line = file.gets) do | |
cols = line.split(',') | |
rows << cols | |
end | |
end | |
puts "Tu csv tiene #{headers.size} columnas " | |
puts "Tu csv tiene #{rows.size} renglones " | |
# Imprime la ultima columna del primer elemento | |
puts rows[0].last | |
puts "-"*20 | |
rows.each do |element| | |
puts "Las fechas son #{element[0]}" | |
end | |
puts "-"*20 | |
count = 0 | |
rows.each do |element| | |
element[2].gsub!(/^\s/, '') | |
count += 1 if element[2].chomp == 'Pepe Juarez' | |
end | |
puts "Contador = #{count}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Date | Team member | Was I able to fulfill what I committed to? | What am I comfortable committing to today? | What is obstructing me in meeting my commitments? | |
---|---|---|---|---|---|
September 13, 2010 | Pepe Juarez | No | Complete task # 34 | learn ruby | |
October 20, 2010 | Pepe Juarez | Yes | Complete task # 65 | A new issue arose on XYZ module |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment