2011.7.2 ruby勉強会@札幌 「はじめてのrubygemsへのライブラリ公開」
TRANSCRIPT
2011.7.2 Ruby-Sapporo Session Time
はじめてのRubygemsへのライブラリ公開
H.Hiro(Maraigue)
Twitter: @h_hiro_1
2011.7.2 Ruby-Sapporo Session Time
自己紹介
Page: 2
2011.7.2 Ruby-Sapporo Session Time
H.Hiro(別名:Maraigue まれーぐ)
Twitter: @h_hiro_
•大学院生(大学9年目)
• Ruby大好き
• C#とかC++とかもよく書きます
•最近はPythonにも手を出したりPage: 3
2011.7.2 Ruby-Sapporo Session Time
H.Hiro(別名:Maraigue まれーぐ)
Twitter: @h_hiro_
•大学院生(大学9年目)
• Ruby大好き
• C#とかC++とかもよく書きます
•最近はPythonにも手を出したりPage: 4
2011.7.2 Ruby-Sapporo Session Time
明日(7/3)
札幌C++勉強会 #2http://atnd.org/events/16805
Page: 5
2011.7.2 Ruby-Sapporo Session Time
今回のテーマ
Page: 6
2011.7.2 Ruby-Sapporo Session Time
はじめてのRubygemsへのライブラリ公開
H.Hiro(Maraigue)
Twitter: @h_hiro_7
2011.7.2 Ruby-Sapporo Session Time
Rubygems
Page: 8
2011.7.2 Ruby-Sapporo Session Time
言わずと知れた
Rubyのライブラリ
管理システム
Page: 9
2011.7.2 Ruby-Sapporo Session Time
ご存じない方の
ために、念のため
説明しておくと
Page: 10
2011.7.2 Ruby-Sapporo Session Time
Rubyのいろんなライブラリを
コマンド一発でネット上から
インストールできる
例:拙作「multiset」
ライブラリのインストール
Page: 11
gem install multiset
2011.7.2 Ruby-Sapporo Session Time
依存関係の
解決もやってくれる
Page: 12
2011.7.2 Ruby-Sapporo Session Time
PerlでいうCPAN
PHPでいうPEAR
Page: 13
2011.7.2 Ruby-Sapporo Session Time
で
Page: 14
gem install [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
で
楽しい
仲間(ライブラリ)がPage: 15
gem install [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
Page: 16
2011.7.2 Ruby-Sapporo Session Time
本題
Page: 17
2011.7.2 Ruby-Sapporo Session Time
はじめてのRubygemsへのライブラリ公開
H.Hiro(Maraigue)
Twitter: @h_hiro_18
2011.7.2 Ruby-Sapporo Session Time
で
Page: 19
gem install [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
で
楽しい
仲間(ライブラリ)がPage: 20
gem install [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
Page: 21
2011.7.2 Ruby-Sapporo Session Time
自分の手元に
他の人の
ライブラリが
ポポポポーンしたPage: 22
2011.7.2 Ruby-Sapporo Session Time
自分が作った
ライブラリを
みんなに
ポポポポーンするにはPage: 23
2011.7.2 Ruby-Sapporo Session Time
本来の手順
Page: 24
2011.7.2 Ruby-Sapporo Session Time
ディレクトリと
gemspec作ってPage: 25
2011.7.2 Ruby-Sapporo Session Time
Page: 26
gemspecを
エディタでごりごり書いて
2011.7.2 Ruby-Sapporo Session Time
一から作ると
面倒くさい('A)
Page: 27
2011.7.2 Ruby-Sapporo Session Time
ぐぐって
雛形貼り付けても
面倒くさい('A)
Page: 28
2011.7.2 Ruby-Sapporo Session Time
魔法の言葉で
雛形が
ポポポポーンと
出ればいいんだけどPage: 29
2011.7.2 Ruby-Sapporo Session Time
もしかして:存在する
Page: 30
2011.7.2 Ruby-Sapporo Session Time
ちなみに私は
jewelerという
ツールを使いましたhttp://tomohiro.me/tips/jeweler_gem_release.html
Page: 31
gem install jeweler
2011.7.2 Ruby-Sapporo Session Time
Page: 32
jeweler multiset
2011.7.2 Ruby-Sapporo Session Time
雛形できちゃった!Page: 33
jeweler multiset
2011.7.2 Ruby-Sapporo Session Time
しかもgit付き!Page: 34
jeweler multiset
2011.7.2 Ruby-Sapporo Session Time
Page: 35
jeweler multiset --rspec
2011.7.2 Ruby-Sapporo Session Time
rspecの雛形も!Page: 36
jeweler multiset --rspec
2011.7.2 Ruby-Sapporo Session Time
↓
githubの雛形も!Page: 37
jeweler multiset --create-repo
2011.7.2 Ruby-Sapporo Session Time
あとはガリガリ
設定ファイルと
単体テストと
本体のコードを書くhttp://tomohiro.me/tips/jeweler_gem_release.html
Page: 38
2011.7.2 Ruby-Sapporo Session Time
ライブラリの生成や
Rubygemsへの公開を
するのも
rakeで一発http://tomohiro.me/tips/jeweler_gem_release.html
Page: 39
2011.7.2 Ruby-Sapporo Session Time
すごい楽に
出来ちゃう!
Page: 40
2011.7.2 Ruby-Sapporo Session Time
で
Page: 41
jeweler [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
で
楽しい仲間
(自作ライブラリ)がPage: 42
jeweler [ライブラリ名]
2011.7.2 Ruby-Sapporo Session Time
Page: 43
2011.7.2 Ruby-Sapporo Session Time
ライブラリの
Rubygemsでの
公開は
難しくないよ!Page: 44
2011.7.2 Ruby-Sapporo Session Time
私が
ポポポポーンした
ライブラリPage: 45
2011.7.2 Ruby-Sapporo Session Time
私が
ポポポポーンした
Rubygemsで公開した
ライブラリPage: 46
2011.7.2 Ruby-Sapporo Session Time
(1)Multiset多重集合。Setに近いが、
同じ要素を複数格納することができる。
s = Set[:a,:b,:c,:a]
# => #<Set: {:b,:c,:a}>
ms = Multiset[:a,:b,:c,:a]
# => #<Multiset:#1 :b,#1 :c,#2 :a>
ms << :b
# => #<Multiset:#2 :b,#1 :c,#2 :a>Page: 47
2011.7.2 Ruby-Sapporo Session Time
(2)DevNullRubyのIOと同じインターフェイスを持ち、
/dev/null と同様に働くクラス。log = file ? open(file,"a") : nil
log.puts "message1" if log
log.puts "message2" if log
↓
log = file ? open(file,"a") : DevNull.new
log.puts "message1"
log.puts "message2"Page: 48
2011.7.2 Ruby-Sapporo Session Time
インストール方法:
gem install multiset
gem install devnull
詳しくは↓http://rubygems.org/profiles/maraigue
Page: 49
2011.7.2 Ruby-Sapporo Session Time
ありがとう
ございました
Page: 50