summaryrefslogtreecommitdiff
path: root/v0.9/rails3.html
blob: c796a639587b9446f664c47ceab62ed2f3ee01ab (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
<!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'>
          <div id='intro'>
            Rails 3 comes with baked in support with bundler.
          </div>
          <h2>Using Bundler with Rails 3</h2>
          <div class='contents'>
            <div class='bullet'>
              <div class='description'>
                Install Rails as you normally would. Use sudo if you would normally use sudo to install gems.
              </div>
              <div class='how'>
                <pre class="highlight plaintext">$ gem install rails</pre>
                <div class='notes'>
                  We recommend using rvm for dependable Ruby installations, especially if you are switching between different versions of Ruby
                </div>
              </div>
            </div>
            <div class='bullet'>
              <div class='description'>
                Generate a Rails app as usual
              </div>
              <pre class="highlight plaintext">$ rails new myapp&#x000A;$ cd myapp&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                Run the server. Bundler is transparently managing your dependencies!
              </div>
              <pre class="highlight plaintext">$ rails server&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                Add new dependencies to your Gemfile as you need them.
              </div>
              <pre class="highlight ruby"><span class="n">gem</span> <span class="s1">'nokogiri'</span>&#x000A;<span class="n">gem</span> <span class="s1">'geokit'</span>&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                If you want a dependency to be loaded only in a certain Rails environment, place it in a group named after that Rails environment
              </div>
              <pre class="highlight ruby"><span class="n">group</span> <span class="ss">:test</span> <span class="k">do</span>&#x000A;  <span class="n">gem</span> <span class="s1">'rspec'</span>&#x000A;  <span class="n">gem</span> <span class="s1">'faker'</span>&#x000A;<span class="k">end</span>&#x000A;</pre>
            </div>
            <div class='bullet' id='shared_with_23'>
              <div class='description'>
                You can place a dependency in multiple groups at once as well
              </div>
              <pre class="highlight ruby"><span class="n">group</span> <span class="ss">:development</span><span class="p">,</span> <span class="ss">:test</span> <span class="k">do</span>&#x000A;  <span class="n">gem</span> <span class="s1">'wirble'</span>&#x000A;  <span class="n">gem</span> <span class="s1">'ruby-debug'</span>&#x000A;<span class="k">end</span></pre>
              <a href="/v0.9/groups.html">Learn More: Groups</a>
            </div>
            <div class='bullet'>
              <div class='description'>
                After adding a dependency, if it is not yet installed, install it
              </div>
              <div class='how'>
                <pre class="highlight plaintext">$ bundle install</pre>
                <div class='notes'>
                  This will update all dependencies in your Gemfile to the latest versions that do not conflict with other dependencies
                </div>
              </div>
            </div>
            <div class='bullet'>
              <div class='description'>
                Don't forget that non-Rails commands must be executed with bundle exec
              </div>
              <pre class="highlight plaintext">$ bundle exec cucumber&#x000A;</pre>
            </div>
          </div>
          <h2>Sharing</h2>
          <div class='contents'>
            <div class='bullet'>
              <div class='description'>
                When you're ready to share your application, lock down your dependencies to the specific
                versions you are using now. This will ensure that other machines use exactly these gems,
                and are not affected by new releases of gems in the interim
              </div>
              <pre class="highlight plaintext">$ bundle lock&#x000A;$ git add Gemfile.lock</pre>
              <a href="/v0.9/bundle_lock.html">Learn More: bundle lock</a>
            </div>
            <div class='bullet'>
              <div class='description'>
                After locking your dependencies you may not modify the Gemfile without unlocking first
              </div>
              <pre class="highlight plaintext">$ bundle unlock&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                If you've updated your Gemfile and want to install the new gems and re-lock once the new
                gems are finished installing
              </div>
              <pre class="highlight plaintext">$ bundle install --relock</pre>
            </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 class="current" 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 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>