Help us understand the problem. What is going on with this article?

Ruby2.1.xを使うためのGemfileの指定について

More than 5 years have passed since last update.

rubyの2.1系からセマンティックバージョニングに移ったので3桁目がよく更新される。

Rubyのバージョン指定として、Gemfileに

ruby '2.1.5'

とかするけど、チーム開発してたりすると誰かが更新したらそれ取り込んだ時点で強制的にアップデートしなきゃいけなったりするの若干面倒で、自分のタイミングで更新したいとかあるはず。

それどう指定すればいいんだろうと思って色々調べてた時に見つけたのがこちら。Gemfileで下記のように指定する。

target = "2.1.0"
if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new(target)
  puts "Use ruby #{target}+ (Your version is #{RUBY_VERSION})"
  exit(1)
end

こうするとruby2.0系を使ってるとbundleが実行されず、2.1以降だとbundleが通る。

2.0系
$ rbenv global 2.0.0-p594
$ bundle install 
Use ruby 2.1.0+ (Your version is 2.0.0)
2.1系
$ rbenv global 2.1.4
$ bundle install
...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

$ rbenv global 2.1.5
$ bundle install
...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

いい感じ。

sue738
グロービスで働いています
globis
グロービスは 1992 年の創業以来、社会人を対象とした MBA、人材育成の領域で Ed-Tech サービスを提供し、現在は日本 No.1 の実績があります。これらの資産と、さらに IT や AI を活用することで、アジア No.1 を目指しています。
http://www.globis.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away