Skip to content

Commit

Permalink
Merge pull request mouredev#4537 from N0HagoNada/main
Browse files Browse the repository at this point in the history
  • Loading branch information
Roswell468 authored Jun 24, 2024
2 parents 11b4586 + 1946bf6 commit 04ed7a2
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Roadmap/24 - DECORADORES/go/N0HagoNada.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func main() {
}

fmt.Printf("Price of veggeMania with tomato and cheese topping is %d\n", pizzaWithCheeseAndTomato.getPrice())
fmt.Println("-------------------------------------- RETO --------------------------------------------------------")
fmt.Println("-------------------------------------- RETO ------------------------------------------------")
// Aplicamos el decorador CountCalls a nuestra función de ejemplo ExampleFunction
DecoratedFunction := CountCalls(ExampleFunction)

Expand Down
86 changes: 86 additions & 0 deletions Roadmap/25 - LOGS/go/N0HagoNada.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package main

import (
"log"
"os"
"sync"
"time"
)

var (
logger *log.Logger
once sync.Once
)

func GetLogger() *log.Logger {
once.Do(func() {
logger = log.New(os.Stdout, "", log.LstdFlags|log.Lshortfile)
})
return logger
}

type Tarea struct {
Nombre string
Descripcion string
}

type GestorTareas struct {
tareas []Tarea
}

func (g *GestorTareas) AñadirTarea(nombre, descripcion string) {
l := GetLogger()
inicio := time.Now()

g.tareas = append(g.tareas, Tarea{Nombre: nombre, Descripcion: descripcion})

l.Printf("Tarea añadida: %s - %s", nombre, descripcion)
l.Printf("Tiempo de ejecución para añadir tarea: %v", time.Since(inicio))
}

func (g *GestorTareas) EliminarTarea(nombre string) {
l := GetLogger()
inicio := time.Now()

for i, tarea := range g.tareas {
if tarea.Nombre == nombre {
g.tareas = append(g.tareas[:i], g.tareas[i+1:]...)
l.Printf("Tarea eliminada: %s", nombre)
l.Printf("Tiempo de ejecución para eliminar tarea: %v", time.Since(inicio))
return
}
}

l.Printf("No se encontró la tarea: %s", nombre)
l.Printf("Tiempo de ejecución para buscar tarea: %v", time.Since(inicio))
}

func (g *GestorTareas) ListarTareas() {
l := GetLogger()
inicio := time.Now()

l.Println("Lista de tareas:")
for _, tarea := range g.tareas {
l.Printf("- %s: %s", tarea.Nombre, tarea.Descripcion)
}

l.Printf("Tiempo de ejecución para listar tareas: %v", time.Since(inicio))
}

func main() {

l := GetLogger()
l.Println("Iniciando programa de gestión de tareas")

gestor := &GestorTareas{}

gestor.AñadirTarea("Comprar víveres", "Ir al supermercado y comprar alimentos para la semana")
gestor.AñadirTarea("Hacer ejercicio", "Realizar 30 minutos de cardio")
gestor.ListarTareas()
gestor.EliminarTarea("Hacer ejercicio")
gestor.ListarTareas()
gestor.EliminarTarea("Tarea inexistente")

l.Println("Finalizando programa de gestión de tareas")

}

0 comments on commit 04ed7a2

Please sign in to comment.