タグ

groovyに関するkanemu1117ncのブックマーク (369)

  • メタプログラミングGroovy入門 - No Programming, No Life

    Groovy!(挨拶) 最近Groovyであまり遊べていないfumokmmです。G* AdventCalender2012の10日目ということで、久々に記事を書かせていただいております。 せっかくの機会なので、Groovyでメタプログラミングする際のとっかかり部分をまとめてみました。自分の理解が至らないところがあると思いますので、変なところがあったらツッコミよろしくお願いします。では早速スタートです。 Groovyでメタプログラミング GroovyではあらゆるクラスにExpandoMetaClassと呼ばれる特別なクラス(メタクラス)が提供されていて、メソッドやプロパティを利用する際にこのメタクラスを経由して様々な力を得ることができます。 たとえば、メタクラスに実行時、動的にメソッドを定義してあげれば、あたかも初めから存在していたかのようにそのメソッドが利用できるようになるという寸法です。

    メタプログラミングGroovy入門 - No Programming, No Life
    kanemu1117nc
    kanemu1117nc 2012/12/10
    よくわかってない内容だったので助かる
  • Jodd | Jerry

    Jerry is a jQuery in Java. Jerry is a fast and concise Java Library that simplifies HTML document parsing, traversing and manipulating. Jerry is designed to change the way that you parse HTML content. What does Jerry code look like? import static jodd.lagarto.dom.jerry.Jerry.jerry; ... Jerry doc = jerry(html); doc.$("div#jodd p.neat").css("color", "red").addClass("ohmy"); How Jerry works? We tried

  • GVM: Groovy enVironment Manager - uehaj's blog

    GVM Toolというのがありますので入れてみました。Groovyを始めとするgroovy関連のツール・フレームワーク類をインストールして、複数のバージョンを切り替えて使用したりするためのものです。RubyのRVM相当のものとのこと。 % curl -s get.gvmtool.net | bash こんな風にしてGVMをインストールした上で、以下のようにして特定のバージョンのGroovyをインストールできます。以下ではバージョンを指定していないので、最新版のgroovy(2.0.5)がインストールされることになります。 % gvm install groovy Groovy enVironment Manager 0.8 GVM server 0.8 on vertx 1.2.3.final Downloading: groovy 2.0.5 % Total    % Received

    GVM: Groovy enVironment Manager - uehaj's blog
  • Groovyで簡単な特異メソッド - opamp_sando's blog

    Rubyでいう特異メソッドをGroovyで定義する時のメモ。 例えば、Rubyなら obj1 = Object.new() obj2 = Object.new() def obj1.hello() puts "Hello world" end とするとobj1にだけhelloメソッドを持たせることができる。上のコードを実行した後irbなどでそれぞれhelloメソッドを呼びだそうとするとそれぞれ以下のようになる。 > obj1.hello() Hello world => nil > obj2.hello() NoMethodError: undefined method `hello' for #<Object:0x007fc8d2199fb8> 同じObjectクラスからできてるがobj1では正しく実行され、obj2では上のようにメソッドが定義されていないとエラーになる。 こんな具合に"

    Groovyで簡単な特異メソッド - opamp_sando's blog
  • JDK 6から同梱されている、簡易HTTPサーバを使う - CLOVER🍀

    ちょっと試したいことがあって、HTTPサーバを用意したかったのですがApacheとかをインストールするのも面倒だったので、JDK 6から同梱されている簡易HTTPサーバを使ってみることにしました。 が、実際に書いたのはJavaも面倒で、Groovyですが(笑)。 参考にしたのは、このサイトです。 http://www.techscore.com/tech/Java/JavaSE/JavaSE6/8/#mustang8-5 APIドキュメントは、こちら。 http://docs.oracle.com/javase/jp/6/jre/api/net/httpserver/spec/index.html Jerseyと組み合わせ使うこともできるみたいですよ。 http://news.mynavi.jp/column/jsr/018/index.html で、書いたコードはこちら。 LightHt

    JDK 6から同梱されている、簡易HTTPサーバを使う - CLOVER🍀
  • G*Workshop in 福岡(Groovy 2.xの新機能) - uehaj's blog

    もう1週間たっちゃいましたが、先週はG*Workshop初の九州開催ということで、福岡博多にて開催してまいりました。 @orange_cloverさんによるまとめ(ありがとうございます!)はこちら。 個人的には ラーメン旨い 替え玉を頼まないと負けになる 九州の人はみな熱い 出席率高い! 懇親会の方が人が増える!! 銘菓ひよこは福岡発祥である 福岡名物はベルギービールである ANAプレミアム特割は通常座席より安い(こともある) イカが動く へろへろでしたが、太宰府天満宮も行けて良かった。 きしださん、みなさんありがとうございました。 以下は自分の発表資料です。 G* Workshop in fukuoka 20120901 from Junji Uehara 他のみなさんの発表資料でSlideshareに上っているものはこちら。 イントロダクション Javaのテストコードを1/4にするグル

    G*Workshop in 福岡(Groovy 2.xの新機能) - uehaj's blog
  • 2012/05/21 第21回 G*ワークショップ #jggug

    橙よつ葉🍊🍀 @orange_clover Groovyのデスクトップアプリ、Webアプリ、ビルドツール 。ラスト1席。 『第21回 G*ワークショップ #jggug』 http://t.co/PYz3oBn2 2012-05-13 21:42:54 きょん@アジャイルコーチ、システムアーキテクト @kyon_mm 【Groovy勉強会】74人/75人。あとお一人様申し込めますよ。テスト,ビルドツール, Webアプリの話が聞けます。/ 5月21日 第21回 G*ワークショップ #jggug(東京都) http://t.co/7vwr7MGP 2012-05-14 10:36:25

    2012/05/21 第21回 G*ワークショップ #jggug
  • Groovy API Javadocに関しての情報整理 - Diary of absj31

    公式ドキュメント内のAPIを色々漁ってたら幾つか存在しているようで、且つどれがどういう内容・関係性を持っているのかイマイチわかんね〜な〜、とつぶやいた所、G*界隈の心優しい御方達にアドバイス頂けました。 早速情報整理。このような形になっているようです。全部ひっくるめて見たい場合は1.のJavadocを参照すれば良いという事になりますね。 No. API 構成 1. groovy 2.0.1 API 従来のJava API + GroovyクラスのAPI + Groovy JDK(GDK) ※Groovy独自のドキュメント (GroovyのビルドでつかっているGradleで独自定義) 2. groovy 2.0.1 API 従来のJava API + GroovyクラスのAPI ※GroovyDoc 3. Groovy JDK API Specification Groovy JDK(GDK

    Groovy API Javadocに関しての情報整理 - Diary of absj31
  • [jggug][groovy][grails] この夏は福岡@九州のGroovy/Grailsが熱い! - uehaj's blog

    Groovy 2.0の新機能について、以下で話します。 G*ワークショップ in 福岡#jggug G*ワークショップがついに福岡に進出します! G*ワークショップは、日Grails/Groovyユーザーグループ(JGGUG)が主催する、Groovy/Grailsを中心としたG*テクノロジーの勉強会です。 Javaの基礎知識さえあれば、半日でG*なエコシステムの全貌がわかり、すぐに業務に活かすことができます。福岡/九州のJava/Groovy開発者のみなさま、ぜひぜひふるってご参加下さい! お近くの方は是非お誘い合せのうえ、ふるっての参加をどうぞです。この夏は福岡@九州のG*が熱いぜ!

    [jggug][groovy][grails] この夏は福岡@九州のGroovy/Grailsが熱い! - uehaj's blog
  • Markdown の HTML 変換 - Ruby, PHP, Groovy, Scala, Node.js - なんとなくな Developer のメモ

    Markdown 形式の文字列を HTML 変換する処理を複数のプログラム言語で試してみました。 処理としては、標準入力から UTF-8Markdown 形式の文字列を取得し HTML 変換した結果を標準出力へ UTF-8 で出力しています。 ちなみに、Markdown 文字列は LOGGiX プロジェクトの日語版サンプル markdown-sample.text を使用しました。 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20120809/ Ruby の場合 Pure Ruby な kramdown モジュールを JRuby で実行してみました。 JRuby 1.7.0 preview1 kramdown 0.13.7 tohtml.rb require 'kramdown' Encoding.def

    Markdown の HTML 変換 - Ruby, PHP, Groovy, Scala, Node.js - なんとなくな Developer のメモ
  • Groovyを勉強するときの手順 - うさぎ組

    なんかプログラミング言語ならどれでも一緒だと思うんだけど、Groovyやるならこうするのがいい。と思ったので。 コードを書くとき Dumpを使う いま使いたい変数にどんなものが入っているのかわからない。型がなにでどんなメソッドやフィールドを持っているのか。 そんなときはprintln hoge.dump() をする。 [k1:10, k2:30].each{ println it.dump() } みたいな。 実行するとこんな出力になる。 Assertを使う dumpと似ているけど、メソッドチェーンになっているときに、どこでどんな値が返ってきているかを確認するのによい。 assert [k1:10, k2:300, a1:100, a2:20].collectEntries {k,v -> [(v):k]}.groupBy {k,v -> v.startsWith "a"}[true] =

  • Groovyがインストールされていない環境での実行ではまった - 唯の楽しいお勉強生活

    1.8から以下のように実行する事でGroovyがインストールされていない環境でもGroovyを直接実行することができるようになりました。 (1.7以下でもできたみたいですが、面倒だった?) java -jar C:\groovy\groovy-1.8.6\embeddable\groovy-all-1.8.6.jar c:\work\test.groovy 先日「プログラミングGroovy」を読み直すまでこの事を気づかずに、毎回classにコンパイルしていた私は狂喜乱舞したんですが。。。 実は落とし穴があり、「CLASSPATH」の設定は無効になります。 勿論「-cp」で指定しても無効です。 どういうことかというと、こんな感じ。 C:\work\test.groovy assert System.getProperty("java.class.path") == /C:\groovy\gr

    Groovyがインストールされていない環境での実行ではまった - 唯の楽しいお勉強生活
  • 作成したGroovyスクリプトをGroovy未インストール環境で使ってもらう - ゲンゾウ用ポストイット

    作成したGroovyスクリプトをチームメンバーに利用してもらいたいが、普通のメンバーはGroovyはインストールしていない。 知名度はまだまだのようだ。 そこでGroovyをインストールしていないメンバー環境でもGroovyを実行できるようにするにはどうしたらよいかを試行錯誤してみた。 結果うまくいった方法を残しておく。 経緯 複数エクセルファイルの内容をまとめ、1ファイルにして提出する必要があった。 これをGroovy + POIで実現しようとした。 Groovyスクリプトで難なくできたわけだがこれをほかメンバーに公開したい。 もちろんfat jar化する方法もあるが、編集のたびにビルドするのが面倒なために今回は他の方法を検討。 実行環境 $ uname -vs Linux #41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 $ java -versi

    作成したGroovyスクリプトをGroovy未インストール環境で使ってもらう - ゲンゾウ用ポストイット
  • Gradleトーキョーにいってきた! - しおしお

    Gradleトーキョー : ATNDに参加してきたので、簡単に勉強会の内容を纏めてみます。 勉強会の内容 会場につくまで、どんな感じの勉強会になるのかわかりませんでしたが、ハンズオン形式で進んで行きました。(PC持って来といてほんとよかった。) Gradle入門 講師の@mike_neckさんのスライド(下のやつ)を元に進んで行きました。 主に以下のことやりましたが、決められた時間の中での作業だったのでかなり必死でした。 buildファイルからIDEのプロジェクト作成(私は、IntelliJを使いました。) プロジェクトの属性を参照してみる タスクの作成(依存関係の設定) Gradle a new Generation Build Tool from mike_neck プラグインを作ってみよう Gradleのカスタムプラグインを作ってみような内容でした。 ここもハンズオン形式でしたが、か

    Gradleトーキョーにいってきた! - しおしお
  • Gradle名古屋 Gradle 1.0をみんなで学ぼう勉強会 #jggug - blog4j 2.0

    Gradle名古屋 Gradle 1.0をみんなで学ぼう勉強会 #jggug : ATND ATNDに「TODO もうちょっと内容について書く。」って書いたままいつも通り、内容が未定のまま、ぐだぐだとやってました。 流れとしては、 geb-example-gradle を動かしてみる。 Gebにハマる。 Grailsのビルドスクリプトリーディング Grailsのビルドスクリプトから色々つまんで試す。Task rules とか Tooling API を触ってみたのを紹介。 と、あーだこーだ言いながらやってました。 Tooling API IDEとかGradleを使うツールのためのAPIだと思います。前日に勉強会ネタを探しにリリースノートを眺めてたらあったので触ってみました。サンプルが $GRADLE_HOME/samples/toolingApi にあるので使い方がわかると思います。 試し

  • Scriptomがうまく動かない - No Programming, No Life

    Scriptomを使おうかなと思ったんだけど、エラーが出てしまってどうもうまく動かない…。 ちなみに、うちのPCにはGroovy 1.5.7 Windows-Installer版を使ってインストールしてあるので*1、Scriptomは最初から入ってるはずなんだが…。 以下の%GROOVY_HOME%\supplementary\Scriptom\examples.zipに入ってたIE.groovy*2を実行してみたんだが、だめでした。 import org.codehaus.groovy.scriptom.*; Scriptom.inApartment { def ie = new ActiveXObject('InternetExplorer.Application') ie.Visible = true ie.AddressBar = true ie.Navigate("http://

    Scriptomがうまく動かない - No Programming, No Life
  • Groovyの簡易依存関係管理ツール、Grapeを使ってみる - CLOVER🍀

    Groovy 2.0が出ましたね〜。機能的なところはあんまり見てませんが、なんか型チェックとかができるようになったんだとか?それって、Groovyで待ち望まれてたものなんでしょうか?よくわからんです…。 ま、とりあえずバージョンアップはしておきましたと。 ところで、Groovyでビルドや依存関係の管理ツールといえばGradleが有名だと思いますが、自分はそれほどどっぷりGroovyを使っているわけではないので、これを触るのは少し後にして、今はもっと簡易的というか標準で搭載されているGrapeを使ってみようと思います。 Grapeとは? Apache Ivyを使った、Groovyの標準的なモジュール管理ツールです。Mavenリポジトリをサポートしているので、他のリポジトリからJARファイルなどをダウンロードしてスクリプト中で依存関係を解決しつつ実行することができます。 詳細は、こちらです。

    Groovyの簡易依存関係管理ツール、Grapeを使ってみる - CLOVER🍀
  • Scala/Clojure/Groovyで即時関数 - CLOVER🍀

    あまり意味のない小ネタです。 JavaScriptで使われるテクニックとして、即時関数というものがあると思います。こういうやつですね。 immediate_func.js (function (firstName, lastName) { println("Hello! [" + firstName + " " + lastName + "]"); })("Taro", "Tanaka") 実行すると $ jrunscript -f immediate_func.js Hello! [Taro Tanaka] ちなみに、jrunscriptというのはJDKに同梱されているJavaScriptの実装(Rhino)ですね。 $ jrunscript -q Language ECMAScript 1.8 implemention "Mozilla Rhino" 1.7 release 3 PRE

    Scala/Clojure/Groovyで即時関数 - CLOVER🍀
  • MarkupBuilder でスタイルシートを書いてみた - 倭マン's BLOG

    XSLT スタイルシートは(特にロジックなどを)書くのが結構大変。 以前から RELAX NG Compact Syntax のような簡略記法がないかなぁと思っていましたが、Groovy の Builder を使うとこの目的が達せられるかと思いチョット試してみました。 変換対象の XML データ まずは変換対象の XML データ。 簡単のため、名前空間は使用しないことにしましょう: <?xml version="1.0"?> <Groovy-Projects> <Groovy latest-version="1.7.2"> <url>http://groovy.codehaus.org/</url> <description>An agile dynamic language for the Java Platform</description> </Groovy> <Gant lates

    MarkupBuilder でスタイルシートを書いてみた - 倭マン's BLOG
  • Grailsのアプリ起動完了やテストの結果をGrowlで通知するEvents.groovyが便利な件 - 豆無日記

    [2013/04/18追記] Mountain Lion以降で通知センターを使う場合は grails-notifierなるものを作りました - PiyoPiyoDucky を参照のこと。 Grailsスクリプトのイベントフックとは Grailsではアプリ起動とかテスト実行などをGantスクリプトとして提供しています。で、そのスクリプトではイベントフックの手段が提供されていて、特定のイベントの発生時に介入して独自の追加処理をさせたりすることができます。例えば、 コンパイルの完了 テストの起動 サーバの起動 などのタイミングで独自ファイル処理を入れたり、通知をしたりできるわけです。 フックスクリプトはもちろんGroovyで書きます。$HOME/.grails/scripts/_Events.groovy というパスで保存すればOKです。特定のGrailsプロジェクトでだけフックしたい場合は$P