RubyGemsで公開されていないgemを使う
自分が作ったgemをRubyGemsにアップする前に使ってみたい、諸事情でRubyGemsでは公開されていない*1、masterブランチのものを直接使いたい、などの理由でgem install
でインストールできないgemを使いたい時がある。
今回はMarkdownパーサであるqiita-markdownを使ってみたかったので、このgemをサンプルに書いている。このgemはRubygemsに公開されているので、下記に書いてあるような手順を踏まなくてもふつうにgem install
でインストールできる。
ソースコードはあらかじめvendor/
以下でgit clone
してある。
bundlerを使う
Bundlerを使うのが手っ取り早い。Gemfile
にgemの名前、置いてある場所を書いてbundle install
するだけ。
source "https://rubygems.org" gem "qiita-markdown", path: "vendor/qiita-markdown", require: "qiita/markdown"
ソースコードの方は下記のようにrequire "bundler"
してBundler.require
する。これだけでGemfile
に書いてあるgemを呼び出してくれる。便利。
#!/usr/bin/env ruby require "bundler" Bundler.require # ...
bundlerを使わない
なんとなくGemfile
を書くのがだるい時がある。そういう時はソースコードから直接require
して済ませる。
大抵のgemはlib
以下にrequire
すべき対象のファイルが置いてあるため、このlib
ディレクトリをRubyの$LOAD_PATH
に追加したあと、通常通りrequire
する。
#!/usr/bin/env ruby $LOAD_PATH.unshift File.expand_path "vendor/qiita-markdown/lib" require "qiita-markdown" # ...
*1:社内だけで使っているgemなので公開できないなど