package cooler_test import ( "context" "encoding/json" "fmt" "time" "git.golem15.com/golem15/summercms/modules/backpack" "git.golem15.com/golem15/summercms/modules/cooler" ) func ExampleFromApp() { // serve publishes the Cache at start-up; a job or console command asks // FromApp, which builds the configured driver (memory here) once. app := backpack.New(nil) cache, err := cooler.FromApp(app) if err != nil { fmt.Println(err) return } ctx := context.Background() loads := 0 popular := func(context.Context) ([]byte, error) { loads++ return json.Marshal([]string{"Hello", "Summer"}) } var titles []string for range 2 { raw, err := cache.Remember(ctx, "blog:popular", 10*time.Minute, popular) if err != nil { fmt.Println(err) return } if err := json.Unmarshal(raw, &titles); err != nil { fmt.Println(err) return } } fmt.Println(titles, loads) // Output: [Hello Summer] 1 }