Groovy

GroovyのStringを引数に取るDateのコンストラクタは「1582/01/01」-「1582/10/14」の期間に予想外の値を返す

そもそもコンストラクタだけなのかどうかも調べてないですが。。。 結論 Groovyで「1582/01/01」〜「1582/10/14」は正しく日付がとれなかった。 少なくてもStringを引数に取るコンストラクタを使用した場合。(他は調べてない。) assert new Date("1582/10/…

Groovyのsumメソッドは空のListで実行するとnullが返ってくる

GroovyではCollectionクラスにsumメソッドがあります。 assert [1,2,3,4,5,6].sum() == 21 普通に使っている分にはいいですが、空のListだとnullが返ってきたので驚きました。。。 assert [].sum{} == null で、Twitterで呟いたら。。。 window.twttr = (fun…

GebのグループIDは0.9.0で変更されている

GebのグループIDは0.9.0で以下のように変更されています。(2014/04/17時点での最新版は0.9.2) 新グループID org.gebish 旧グループID org.codehaus.geb リリースノートがどこにあるのかわかりませんでしたが、0.9.0のマニュアルの記述が変更されています。…

Mapの初期化でKeyをGStringにした場合、getメソッドを使用しないと値を取得できない。

表題の通り。 Mapの初期化時には変数名を直接指定できないので、GStringで対応していたらハマった。 っというか、元々はcollectEntriesイジっててハマったのでcollectEntriesがおかしいって記事まで書いてた。。。 環境 $ groovy -version Groovy Version: 2…

GebでSelect要素の選択が遅い

追記(2014/04/17) 解決しました。 id:kyon_mmさんがコメントで指摘くださいました。 0.9.0で修正されているらしいのでバージョンを上げればよし。 具体的には「@Grab("org.codehaus.geb:geb-core:*")」を「@Grab("org.gebish:geb-core:0.9.2")」と変更すれ…

Gebを使ってみた。

G*系の勉強会で何回か聞いたことあるので名前は知っていましたが、使ったことはなかったのでとりあえず使ってみました。 資料が少なすぎる、あっても古くてそのままじゃ使えない、色々わかってる前提で書かれてる等々、苦労はありましたがなんとか動作する所…

Spockを使ってみた

G*界隈でよく聞くテスティングフレームワークのSpockを使ってみました。 名前や記事は良く見てたのですが、JUnit自体を殆ど使用していなかったので実践はしていませんでした。 が、JUnitをいくらか勉強してみたら興味がわいたので試してみた次第。 前提 IDE …

httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!(Groovy版)

一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なツールを用意しました。 http://blog.64p.org/entry/2013/02/21/…

groovyのleftShift(<<)で文字コードを指定する

前置き 私はGroovyをプロダクトに使えるような感じではないので、ちょっとしたツール作成やら、ちょっとした作業を自動化する時に主に使っています。 こういう用途だとファイルに出力することが結構多いので、「 new File("c:\\work\\output.txt") << "あう…

groovyでenumをネストするようにするとコンパイルが終わらない場合がある。

まともやenumにハマりました。 前回ハマったのはこれ → enumの抽象メソッドはgroovyでサポートされてない? #jggug #q - 旧山pの楽しいお勉強生活 現象 ↓のコードはコンパイルが終わりません。 public enum EnumSample { HOGE() public enum NestEnum { HUG…

MarkupBuilderで要素の定義を別で定義したい。

少しタイトルが変わってますが、MarkupBuilderで要素の作成を別メソッドにする方法がわからない。 - 旧山pの楽しいお勉強生活の続き。前回、delegateを使用することでクロージャを外部に定義する方法がわかった。 import groovy.xml.MarkupBuilder def xml …

enumの抽象メソッドはgroovyでサポートされてない? #jggug #q

表題の通り。 groovyでenum書いててコンパイルできなかったのでメモ。 (構文ミスってるかと思って何度も確認したので。。。) 前提 javaではenumで抽象メソッドを定義することが可能です。 これにより、新たに値を増やした際に抽象メソッドの実装漏れを防ぐ…

MarkupBuilderで要素の作成を別メソッドにする方法がわからない。

GroovyでXMLを出力するにはMarkupBuilderを使えば簡単らしいのでやってみた。 <root> <id>1</id> <user> <name>yamada</name> <car> <name>car1</name> </car> </user> <company> <name>kaisha</name> <car> <name>car2</name> </car> </company> </root> このXMLを出力したい場合には以下のコードで出力可能。 import groovy.xml.MarkupBuilder new MarkupBuilder().root(){ …

Gradleはじめました

実務でbuildはAntで行っていて、build.xmlを調べながら変更できる位の理解度の私がgradle使ってみた。 ちなみに、Mavenは使った事がある位。理解なんて微塵もしていない状態。きっかけは「5月21日 第21回 G*ワークショップ #jggug(東京都)」でのid:nobusueさ…