summaryrefslogtreecommitdiff
path: root/v1.3/gemfile_ruby.html
blob: fe952a2b3b2a48e93597edf91ad4bdde8df9749e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html>
  <head>
    <title>Bundler: The best way to manage a Ruby application's gems</title>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
    <link href='/images/favicon.png' rel='shortcut icon' type='image/png'>
    <link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
    <link href="/stylesheets/sunburst.css" media="screen" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id='body'>
      <div id='contents'>
        <div id='header'>
                    <a class="image" href="/"><img width="725" alt="The best way to manage your application's dependencies" src="/images/gembundler.png" />
          </a>

        </div>
        <h2>Specifying a Ruby Version</h2>
<div class='contents'>
  <div class='bullet'>
    <div class='description'>
      Like gems, developers can setup a dependency on Ruby. This makes your app fail faster in case you depend on specific features in a Ruby VM. This way, the Ruby VM on your deployment server will match your local one. You can do this by using the <code>ruby</code> directive in the <code>Gemfile</code>:
    </div>
    <pre class="sunburst">ruby <span class="String"><span class="String">'</span>RUBY_VERSION<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine</span> =&gt; <span class="String"><span class="String">'</span>ENGINE<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine_version</span> =&gt; <span class="String"><span class="String">'</span>ENGINE_VERSION<span class="String">'</span></span>&#x000A;</pre>
  </div>
  <div class='bullet'>
    <div class='description'>
      If you wanted to use JRuby 1.6.7 using Ruby 1.9.3, you would simply do the following:
    </div>
    <pre class="sunburst">ruby <span class="String"><span class="String">'</span>1.9.3<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine</span> =&gt; <span class="String"><span class="String">'</span>jruby<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine_version</span> =&gt; <span class="String"><span class="String">'</span>1.6.7<span class="String">'</span></span>&#x000A;</pre>
  </div>
  <div class='bullet'>
    <div class='description'>
      Bundler will make checks against the current running Ruby VM to make sure it matches what is specified in the <code>Gemfile</code>. If things don't match, Bundler will raise an Exception explaining what doesn't match.
    </div>
    <pre class='sunburst'>Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3&#x000A;</pre>
  </div>
  <div class='bullet'>
    <div class='description'>
      Both <code>:engine</code> and <code>:engine_version</code> are optional. When these options are omitted, this means the app is compatible with a particular Ruby ABI but the engine is irrelevant. When <code>:engine</code> is used, <code>:engine_version</code> must also be specified.
    </div>
  </div>
  <div class='bullet'>
    <div class='description'>
      Using the <code>platform</code> command with the <code>--ruby</code> flag, you can see what <code>ruby</code> directive is specified in the <code>Gemfile</code>.
    </div>
    <pre class='sunburst'>ruby 1.9.3 (jruby 1.6.7)</pre>
    <a href="/v1.3/bundle_platform.html">Learn More: bundle platform</a>
  </div>
  <div class='bullet'>
    <div class='description'>
      The <code>ruby</code> directive explicitly leaves out the ability to specify a patch level. Ruby patches often include important bug and security fixes and are extremely compatible.
    </div>
  </div>
</div>
      </div>
    </div>
    <div id='footer'>
      <img src="/images/emocow.png" />
      <img src="/images/panda.jpg" />
      <div class='spacer'></div>
      <div id='navigation'>
        <p>
          <b>commands</b>
          <a href="/v1.3/man/bundle-install.1.html">install</a>
          /
          <a href="/v1.3/man/bundle-update.1.html">update</a>
          /
          <a href="/v1.3/man/bundle-exec.1.html">exec</a>
          /
          <a href="/v1.3/man/bundle-config.1.html">config</a>
          /
          <a href="/v1.3/man/bundle-package.1.html">package</a>
        </p>
        <p>
          <b>usage</b>
          <a href="/v1.3/gemfile.html">gemfile</a>
          /
          <a href="/v1.3/git.html">git</a>
          /
          <a href="/v1.3/groups.html">groups</a>
          /
          <a href="/v1.3/bundler_setup.html">setup</a>
          /
          <a href="/v1.3/deploying.html">deploying</a>
        </p>
        <p>
          <b>frameworks</b>
          <a href="/v1.3/bundler_setup.html">ruby</a>
          /
          <a href="/v1.3/rubygems.html">rubygems</a>
          /
          <a href="/v1.3/rubymotion.html">rubymotion</a>
          /
          <a href="/v1.3/sinatra.html">sinatra</a>
          /
          <a href="/v1.3/rails3.html">rails 3</a>
        </p>
      </div>
      <div class='spacer'></div>
      <img src="/images/bundler-small.png" />
    </div>
    <div id='credits'>
      <p>
        Many thanks to Bundler's <a href="/contributors.html">contributors</a>
        and <a href="/sponsors.html">sponsors</a>
      </p>
    </div>
    <a href='http://github.com/carlhuda/bundler/' id='github'>
      <img alt='Fork me on GitHub' src='http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png'>
    </a>
    <div id='prod-versions'>
      Docs:
      <a href="/v0.9/">v0.9</a>
      <a href="/v1.0/">v1.0</a>
      <a href="/v1.1/">v1.1</a>
      <a href="/v1.2/">v1.2</a>
      <a class="current" href="/">v1.3</a>
    </div>
    <script>
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-557621-9']);
      _gaq.push(['_trackPageview']);
      (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
  </body>
</html>