SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
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++勉強会 #2
http://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」
ライブラリのインストール
 gem install multiset
                                 Page: 11
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




gem install [ライブラリ名]

        で



                                 Page: 14
2011.7.2 Ruby-Sapporo Session Time




gem install [ライブラリ名]

    で
   楽しい
仲間(ライブラリ)が
                                 Page: 15
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




gem install [ライブラリ名]

        で



                                 Page: 19
2011.7.2 Ruby-Sapporo Session Time




gem install [ライブラリ名]

    で
   楽しい
仲間(ライブラリ)が
                                 Page: 20
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




   gemspecを
エディタでごりごり書いて
                            Page: 26
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

        gem install jeweler
                                                Page: 31
2011.7.2 Ruby-Sapporo Session Time



jeweler multiset




                               Page: 32
2011.7.2 Ruby-Sapporo Session Time



 jeweler multiset




雛形できちゃった!                       Page: 33
2011.7.2 Ruby-Sapporo Session Time



 jeweler multiset




しかもgit付き!                       Page: 34
2011.7.2 Ruby-Sapporo Session Time



jeweler multiset --rspec




                                   Page: 35
2011.7.2 Ruby-Sapporo Session Time



 jeweler multiset --rspec




rspecの雛形も!                          Page: 36
2011.7.2 Ruby-Sapporo Session Time



jeweler multiset --create-repo

             ↓



githubの雛形も!                           Page: 37
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




jeweler [ライブラリ名]

      で



                              Page: 41
2011.7.2 Ruby-Sapporo Session Time




jeweler [ライブラリ名]

    で
  楽しい仲間
(自作ライブラリ)が
                              Page: 42
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)DevNull
Rubyの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

Weitere ähnliche Inhalte

Ähnlich wie 2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」

Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
Kanako Kobayashi
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール
Sho Hashimoto
 
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
Shintaro Kakutani
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
Yoji Shidara
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
Shuyo Nakatani
 
20081004-OSC2008Tokyo/Fall-MetaCon
20081004-OSC2008Tokyo/Fall-MetaCon20081004-OSC2008Tokyo/Fall-MetaCon
20081004-OSC2008Tokyo/Fall-MetaCon
Koji SHIMADA
 
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Yoshinori Kobayashi
 

Ähnlich wie 2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」 (20)

RubySeminar16_Analyze
RubySeminar16_AnalyzeRubySeminar16_Analyze
RubySeminar16_Analyze
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
 
Ruby24
Ruby24Ruby24
Ruby24
 
mrubyのすすめ
mrubyのすすめmrubyのすすめ
mrubyのすすめ
 
Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発Sinatraで鼻歌まじりのWeb開発
Sinatraで鼻歌まじりのWeb開発
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
20101106 ramaze発表
20101106 ramaze発表20101106 ramaze発表
20101106 ramaze発表
 
松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール松江Ruby会議03 LT るりまアピール
松江Ruby会議03 LT るりまアピール
 
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
All about Nihon Ruby-no-kai Season6(TochigiRubyKaigi02 Edit)
 
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
 
3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
 
JavascriptでRubyの作り方
JavascriptでRubyの作り方JavascriptでRubyの作り方
JavascriptでRubyの作り方
 
20081004-OSC2008Tokyo/Fall-MetaCon
20081004-OSC2008Tokyo/Fall-MetaCon20081004-OSC2008Tokyo/Fall-MetaCon
20081004-OSC2008Tokyo/Fall-MetaCon
 
20111029 rubyon php
20111029 rubyon php20111029 rubyon php
20111029 rubyon php
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Management of Gems using Bundler.
Management of Gems using Bundler.Management of Gems using Bundler.
Management of Gems using Bundler.
 
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
Instagram Ruby Gem と Instagram API から学んだことまとめ|【CoEdo.rb】Ruby / Ruby on Rails ...
 

Mehr von Hiro H.

わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
Hiro H.
 

Mehr von Hiro H. (20)

pandas便利だけどデフォルトパラメータでファイルを読み込むな!
pandas便利だけどデフォルトパラメータでファイルを読み込むな!pandas便利だけどデフォルトパラメータでファイルを読み込むな!
pandas便利だけどデフォルトパラメータでファイルを読み込むな!
 
式を書くだけで最適化計算してほしい!~CVXPY編~
式を書くだけで最適化計算してほしい!~CVXPY編~式を書くだけで最適化計算してほしい!~CVXPY編~
式を書くだけで最適化計算してほしい!~CVXPY編~
 
旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説
旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説
旅行「#重複乗車禁止で名鉄完乗」とその数学的な解説
 
シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)
シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)
シンデレラガール総選挙の「50位圏内の難しさ」はいかほどか?(23:20更新)
 
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
「MVが3人な曲の一覧」って取得できます?(デレステ・ミリシタ・エムステ)
 
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?配列の要素挿入・削除もランダムアクセスも両方高速にできる?
配列の要素挿入・削除もランダムアクセスも両方高速にできる?
 
PCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよPCSじゃないよ、PCAだよ
PCSじゃないよ、PCAだよ
 
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
 
スマホ音楽ゲームの動画から譜面をデータ化したかった
スマホ音楽ゲームの動画から譜面をデータ化したかったスマホ音楽ゲームの動画から譜面をデータ化したかった
スマホ音楽ゲームの動画から譜面をデータ化したかった
 
シンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめシンデレラガールズ声優の増え方まとめ
シンデレラガールズ声優の増え方まとめ
 
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
札幌C++勉強会 #13「最近、仕事でC++11以降の新規格が役に立ったシーン紹介」
 
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
わんくま同盟 名古屋勉強会 #43 ライトニングトーク「Firefoxがver.57~(Quantum)にアップグレードされて困ったこと・やったこと」
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話します最近デレステ創作譜面作ってるので技術的な見地から話します
最近デレステ創作譜面作ってるので技術的な見地から話します
 
C++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようC++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみよう
 
デレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってますデレステの劇場で登場したアイドルの回数の統計取ってます
デレステの劇場で登場したアイドルの回数の統計取ってます
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
 
名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗
 
MSYS2使いはじめました
MSYS2使いはじめましたMSYS2使いはじめました
MSYS2使いはじめました
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」