2012年9月29日土曜日

Jade4Jを使ってみた

ますます、ドラクエ廃人になっています。

みけです。


html…面倒くさい


ドラクエ廃人ゆえ、htmlを組むのが凄まじく

面倒くさく感じています。

そういうときこそ、

Groovyと言いたいのですが…

GroovyのMarkupBuilderも、

いいにはいいのですが、

なんだかんだいって面倒くさい。


もう少し簡単に


というわけで、面倒だな~と感じつつ作業していたのですが、

WebStormのプラグインをいじっていたら、

ふとJadeを発見しました。




Jadeとは?


JadeHamlに影響を受けて作られた

テンプレートエンジンです(詳しくはこちら)


実装されている言語は下記のとおりです。



早速使ってみました。


Javaしかできないので、必然的にjade4jを使うことになりました。

必要なGradleの設定は以下のとおりです。


apply plugin : 'groovy'
apply plugin : 'idea'
sourceCompatibility = 1.7
targetCompatibility = 1.7
group = 'org.mikeneck.jade4g'
repositories {
mavenCentral ()
maven {
url 'https://github.com/neuland/jade4j/raw/master/releases'
}
}
dependencies {
groovy 'org.codehaus.groovy:groovy:1.8.8'
groovy 'de.neuland:jade4j:0.2.15'
testCompile ('junit:junit-dep:4.10') {
exclude module : 'hamcrest'
}
}
view raw build.gradle hosted with ❤ by GitHub



サンプルまでに、学生の一覧を表示してみるという

アプリケーションを作ってみました。


学生クラスはこれ。

package org.mikeneck.jade4g.model
class Student {
long id
String firstName
String lastName
int grade
}
view raw Student.groovy hosted with ❤ by GitHub



Jadeのテンプレートはこんな感じ。

!!! 5
html
head
title= pageName
body
ul#students
for student in students
li #{student.firstName} #{student.lastName} grade #{student.grade}
p= studentsSize
view raw model.jade hosted with ❤ by GitHub



Jade4Jを使ってみるクラスはこれ。

package org.mikeneck.jade4g
import org.junit.Test
import org.mikeneck.jade4g.model.Student
import de.neuland.jade4j.Jade4J
class StudentPrint {
@Test
void print() {
def id = 0L
def students = [
['Kiriani', 'James'],
['Yohan', 'Brake'],
['Justine', 'Gatlin'],
['Felix', 'Sanchez'],
['Richard', 'Thompson']
].collect { item ->
return new Student(id : id++,
firstName: item[0],
lastName: item[1],
grade: (id + 1) * 7 % 3 + 1)
}
def map = [pageName : 'Students List',
students : students,
studentsSize : students.size()]
def url = this.class
.classLoader
.getResource('web/model.jade')
def html = Jade4J.render(url, map)
println html
}
}



出力されたhtmlはこんな感じ。

<!DOCTYPE html>
<html>
<head>
<title>Students List</title>
</head>
<body>
<ul id="students">
<li>Kiriani James grade 3</li>
<li>Yohan Brake grade 1</li>
<li>Justine Gatlin grade 2</li>
<li>Felix Sanchez grade 3</li>
<li>Richard Thompson grade 1</li>
</ul>
<p>5</p>
</body>
</html>
view raw result.html hosted with ❤ by GitHub



全般的に


すごい簡単でいいですね。

html/xml形式の堅っ苦しさがなくて、

非常に書きやすいですね。


これは今後ヒットしそうな気がします。



2012年9月24日月曜日

Android温泉2012夏の陣&つ部温泉に行ってきた #drospa2012

ドラクエ廃人のみけです。

ドラクエをやっている人は是非、ひめちゃんを雇ってあげて下さい。

温泉


Android温泉2012夏の陣&つ部温泉に行ってきました。

当日の様子については、ツイートがまとめられています



やったこと


まあ、適当にモクモクするという趣旨の合宿なので、

皆、適当にモクモクしている中、

僕は本を読んでいました。

読んでいた本はこれです。




内容


本の中身ですが、

普通のプログラマーならやってて当たり前だよねという内容でした。


合宿の方は…


大きな部屋で35人が雑魚寝するとか、

ちょっとありえない経験ができました。

また、雑魚寝とかやってみたいですね(白目