Develop with pleasure!

福岡でCloudとかBlockchainとか。

久しぶりにBundler入れてみた。

久しぶりにBundlerを入れてみた。現在のバージョンが1.0.2で随分バージョンアップしてた。

公式サイトも

Bundler: The best way to manage Ruby applications

に。

早速 gem install bundler。今までと変わらずRailsのプロジェクトにgemの依存性を定義したGemfileを配置する。

続いて定義されたgemをインストールすべく

bundle install


このコマンドでGemfileに定義したgemがRubyのgemライブラリが配置されている場所にDLされる。↓みたく--pathオプション付けるとライブラリのインストール先が指定可能。結構前のバージョンだとデフォで↓みたくvendorフォルダに配置されてたけど、変わったみたいね。

bundle install --path vendor/bundle


続いて、Bundlerで管理していうgemをRailsでロードできるようにする。まず、config/boot.rbの最終行付近にある

# All that for this:
Rails.boot!

のすぐ上に以下のコードを記載する。

class Rails::Boot
  def run
    load_initializer

    Rails::Initializer.class_eval do
      def load_gems
        @bundler_loaded ||= Bundler.require :default, Rails.env
      end
    end

    Rails::Initializer.run(:set_load_path)
  end
end

お次に、config/preinitializer.rb(無ければ作成する)に以下のコードを記載する。

begin
  require "rubygems"
  require "bundler"
rescue LoadError
  raise "Could not load the bundler gem. Install it with `gem install bundler`."
end

if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24")
  raise RuntimeError, "Your bundler version is too old for Rails 2.3." +
   "Run `gem install bundler` to upgrade."
end

begin
  # Set up load paths for all bundled gems
  ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
  Bundler.setup
rescue Bundler::GemNotFound
  raise RuntimeError, "Bundler couldn't find some gems." +
    "Did you run `bundle install`?"
end


な感じで、セットアップ完了。


てか、すんごい久しぶりにBlog書いたな…。