gem作ってRailsで使う
bundlerでgem作ってrailsで読み込みました。
作るgemの機能は、引数に’foo’と与えると’bar’を返すというだけです。
gem作成
$ bundle gem test_gem
lib/test_gem.rbに欲しい機能のメソッドを書きます。
こんな感じです。
require "test_gem/version" module TestGem def self.foo_bar(foo) return 'bar' if foo == 'foo' end end
test_gem.gemspecのspec.descriptionとspec.summaryを適当に書き換えます。書き換えないとgem化の時に怒られます。
spec.summary = %q{return bar if you input foo} spec.description = %q{return bar if you input foo}
コンソールで動作確認します。 bundle exec irb
2.1.6 :001 > TestGem.foo_bar(‘foo’) => "bar" 2.1.6 :001 > TestGem.foo_bar(‘bar’) => nil
gem化コマンドは $ rake build です。
実行するとtest_gem/pkg/test_gem-0.1.0.gemが作成されます。
Railsに組み込む
では作ったgemをRailsに組み込みます。 ここではgemをアップロードせずそのまま使います。
まずはrails new $ rails new test_gem_app
できたらGemfileを書き換えます。Gemfileに以下の行を追加してください。
gem ‘test_gem’, :path => ‘../test_gem'
これでbundle install
コンソールで動作確認します。
2.1.6 :001 > TestGem.foo_bar(‘foo’) => "bar" 2.1.6 :001 > TestGem.foo_bar(‘bar’) => nil
動いてます。