25
GroovyConsoleで遊ぶ 16G*ワークショップ

GroovyConsole

Embed Size (px)

Citation preview

Page 1: GroovyConsole

GroovyConsoleで遊ぶ第16回 G*ワークショップ

Page 2: GroovyConsole

自己紹介

奥清隆(おくきよたか)

id:kiy0taka、@kiy0taka

JGGUG関西支部

Jenkinsプラグインとか

Terminal、jQuery、MongoDB

Page 3: GroovyConsole

著書

Page 4: GroovyConsole
Page 5: GroovyConsole

Page 6: GroovyConsole

※ イメージです。

技術評論社

「モテる」Groovy!

Page 7: GroovyConsole

実際、何もやってませんが

Page 8: GroovyConsole

いただきます!

Page 9: GroovyConsole

申し訳ないので

もう一冊買う?

保存用?

観賞用?

いや、、、

Page 10: GroovyConsole

転売用!

Page 11: GroovyConsole

GroovyConsoleで遊ぶ

Page 12: GroovyConsole

GroovyConsole

Groovyをインストールすると使える便利ツール

コードを書いてすぐ試せる

ASTとかも確認できる

Page 13: GroovyConsole

GroovyConsoleの中身

groovy.ui.Console

ツールというよりGroovy本体の1クラス

groovy-all.jarがあればいい

Grapeできないけど...

Page 14: GroovyConsole

GroovyConsoleの実行

groovyConsole

java -jar groovy-all.jar groovy.ui.Console

groovy -e "new groovy.ui.Console().run()"

Page 15: GroovyConsole

拡張してみる

Page 16: GroovyConsole

メニューを追加してみるrun()

void run() { run(frameConsoleDelegates)}

void run(Map defaults) { …}

Page 17: GroovyConsole

frameConsoleDelegates

static def frameConsoleDelegates = [ rootContainerDelegate: { … } menuBarDelegate: {arg-> current.JMenuBar = build(arg) }];

Page 18: GroovyConsole

独自メニューを用意する

def myMenu = { menu(text:'JGGUG') { menuItem('Hello', actionPerformed: { JOptionPane.showMessageDialog(null, 'Hello!') }) }}

Page 19: GroovyConsole

メニューを追加する

new Console().run( Console.frameConsoleDelegates << [menuBarDelegate: {arg-> current.JMenuBar = build(arg) current.JMenuBar.add(build(myMenu)) }])

Page 20: GroovyConsole

処理を追加する

Page 21: GroovyConsole

スクリプト実行前後

beforeExecution

afterExecution

new Console( beforeExecution: { ... }, afterExecution: { ... })

Page 22: GroovyConsole

その他

あとは必要に応じてよろしくやってください。

Page 23: GroovyConsole

サンプル

GroovyConsole on Jenkins

https://gist.github.com/843507

MoteConsole

https://gist.github.com/1031115

Page 24: GroovyConsole

おまけ

Page 25: GroovyConsole

GROOVY_SOURCE_EXTENSIONS = ['*.groovy', '*.gvy', '*.gy', '*.gsh']

Groovyの拡張子