heroku と unfiltered 使って、ブラウザ上で xtend を試せるサイトを作った

作ったの数日前(っていうかゴールデンウィークの最後のあたり引きこもってこれやってた)だけど、そういえばblogに書いてなかった

http://xtend.herokuapp.com/
https://github.com/xuwei-k/xtend.herokuapp.com

日本語でtweetくらいしかしてなかったのに、なぜか公式のtwitterに拾われたでござる((((;゚Д゚)))

このblog書いてる時点のversionでは、webブラウザ上からxtend のコードを書くと、無理やりAというclassにラップして、Javaコードに変換してる。
なぜラップしたかというと

  • xtendはJavaと同じく、publicなclassは、"package名とclass名"を、"ディレクトリ構造とファイル名"に対応させないといけないらしい
  • トップレベルのclass書けるようにするには、ユーザーにファイル名入力させる?
  • ユーザー(というか自分が)ちょっとしたコード試すのに、いちいちファイル名入力してclass名と合わせるの面倒・・・
  • じゃぁユーザーにファイル名入力させないとすると、こっち側で、ファイルからpackageの宣言とclass名の部分を読み取らないといけない
  • それも面倒なので、とりあえず最初は、勝手にラップするversionで作った

という経緯

xtend は少なくとも現行のversionは内部class書けない(?)らしいので、トップレベルに書くのはメソッドかフィールドということになる。

で、その xtend のソースを送信する部分とJavaコードを受け取る部分は API を JQuery でたたいてる

もともと、ある程度 API だけ先につくって汎用的になってて、実は複数のxtendファイル送れるようになってる。けど、webのclientの実装がされてないので、そのうちやる気がでたら実装するかもしれない。

あと、APIをたたくScalaのclientも一応ある

https://github.com/xuwei-k/xtend.herokuapp.com/blob/e3cd434ef3b3a83f65f7d04a6b6f7efdb35558de/client/src/main/scala/Client.scala