Skip to content

Instantly share code, notes, and snippets.

@halcat0x15a
Created October 8, 2011 07:52
Show Gist options
  • Save halcat0x15a/1271996 to your computer and use it in GitHub Desktop.
Save halcat0x15a/1271996 to your computer and use it in GitHub Desktop.
もっといい方法ないんですの。
(field[User]("user")(json) <*>
(field[Boolean]("truncated")(json) <*>
(field[String]("text")(json) <*>
(field[String]("source")(json) <*>
(field[Boolean]("retweeted")(json) <*>
(field[Int]("retweet_count")(json) <*>
(field[Option[Place]]("place")(json) <*>
(field[Option[Id]]("in_reply_to_user_id")(json) <*>
(field[Option[Id]]("in_reply_to_status_id")(json) <*>
(field[Option[String]]("in_reply_to_screen_name")(json) <*>
(field[Id]("id")(json) <*>
(field[Boolean]("favorited")(json) <*>
(field[Entities]("entities")(json) <*>
(field[String]("created_at")(json) <*>
(field[Option[Coordinates]]("coordinates")(json) <*>
(field[Option[List[Id]]]("contributors")(json) map
(Status.apply _).curried))))))))))))))))
for {
a <- field[Option[List[Id]]]("contributors")(json).map((Status.apply _).curried)
b <- field[Option[Coordinates]]("coordinates")(json).map(a)
c <- field[String]("created_at")(json).map(b)
d <- field[Entities]("entities")(json).map(c)
e <- field[Boolean]("favorited")(json).map(d)
f <- field[Id]("id")(json).map(e)
g <- field[Option[String]]("in_reply_to_screen_name")(json).map(f)
h <- field[Option[Id]]("in_reply_to_status_id")(json).map(g)
i <- field[Option[Id]]("in_reply_to_user_id")(json).map(h)
j <- field[Option[Place]]("place")(json).map(i)
k <- field[Int]("retweet_count")(json).map(j)
l <- field[Boolean]("retweeted")(json).map(k)
m <- field[String]("source")(json).map(l)
n <- field[String]("text")(json).map(m)
o <- field[Boolean]("truncated")(json).map(n)
p <- field[User]("user")(json).map(o)
} yield p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment