I'm trying to port this repo from Guice to Scaldi. I'm stack in this code from /app/utils/di/SilhouetteModule.scala (lines 60-65):
Map(
credentialsProvider.id -> credentialsProvider,
facebookProvider.id -> facebookProvider,
googleProvider.id -> googleProvider,
twitterProvider.id -> twitterProvider
),
And here is where I'm now
class SilhouetteModule extends Module {
bind[DelegableAuthInfoDAO[PasswordInfo]] to new PasswordInfoDAO
bind[DelegableAuthInfoDAO[OAuth1Info]] to new OAuth1InfoDAO
bind[DelegableAuthInfoDAO[OAuth2Info]] to new OAuth2InfoDAO
bind[CacheLayer] to new PlayCacheLayer
bind[HTTPLayer] to new PlayHTTPLayer
bind[IDGenerator] to new SecureRandomIDGenerator
bind[PasswordHasher] to new BCryptPasswordHasher
bind[EventBus] to new EventBus
bind[Environment[User, CachedCookieAuthenticator]] toProvider new Environment[User, CachedCookieAuthenticator](
inject [UserService],
inject [AuthenticatorService],
// **this is where I don't know what to do**
Map(
credentialsProvider.id -> credentialsProvider,
facebookProvider.id -> facebookProvider,
googleProvider.id -> googleProvider,
twitterProvider.id -> twitterProvider
),
inject [EventBus]
)
//... *Provider bindings below
What can I do to inject the Map like in the code above?
Can Scaldi bind to a function (like @Provides annotation in Guice) ?
thanks