diff --git a/CHANGELOG.md b/CHANGELOG.md index bf9fb36..77be94a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog -### [0.5.0] - 2025-04-21 - 🚀 Stable release! +## [0.5.2] - 2025-04-31 - ✅ Add testable examples + +## [0.5.1] - 2025-04-31 - 📄 Add LICENSE + +## [0.5.0] - 2025-04-21 - 🚀 Stable release! Everything works. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9f61e2e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2025, Dan Jones . + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/example_test.go b/example_test.go new file mode 100644 index 0000000..d8e1240 --- /dev/null +++ b/example_test.go @@ -0,0 +1,31 @@ +//nolint:perfsprint // Not that concerned about microoptimizations for test code +package ezcache_test + +import ( + "fmt" + "time" + + "codeberg.org/danjones000/ezcache" +) + +func Example() { + // Create a five minute cache. + cache, _ := ezcache.New(func(id uint8) (string, error) { + fmt.Println("Fetching new value for", id) + return fmt.Sprintf("%d", id), nil + }, 5*time.Minute) + + val, _ := cache.Get(5) + fmt.Println("Got value", val) + val, _ = cache.Get(5) + fmt.Println("Got value", val) + val, _ = cache.Get(4) + fmt.Println("Got value", val) + + // Output: + // Fetching new value for 5 + // Got value 5 + // Got value 5 + // Fetching new value for 4 + // Got value 4 +} diff --git a/ezcache_test.go b/ezcache_test.go index b713a75..0787885 100644 --- a/ezcache_test.go +++ b/ezcache_test.go @@ -1,3 +1,4 @@ +//nolint:perfsprint // Not that concerned about microoptimizations for test code package ezcache_test import ( @@ -69,7 +70,7 @@ func TestGetExpire(t *testing.T) { assert.True(t, hit) hit = false - time.Sleep(2) + time.Sleep(2 * time.Nanosecond) val, err = cache.Get(4) assert.NoError(t, err) assert.Equal(t, "4", val) @@ -77,6 +78,7 @@ func TestGetExpire(t *testing.T) { } func TestGetError(t *testing.T) { + //nolint:err113 // It's just a test for an error. cache, _ := ezcache.New(func(k uint8) (byte, error) { return 0, fmt.Errorf("Nope for %d", k) }, 1) _, err := cache.Get(4)