scala + amqp

以下、Java 版 RabbitMQ Client の接続例
ConnectionFactory factory = new ConnectionFactory()
factory.setUsername(userName);
factory.setPassword(password);
factory.setVirtualHost(virtualHost);
factory.setHost(hostName);
factory.setPort(portNumber);
Connection conn = factory.newConnection();

これを Scala を使ってラップしたい。

・案1:コールバック内で設定する(implicit 使ってみたい病
val conn = connect {implicit prop =>
    username(userName)
    password(password) // ..snip..
}

・案2:DSL で Factory を作る
考えたけど挫折

・案3:素直に名前付き引数
val conn = connect(
    username -> userName,
    password -> password
)

・案4:Map を使う
val conn = connect(Map(
    username -> userName,
    password -> password
))

Scala が得意な方は、こーいう時は、どうするんだろ?