83

What does the -> mean next to a version number in a Gemfile?

For example:

gem 'sass-rails',   '~> 3.1.5'
user229044
  • 232,980
  • 40
  • 330
  • 338
brad
  • 9,573
  • 12
  • 62
  • 89

2 Answers2

99

From the bundler website:

The specifier ~> has a special meaning, best shown by example:
'~> 2.0.3' is identical to '>= 2.0.3' and '< 2.1.'
'~> 2.1'     is identical to '>= 2.1'    and '< 3.0'.
'~> 2.2.beta' will match prerelease versions like '2.2.beta.12'.

See https://bundler.io/gemfile.html and http://guides.rubygems.org/patterns/#pessimistic-version-constraint

Luke Abel
  • 243
  • 2
  • 9
Tim Brandes
  • 2,103
  • 15
  • 14
  • Yes, you're right and I was way too fast with my answer and was in editing already, sorry! – Tim Brandes Jan 02 '12 at 11:00
  • Okay, I had been reading the gemfile manual which didn't seem to have that info. Should have just stuck to the pretty pages! – brad Jan 02 '12 at 11:04
22

You usually use this to tell bundler that it's ok to install some minor updates (last digit specified can vary) but not to install some major update.

SO

~> 2.0.3 means >= 2.0.3< 2.1

and

~> 2.1 means >= 2.1< 3.0

Read more at https://bundler.io/gemfile.html

Luke Abel
  • 243
  • 2
  • 9
Uko
  • 13,134
  • 6
  • 58
  • 106