summaryrefslogtreecommitdiff
path: root/v1.1/rubygems.html
blob: 15fffc1566fe5336000a2f7bb82d25fddb9101d9 (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
<!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 href="/"><img width="725" alt="The best way to manage your application's dependencies" src="/images/gembundler.png" />
          </a>

        </div>
        <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">'</span>/gemspec/path<span class="String">'</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">'</span>my_awesome_gem<span class="String">'</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 id='footer'>
      <img src="/images/emocow.png" />
      <img src="/images/panda.jpg" />
      <div class='spacer'></div>
      <div id='navigation'>
        <p>
          <b><a href="/v1.1/commands.html">commands</a></b>
          <a href="/v1.1/bundle_install.html">install</a>
          /
          <a href="/v1.1/bundle_update.html">update</a>
          /
          <a href="/v1.1/bundle_exec.html">exec</a>
          /
          <a href="/v1.1/bundle_config.html">config</a>
          /
          <a href="/v1.1/bundle_package.html">package</a>
        </p>
        <p>
          <b>usage</b>
          <a href="/v1.1/gemfile.html">gemfile</a>
          /
          <a href="/v1.1/git.html">git</a>
          /
          <a href="/v1.1/groups.html">groups</a>
          /
          <a href="/v1.1/bundler_setup.html">setup</a>
          /
          <a href="/v1.1/deploying.html">deploying</a>
        </p>
        <p>
          <b>frameworks</b>
          <a href="/v1.1/bundler_setup.html">ruby</a>
          /
          <a href="/v1.1/rubygems.html">rubygems</a>
          /
          <a href="/v1.1/rubymotion.html">rubymotion</a>
          /
          <a href="/v1.1/sinatra.html">sinatra</a>
          /
          <a href="/v1.1/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 class="current" href="/v1.1/">v1.1</a>
      <a href="/v1.2/">v1.2</a>
      <a 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>