読者です 読者をやめる 読者になる 読者になる

not good but great

プログラミング、アート、映画・本の感想について書きます。

$LOAD_PATHにPATHを追加して、Forkしたgemをローカルで動かす

Ruby

gemのcat_apiをfork

gemのcat_apiをforkした
naoyashiga/cat_api · GitHub

本買った。cat_apiのソース見ながら学習することにした。

ローカルリポジトリのgemを使いたい

gem install cat_api

これをすると本家のgemが読み込まれるだけで、自分が編集したものを実行できるわけではない。

Gemfileにローカルのpathを設定

・参考
Gemのソースをローカルで動かす方法 – 日本の天ぷら情報

cd ..

ディレクトリをforkしcloneしたリポジトリの一つ上の階層へ移動。

gem install bundler

まずbundleをインストールする。

gem install bundler

Gemfileを作成

vim Gemfile

Gemfileを編集。

source "https://rubygems.org"

gem "cat_api",path:"cat_api"

bundle

必要なgemをinstallする。下のエラーが出たので、Xcodeコマンドラインツールをinstallした。
Ruby - Yosemiteにアップデート後bundle install ができなくなった話 - Qiita

$LOAD_PATHにPATHを追加

`require': cannot load such file -- cat_api (LoadError)

エラーが出た。

・参考
RubygemはLOAD_PATHを順に辿っていくらしい。
RubyGemsはrequireの裏で何をやっているのか? - ブログのおんがえし

$LOAD_PATH<<"./cat_api/lib"
require "cat_api"

これで編集できるようになった!