月別アーカイブ: 2014年5月

[Play] APIドキュメントの生成を抑制する

play stage とか play dist とかしたときに何故がAPIドキュメントとかが生成されちゃって、
ただでさえ遅いscalaのコンパイルがさらに遅くなってイライラしているそんな貴方、こちらをお試しあれ。

build.sbt(プロジェクトのルートにあると思う)の playScalaSettings にちょっと手を加えれば解決できます。

こんな感じ

name := "playapplication"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache
)     

//play.Project.playScalaSettings
// ↓ こんな感じに書き換える (ver2.2以下)
play.Project.playScalaSettings ++ Seq(doc in Compile <<= target.map(_ / "none"))

// ↓ (追記) 2.3以降だと下記の行を加えるとOK
doc in Compile <<= target.map(_ / "none")

こうするとドキュメントの生成を止めてくれますよ。
※playframework 2.2.2で動作確認

[Play] Playframeworkのセッションでハマる!

表題の時点で分かる人は大体「あー、あれだな!」って気づかれてしまうネタですけど、
拡散の意味を含めて投稿しておきます。

セッションに値を設定する時にwithSessionを使いますよね。
んで、新規セッションとする場合にはwithNewSessionを使う。

コードだとこんな感じ

Ok(・・・).withSession("authKey" -> "eyewhale")
Ok(・・・).withNewSession

そもそもこのメソッド名が混乱の元なんですよね。
一方がNewSessionならもう一方は既存のセッションを引き継ぐって思ってしまうんですが、これが間違い!
withSessionは指定された内容で既存セッションを丸ごと上書きします!!(重要)
(with・・・なのでそうあるべきなのは分かりますが)

なのでセッションに追加したい場合には

Ok(・・・).withSession(session + ("authKey" -> "eyewhale"))

のように記述する必要があります。
複数の値をセットする場合にはこんな感じ。

Ok(・・・).withSession(
      session + ("authKey" -> "eyewhale") + ("authorName" -> "tateo"))

逆にセッションから値を消す場合にはマイナスすれば消えてくれます。

Ok(・・・).withSession(session - "authKey")

という事で、
気をつけなはれや!