Submit Search
「愛されたい!」と思ったときにJavaで書くRubyクラス
1 like
1,553 views
Koichiro Ohba
Rails勉強会@東京 32thの資料。 http://wiki.fdiary.net/rails/?RailsMeetingTokyo-0032
Technology
Read more
1 of 35
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
More Related Content
PDF
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
PDF
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
PDF
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
PDF
TypeScript超入門
Narami Kiyokura
PDF
モダンJavaScript環境構築一歩目
大樹 小倉
PDF
大規模なJavaScript開発の話
terurou
PDF
クライアントサイドjavascript簡単紹介
しくみ製作所
PDF
わかる LT@2
Shingo Inoue
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
TypeScript超入門
Narami Kiyokura
モダンJavaScript環境構築一歩目
大樹 小倉
大規模なJavaScript開発の話
terurou
クライアントサイドjavascript簡単紹介
しくみ製作所
わかる LT@2
Shingo Inoue
What's hot
(20)
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
PDF
JavaとRubyのすてきな関係
garden_tree
PDF
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
PPTX
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
PPT
play framework 勉強会 in 関西
Shinichi Kozake
PPTX
Typescriptの中のこと(浅め)
Kazuhide Maruyama
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
PDF
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
PPTX
TypeScriptをオススメする理由
Yusuke Naka
PDF
TypeScriptは明日から使うべき
Masahiro Wakame
PDF
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
PDF
Getting start with knockout.js
Akio Ishida
PPTX
Play frameworkについて
Shinobu Okano
PDF
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
PDF
Dark vol4 for_slideshare
ara_ta3
PPTX
モテる JavaScript
Osamu Monoe
PPTX
TypeScriptはいいぞ
Jun Suzuki
PDF
IDEALIZE YOU
佑介 九岡
PDF
JavaScript 研修
Yuki Ishikawa
PDF
Database.persistentの話
真一 北原
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
JavaとRubyのすてきな関係
garden_tree
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
play framework 勉強会 in 関西
Shinichi Kozake
Typescriptの中のこと(浅め)
Kazuhide Maruyama
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
TypeScriptをオススメする理由
Yusuke Naka
TypeScriptは明日から使うべき
Masahiro Wakame
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
Getting start with knockout.js
Akio Ishida
Play frameworkについて
Shinobu Okano
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
Dark vol4 for_slideshare
ara_ta3
モテる JavaScript
Osamu Monoe
TypeScriptはいいぞ
Jun Suzuki
IDEALIZE YOU
佑介 九岡
JavaScript 研修
Yuki Ishikawa
Database.persistentの話
真一 北原
Ad
Similar to 「愛されたい!」と思ったときにJavaで書くRubyクラス
(20)
PDF
現実世界のJRuby(ショートバージョン)
Hiroshi Nakamura
PDF
Ruby勉強会@札幌 "Rubyist入門講座"
Koji SHIMADA
PDF
現実世界のJRuby
Hiroshi Nakamura
PDF
Ruby でつくる型付き Ruby
mametter
PDF
groovy 2.1.0 20130118
Uehara Junji
ODP
Rubyのコードを読んでみよう(オブジェクト編)
baban ba-n
PDF
PHPer のための Ruby 教室
higaki
PDF
Meta programing ruby monday
Yuisho Takafuji
PPTX
低レイヤから見たrubyプログラミング
よしだ あつし
PPT
Start!! Ruby
mitim
KEY
JRubyで作るapiサーバー
Yamamoto Kazuhisa
PDF
Rubyインスタンス変数
Masayuki Nishida
PDF
Ruby
Shintaro Abe
PDF
Rubyとプログラミング言語の潮流
Kazuhiko Kato
PDF
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
Takeshi AKIMA
ODP
kpfx07 LT ruby-processingでイケメンになりたい
koki_h
PDF
R5 3 type annotation
EIICHI KIMURA
PDF
Javaクラスファイルの読み方
y torazuka
PDF
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
ODP
Rubyのソースコードを読んでみよう(入門編)
baban ba-n
現実世界のJRuby(ショートバージョン)
Hiroshi Nakamura
Ruby勉強会@札幌 "Rubyist入門講座"
Koji SHIMADA
現実世界のJRuby
Hiroshi Nakamura
Ruby でつくる型付き Ruby
mametter
groovy 2.1.0 20130118
Uehara Junji
Rubyのコードを読んでみよう(オブジェクト編)
baban ba-n
PHPer のための Ruby 教室
higaki
Meta programing ruby monday
Yuisho Takafuji
低レイヤから見たrubyプログラミング
よしだ あつし
Start!! Ruby
mitim
JRubyで作るapiサーバー
Yamamoto Kazuhisa
Rubyインスタンス変数
Masayuki Nishida
Ruby
Shintaro Abe
Rubyとプログラミング言語の潮流
Kazuhiko Kato
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
Takeshi AKIMA
kpfx07 LT ruby-processingでイケメンになりたい
koki_h
R5 3 type annotation
EIICHI KIMURA
Javaクラスファイルの読み方
y torazuka
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
Rubyのソースコードを読んでみよう(入門編)
baban ba-n
Ad
More from Koichiro Ohba
(20)
PDF
Focuslight, Jobs and OSS - HackGirls bar vol.2
Koichiro Ohba
PDF
20140517 岡山オープンセミナー
Koichiro Ohba
PDF
Real legacy
Koichiro Ohba
PDF
サラリーマン
Koichiro Ohba
PDF
GREE github-enterprise
Koichiro Ohba
PDF
Ruby which Supports Social Platform
Koichiro Ohba
PDF
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
PDF
Agile Shibuya github_enterprise
Koichiro Ohba
PDF
Cuvic OnDemand on JRuby
Koichiro Ohba
PDF
Social Coding With JRuby
Koichiro Ohba
PDF
MessagePack for Ruby
Koichiro Ohba
PDF
Rava on JRuby
Koichiro Ohba
PDF
Abstraction of JRuby Kaigi2010
Koichiro Ohba
PDF
Introduction of JRuby Kaigi 2010
Koichiro Ohba
PDF
AppEngine/Jruby at SendaiRubyKaigi02
Koichiro Ohba
PDF
The Power to Produce Termtter
Koichiro Ohba
PDF
Introduction of record_with_operator
Koichiro Ohba
PDF
Happy Life Hacking Ruby on Rails
Koichiro Ohba
PDF
JRuby Hot Topics 2008-12-12
Koichiro Ohba
PDF
The Essence of Using Ruby on Rails in Corporations 2nd
Koichiro Ohba
Focuslight, Jobs and OSS - HackGirls bar vol.2
Koichiro Ohba
20140517 岡山オープンセミナー
Koichiro Ohba
Real legacy
Koichiro Ohba
サラリーマン
Koichiro Ohba
GREE github-enterprise
Koichiro Ohba
Ruby which Supports Social Platform
Koichiro Ohba
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
Agile Shibuya github_enterprise
Koichiro Ohba
Cuvic OnDemand on JRuby
Koichiro Ohba
Social Coding With JRuby
Koichiro Ohba
MessagePack for Ruby
Koichiro Ohba
Rava on JRuby
Koichiro Ohba
Abstraction of JRuby Kaigi2010
Koichiro Ohba
Introduction of JRuby Kaigi 2010
Koichiro Ohba
AppEngine/Jruby at SendaiRubyKaigi02
Koichiro Ohba
The Power to Produce Termtter
Koichiro Ohba
Introduction of record_with_operator
Koichiro Ohba
Happy Life Hacking Ruby on Rails
Koichiro Ohba
JRuby Hot Topics 2008-12-12
Koichiro Ohba
The Essence of Using Ruby on Rails in Corporations 2nd
Koichiro Ohba
「愛されたい!」と思ったときにJavaで書くRubyクラス
1.
「愛されたい!」と 思ったときにJava で書くRubyクラス
大場光一郎 Akasaka.rb, Meadowy.org
2.
今日の目的 •JavaでRubyクラスを書く
3.
JRubyとは •JavaVMで動くRuby実装 • JIT、事前バイトコンパイル • Java
Integration • Java 5.0 higher
4.
JRubyを拡張したい •動かしたいパッケージがC • openssl,RMagick4J,i
mage_voodoo •速くしたい
5.
Mにおすすめ • 素直にRubyで書けば5行く らいですむところを50行で 書く
6.
生もの注意 • 公開APIではなくて言語の コアに近い部分 •ゴリゴリ変わってます
7.
JRubyを拡張す
る方法 •Rubyで書く • Dubyで書く • Javaで書く
8.
Rubyで書く •普通にRubyで書く • Javaクラスも呼べるよ
9.
Dubyで書く • 型修飾ができるRubyっぽ い言語 •コンパイラ型 • Hashリテラルっぽい書き方
10.
Dubyの例 def foo(str) {str
=> :string} puts str end
11.
Javaで書く •速い • 面倒 • jarパッケージ
12.
Javaで書こう
Rubyクラス •Java SE 5.0 • JRubyのソースコード一式
13.
Javaクラスと Rubyクラス •クラス/メソッドの可視性 •
オーバーロード • オープンクラス
14.
Javaで書くとき
必要なこと •メモリアロケーション • アノテーション
15.
メモリアロケー
ション • JRubyのrubyランタイム にクラスやモジュールを登録 する
16.
コード例
private static final ObjectAllocator ICONV_ALLOCATOR = new ObjectAllocator() { public IRubyObject allocate(Ruby runtime, RubyClass klass) { return new RubyIconv(runtime, klass); } };
17.
RubyClass iconvClass = runtime.defineClass("Iconv", runtime.getObject(),
ICONV_ALLOCATOR);
18.
アノテーション •Java 5から導入 • javadoc/Rdocっぽい •
メソッドやクラスに宣言的 にメタ情報を記述
19.
JRubyアノテー
ション •クラス • モジュール • メソッド
20.
クラスアノテー ション @JRubyClass(name
= Iconv ) class IconvClass { }
21.
メソッドアノテー ション •引数の数/可変長引数 •
インスタンスか、特異か • ブロックの有無
22.
コード例 @JRubyMethod(name = "open",
required = 2, frame = true, meta = true) public static IRubyObject open(ThreadContext context, IRubyObject recv, IRubyObject to, IRubyObject from, Block block) { }
23.
メソッドアノテー ションの種類 •name,required •
optional,rest • alias, meta, module • visibility, etc...
24.
アノテーションを Rubyへ定義 • クラスにどんなアノテーショ ンがついているかRubyラン タイムに登録する
25.
コード例 iconvClass.defineAnnotatedMethods(R ubyIconv.class);
26.
ロードしよう
27.
ロードのJRuby
拡張 • .rb .so .dll以外に.class と.jarの読み込みがサポート
28.
require hogehoge require hogehoge.class require
hogehoge.jar
29.
.classをロードする
30.
.jarをロードする •jarredScript • jarに固めたclassファイル をロードする仕組み •gemに含めるのも可
31.
JarredScript •規約指向 • クラス名とjarファイル名を 合わせる •LoadService
32.
LoadService • JRubyがjar内から拡張ク
ラスを探すきっかけになる • org.jruby.runtime.load.BasicLoadService • パッケージは無し
33.
LoadServiceの
例
34.
jarに固める
35.
JRubyを拡張し
よう •メモリアロケーション • アノテーション • jarに固める
Download