IT勉強会を網羅して、探しやすくしたアプリケーション『俺の勉カレ』を作るにあたって、
Atnd/Connpass/Doorkeeper/Zusaarのイベント情報を取得する部分をGem『events_jp』
に切り出しました。今回は、Gemに切り出して、登録するまでの手順を紹介します。
🐠 Gemの紹介
Atnd/Connpass/Doorkeeper/ZusaarのAPIをラップしたgemはたくさんあるんですが、個々のAPIで
仕様が微妙に違ったりで一括で扱うようなサービスを作るときに結構な手間を感じていました。
そこで今回は各APIから取得したJSONをパースして共通フォーマットにした結果を返すラッパを作りました。
正直にいうと僕のGem制作の基本を勉強するためというのが目的ですので、完全に俺得Gemです(^ ^;
でも実際にやってみると、ほかの人のコードをたくさん読んでよりよいライブラリの書き方を考えるキッカケに
なったり、かなりおもしろかったです。いつかはみなさんに使ってもらえるようなPlugin Authorになりたいです!
🤔 Gemの使い方
インストールはいつ戻おり、Gemfileに追加して、bundle install
gem 'events_jp' |
で使い方として、まずは『キーワードでイベントを検索』する方法。
(残念ながら、Doorkeeperはキーワード検索はできず。..orz…)
EventsJp.get_event(keyword: 'Ruby').each do |e| |
件数を指定して、イベントを取得。
EventsJp.get_event(service_limit: 100).each do |e| |
検索結果のフォーマットなどは『morizyun/events_jp』のREADMEを御覧ください!
🎳 Gemの作成
せっかくですので、Gemを作ったときの手順もメモしておきます。
今回はGemの作成部分はこのあたりのリンクがたいへん参考になりました!
Rubygemsでライブラリを公開したので、手順をまとめてみた | Developers.IO
Jewelerで作ったGemをGithubとRubygemsに登録 - Qiita
あとは、@deeekiさんのGem「deeeki/connpass」
はかなり参考にさせてもらいました。以前@deeekiさんのソースを拝見したことがありますが、すごいわかりやすさでさすがな作りでした!
🚕 Gemの公開
ではいよいよRubygems.orgに公開します。
まだRubyGemsに登録していない場合は、『sign up | RubyGems.org』から登録します。
登録が完了したら、RubyGemsに登録します。Gemの登録はコマンドラインからできます。
# ソースコードをGemパッケージ化 |
たったこれだけで全世界にGemが公開できてしまいます。すばらしい^^
ちなみに、修正を行う場合は次のように行います。
# (1) VERSION情報の修正 |
すごい簡単です。GitHub側にタグまでつけてくれます!
🐯 TravisとかCoverallとかのバッチを追加する
今回は時間的に間に合いませんでしたが、TravisやCoverallなどのバッチを追加して、
品質をしっかり高めていきたいと思っています!
githubでgemを公開する時に使いたいバッジ - くりにっき