summaryrefslogtreecommitdiff
path: root/v1.6/gemfile_ruby.html
blob: 64b157a9e4e281a85b1aee4461b21d515df7af53 (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<!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'>
    <meta content='276VSYOko8B8vIu1i8i5qbj7_ql5PXo0dU69XQy-SL' name='globalsign-domain-verification'>
    <link href='/images/favicon.png' rel='shortcut icon' type='image/png'>
    <link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id='body'>
      <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>
      <div id='container'>
        <div id='contents'>
          <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="highlight ruby"><span class="n">ruby</span> <span class="s1">'RUBY_VERSION'</span><span class="p">,</span> <span class="ss">:engine</span> <span class="o">=&gt;</span> <span class="s1">'ENGINE'</span><span class="p">,</span> <span class="ss">:engine_version</span> <span class="o">=&gt;</span> <span class="s1">'ENGINE_VERSION'</span><span class="p">,</span> <span class="ss">:patchlevel</span> <span class="o">=&gt;</span> <span class="s1">'RUBY_PATCHLEVEL'</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="highlight ruby"><span class="n">ruby</span> <span class="s1">'1.9.3'</span><span class="p">,</span> <span class="ss">:engine</span> <span class="o">=&gt;</span> <span class="s1">'jruby'</span><span class="p">,</span> <span class="ss">:engine_version</span> <span class="o">=&gt;</span> <span class="s1">'1.6.7'</span>&#x000A;</pre>
            </div>
            <div class='bullet' id='patchlevel'>
              <div class='description'>
                It's also possible to restrict the patchlevel of the Ruby used by doing the following:
              </div>
              <pre class="highlight ruby"><span class="n">ruby</span> <span class="s1">'1.9.3'</span><span class="p">,</span> <span class="ss">:patchlevel</span> <span class="o">=&gt;</span> <span class="s1">'448'</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="highlight plaintext">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="highlight plaintext">ruby 1.9.3 (jruby 1.6.7)</pre>
              <a href="/v1.6/bundle_platform.html">Learn More: bundle platform</a>
            </div>
            <div class='bullet'>
              <div class='description'>
                In the <code>ruby</code> directive, <code>:patchlevel</code> is optional, as patchlevel releases are usually compatible and include important security fixes. The patchlevel option checks the <code>RUBY_PATCHLEVEL</code> constant, and if not specified then bundler will simply ignore it.
              </div>
            </div>
          </div>
        </div>
        <div id='sidebar'>
          <h2>Would you like to</h2>
          <ul>
            <li><a href="/#getting-started">Get started</a></li>
            <li><a href="/issues.html">Report a bug</a></li>
            <li><a href="/v1.6/whats_new.html">See what's new</a></li>
            <li><a href="/v1.6/man/bundle.1.html">Read documentation</a></li>
            <li><a href="/#get-involved">Discuss and Contribute</a></li>
            <li><a href="/v1.6/faq.html">View FAQs</a></li>
          </ul>
          <div class='shirts'>
            <div class='content'>
              <p>
                Bundler is developed entirely by a team of volunteers.
                <a href="http://www.gittip.com/bundler">Support their work</a>
                and help make Bundler better for everyone.
              </p>
              <p>
                <script data-gittip-username='bundler' src='//gttp.co/v1.js'></script>
                <br>
                <br>
              </p>
            </div>
          </div>
          <h2>Bundler Commands</h2>
          <ul>
            <li><a href="/v1.6/bundle_install.html">bundle install</a></li>
            <li><a href="/v1.6/bundle_update.html">bundle update</a></li>
            <div class='buttons'>
              <a href="/v1.6/commands.html">View all commands</a>
            </div>
          </ul>
          <h2>Help With</h2>
          <ul>
            <li><a href="/v1.6/gemfile.html">Gemfiles</a></li>
            <li><a href="/v1.6/groups.html">Groups</a></li>
            <li><a href="/v1.6/git.html">Gems from git</a></li>
            <li><a href="/v1.6/bundler_setup.html">Bundler.setup</a></li>
            <li><a href="/v1.6/deploying.html">Deploying</a></li>
            <li><a href="/v1.6/bundler_sharing.html">Sharing</a></li>
            <li><a href="/v1.6/updating_gems.html">Updating Gems</a></li>
            <li><a href="/compatibility.html">Compatible versions</a></li>
          </ul>
          <h2>Use Bundler with</h2>
          <ul>
            <li><a href="/v1.6/rails3.html">Rails 3</a></li>
            <li><a href="/v1.6/rails23.html">Rails 2.3</a></li>
            <li><a href="/v1.6/sinatra.html">Sinatra</a></li>
            <li><a href="/v1.6/rubygems.html">Rubygems</a></li>
            <li><a href="/v1.6/rubymotion.html">RubyMotion</a></li>
          </ul>
          <div class='shirts'>
            <div class='content'>
                            <a class="image" onclick="ga('send', 'devswag');" href="http://www.devswag.com/collections/bundler"><img src="/images/bundler-shirt.png" />
              </a>

              <p>
                <a onclick="ga('send', 'devswag');" href="http://www.devswag.com/collections/bundler">Buy Bundler Shirts & Stickers!</a>
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id='footer'>
      <img src="/images/emocow.png" />
      <img src="/images/panda.jpg" />
      <div class='spacer'></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>
      <div class='spacer'></div>
      <img src="/images/bundler-small.png" />
    </div>
    <a href='http://github.com/bundler/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 href="/v1.3/">v1.3</a>
      <a href="/v1.5/index.html">v1.5</a>
      <a class="current" href="/">v1.6</a>
    </div>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
      ga('create', 'UA-39559982-1', 'bundler.io');
      ga('send', 'pageview');
    </script>
  </body>
</html>