DesignAssembler

備忘録に近い

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

動いてます。

参考

qiita.com

cross-black777.hatenablog.com