Groovy
Groovy 2.1.1が出ていたことは知っていたので、ダウンロードしようと思った時にGroovyのダウンロードページにこんな表記があるのに気付きました。GVM??全然知らないし、今まで気付きもしませんでした…。いつからあったんだろう。オフィシャルサイト GVM(t…
コロッと忘れていたようなので、メモ。java.util.regex.Matcher#replaceAllやreplaceFirst、String#replaceAllやreplaceFirstで$を使った後方参照が使えます。普段あんまりJavaで正規表現による置換を多用しないのと、Perlに頼り切ってることが多かったです…
Readをやったので、今度はWriteということで。記載パターンは、以下の2通り。 変数messageに格納された文字列を一括してファイル出力 改行を含まない文字列リストmessagesに対して、行末に改行(LF)を付与してファイル出力 今回も、前提はこんな感じです。 …
ふと、書いてみたくなりまして。だいたいスクリプト系の言語で、よく忘れてしまうのが書いた動機です…。記載パターンは、以下の2通り ファイルの中身を全て読み込んで、1つの文字列として変数contentsに格納 ファイルの中身を全て読み込んで、改行無しの1行…
mustacheにはGroovy版はありませんが、そのままJava向けのmustache.javaが使えます。mustache.javaではMapのキーが使えることを考えると、MapとListでけっこう簡単にバインドするオブジェクトを表現することができます。例えば、mustache.javaのサンプルでJa…
前のエントリで、Groovy/Scalaでプロセス起動に関するコードをちょこちょこと書いていたのですが、ちょっと自分が割と使う言語でまとめてみることにしました。ほんの、サンプルです。サンプルのお題は、 外部プロセスの実行結果(戻り値)を取得し、変数ret…
前に、仕事でJavaのプロパティファイルを比較するのに、Groovyで簡単なスクリプトを作りました。プロパティファイルにいろいろ環境に依存した設定が書かれていて、なおかつその内容がExcelとかで管理されていたので実際のソースコードとその内容が一致してい…
ちょっと試したいことがあって、HTTPサーバを用意したかったのですがApacheとかをインストールするのも面倒だったので、JDK 6から同梱されている簡易HTTPサーバを使ってみることにしました。が、実際に書いたのはJavaも面倒で、Groovyですが(笑)。参考にし…
なんか、9月21日にGroovyの2.0.4がリリースされてたみたいですね。とりあえず、インストールしておきました。 $ groovy -version Groovy Version: 2.0.4 JVM: 1.7.0_07 Vendor: Oracle Corporation OS: Linux バグフィックスリリースだそうな。それにしても…
また小ネタです。Groovyは、groovyコマンドの「-e」スイッチでOne Linerを実行することが可能ですが、これを使って現在のシステムプロパティを出力するコードを書いてみましょう。んで、できたのがこちら。 $ groovy -e 'System.properties.sort().each{prin…
小ネタです。Groovyで、現在実行中のスクリプトファイルのパスおよびファイル名を取得する方法です。サンプルコード。 print_script_name.groovy println("path => " + this.class.protectionDomain.codeSource.location.path) println("fileName => " + new…
タイトルの通り、今度はGradleのWar PluginとJetty Pluginを使ってWebアプリ…というかサーブレットプログラミングをやってみようと思ったのですが、うまくいきませんでしたという…。一応、以下を見ながらやったんですけどね、何がマズかったんでしょう? htt…
昨日はGradleをちょっと使ってみたわけですが、元がGroovyだからかどうかはわかりませんけど、とにかく重い印象があります。やっぱり、こういうのって1回きりの使い捨てより、常駐型でないと厳しいですよね。というわけで、ここでGradleが用意しているのがDa…
今度は、GradleでScalaを使って「Hello World」をやってみましょう。基本、ユーザガイドに沿ってやっていく感じです。 http://www.gradle.org/docs/current/userguide/scala_plugin.html Scala用のプロジェクトを作る まずはディレクトリ作成。 $ mkdir hell…
Gradleで「Hello World」をするのにJavaを使ったわけですが、そもそもユーザガイドの最初がJavaから入っているわけで、Gradleのスタンス的には GradleはGroovyで書かれているけど、ビルドツールとしてはJava標準でGroovyもサポートしてるよくらいなのかもし…
ちょっと更新間隔が空いてしまいましたね。いろいろと予定があったり、暑さに負けたり(笑)していたのが主な原因ですが…。あと、NettyがそろそろVersion 4を出しそうな雰囲気なのですが、Alpha1からまだしばらくかかりそうなので、方向を変えてGradleを触っ…
Groovy 2.0が出ましたね〜。機能的なところはあんまり見てませんが、なんか型チェックとかができるようになったんだとか?それって、Groovyで待ち望まれてたものなんでしょうか?よくわからんです…。ま、とりあえずバージョンアップはしておきましたと。とこ…
今日の小ネタ、第2弾。ホント、なんとなく書いてます…。ScalaにはOptionというクラスがあって、標準ライブラリやら普通のアプリケーションのコードの至る所に出てきます。これは、どこぞのMaybeモナド…にあたるものだと思うのですが、これをGroovyで書いてみ…
あまり意味のない小ネタです。JavaScriptで使われるテクニックとして、即時関数というものがあると思います。こういうやつですね。 immediate_func.js (function (firstName, lastName) { println("Hello! [" + firstName + " " + lastName + "]"); })("Taro…
先週購入したこんな本を読んでいて、Groovyであんまり見慣れないコードが書いてあるのを見つけました。実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ (Programmer’s SELECTION)作者: Debasish Ghosh,佐藤竜一出版社/メーカー: 翔泳社発売日…
Clojureの入出力系の関数を一通り目を通した(と思っている)ので、ちゃんとアプリっぽいものを書いてみようとClojureでEcho Serverを書くことにチャレンジしてみました。今回のEcho Serverの動作は、以下の通りです。 起動引数にポート番号、またはホスト名…
珍しくトラックバックなどいただいたので、もうちょっとこのネタを書いてみることにしました。関数合成して何が嬉しいのか…ですが、前の例みたいな足し算、掛け算なんか書いても、確かにあんまりまあ現実味ないですからねぇ。それに、こういう単純なメソッド…
以前、JavaとScalaで同じようなタイトルのエントリを書いたことがありましたが、これには元ネタがあって、そちらは実はGroovyだったりします。元々、仕事でクラスをディレクツリーを辿って動的に走査して、見つかったクラスの継承関係やらアノテーション付与…
あまり使ったことがないので、メモを兼ねて試してみます。 Groovy Groovyの場合は、Closureクラスのインスタンスを合成します。使用するメソッドは、leftShift(>)です。 def add2 = { x -> x + 2 } def multiply3 = { x -> x * 3 } def multiply3AndAdd2 =…
最近、業務でこそっとGroovyを使いだしているのですが、軽くクロージャ周りでハマったのでメモ。別に階乗のプログラムが書きたかったわけではないのですが、サンプルとして。 def factorial = { n -> if (n > 0) { n * factorial(n - 1) } else { 1 } } prin…
Groovyでは、スクリプト中の変数のスコープが宣言方法で大きく変わるようです。これも仕事でGroovyを使っていて、ハマったのでメモ。例えば、以下のスクリプトについて。 binding_local.groovy outside = "binding object" def outsideLocal = "local object…