diff options
Diffstat (limited to 'app/options.go')
-rw-r--r-- | app/options.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/app/options.go b/app/options.go index 3058769d6..e5ac85706 100644 --- a/app/options.go +++ b/app/options.go @@ -12,7 +12,7 @@ type Option func(a *App) // By default, the app will use the store specified by the configuration. This allows you to // construct an app with a different store. // -// The storeOrFactory parameter must be either a store.Store or func() store.Store. +// The storeOrFactory parameter must be either a store.Store or func(App) store.Store. func StoreOverride(storeOrFactory interface{}) Option { return func(a *App) { switch s := storeOrFactory.(type) { @@ -20,8 +20,10 @@ func StoreOverride(storeOrFactory interface{}) Option { a.newStore = func() store.Store { return s } - case func() store.Store: - a.newStore = s + case func(*App) store.Store: + a.newStore = func() store.Store { + return s(a) + } default: panic("invalid StoreOverride") } |