summaryrefslogtreecommitdiff
path: root/v1.1/rubygems.html
blob: b55ad55d502479fd090caa78794e2e0b31dc9b48 (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
<!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" />
    <link href="/stylesheets/sunburst.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>Using Bundler with Rubygem gemspecs</h2>
          <div class='contents'>
            <div class='bullet'>
              <div class='description'>
                If you're creating a gem from scratch, you can use bundler's built in gem skeleton to create a base gem for you to edit.
              </div>
              <div class='how'>
                <pre class='sunburst'>$ bundle gem my_gem</pre>
                <div class='notes'>
                  This will create a new directory named <code>my_gem</code> with your new gem skeleton.
                </div>
              </div>
            </div>
            <div class='bullet'>
              <div class='description'>
                If you already have a gem with a gemspec, you can generate a Gemfile for your gem.
              </div>
              <pre class='sunburst'>$ bundle init</pre>
              <div class='notes'>
                Then, add the following to your new Gemfile
              </div>
              <pre class="sunburst">gemspec&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                Runtime dependencies in your gemspec are treated like base dependencies, and development dependencies are added by default to the group, <code>:development</code>. You can change that group with the <code>:development_group</code> option
              </div>
              <pre class="sunburst">gemspec <span class="Constant"><span class="Constant">:</span>development_group</span> =&gt; <span class="Constant"><span class="Constant">:</span>dev</span>&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                As well, you can point to a specific gemspec using <code>:path</code>. If your gemspec is in <code>/gemspec/path</code>, use
              </div>
              <pre class="sunburst">gemspec <span class="Constant"><span class="Constant">:</span>path</span> =&gt; <span class="String"><span class="String">&#39;</span>/gemspec/path<span class="String">&#39;</span></span>&#x000A;</pre>
            </div>
            <div class='bullet'>
              <div class='description'>
                If you have multiple gemspecs in the same directory, specify which one you'd like to reference using <code>:name</code>
              </div>
              <pre class="sunburst">gemspec <span class="Constant"><span class="Constant">:</span>name</span> =&gt; <span class="String"><span class="String">&#39;</span>my_awesome_gem<span class="String">&#39;</span></span>&#x000A;</pre>
              <div class='notes'>
                This will use <code>my_awesome_gem.gemspec</code>
              </div>
            </div>
            <div class='bullet'>
              <div class='description'>
                That's it! Use bundler when developing your gem, and otherwise, use gemspecs normally!
              </div>
              <pre class='sunburst'>$ gem build my_gem.gemspec</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 href="/v0.9/">v0.9</a>
      <a href="/v1.0/">v1.0</a>
      <a class="current" href="/v1.1/">v1.1</a>
      <a href="/v1.2/">v1.2</a>
      <a href="/v1.3/">v1.3</a>
      <a href="/">v1.5</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>