gem_plugin 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
15
15
  desc "Does a full compile, test run"
16
16
  task :default => [:test, :package]
17
17
 
18
- version = "0.2"
18
+ version = "0.2.1"
19
19
  name="gem_plugin"
20
20
 
21
21
  setup_gem(name, version) do |spec|
@@ -10,10 +10,10 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 271</span>
14
- 271: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">GemPlugin</span><span class="ruby-operator">::</span><span class="ruby-constant">Plugin</span>(<span class="ruby-identifier">c</span>)
15
- 272: <span class="ruby-constant">Base</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">c</span>
16
- 273: <span class="ruby-constant">Base</span>
17
- 274: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 278</span>
14
+ 278: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">GemPlugin</span><span class="ruby-operator">::</span><span class="ruby-constant">Plugin</span>(<span class="ruby-identifier">c</span>)
15
+ 279: <span class="ruby-constant">Base</span>.<span class="ruby-identifier">category</span> = <span class="ruby-identifier">c</span>
16
+ 280: <span class="ruby-constant">Base</span>
17
+ 281: <span class="ruby-keyword kw">end</span></pre>
18
18
  </body>
19
19
  </html>
@@ -10,11 +10,11 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 242</span>
14
- 242: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">klass</span>)
15
- 243: <span class="ruby-identifier">name</span> = <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>
16
- 244: <span class="ruby-constant">Manager</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">register</span>(<span class="ruby-ivar">@@category</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">klass</span>)
17
- 245: <span class="ruby-ivar">@@category</span> = <span class="ruby-keyword kw">nil</span>
18
- 246: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 249</span>
14
+ 249: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">klass</span>)
15
+ 250: <span class="ruby-identifier">name</span> = <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>
16
+ 251: <span class="ruby-constant">Manager</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">register</span>(<span class="ruby-ivar">@@category</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">klass</span>)
17
+ 252: <span class="ruby-ivar">@@category</span> = <span class="ruby-keyword kw">nil</span>
18
+ 253: <span class="ruby-keyword kw">end</span></pre>
19
19
  </body>
20
20
  </html>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 249</span>
14
- 249: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">category=</span>(<span class="ruby-identifier">category</span>)
15
- 250: <span class="ruby-ivar">@@category</span> = <span class="ruby-identifier">category</span>
16
- 251: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 256</span>
14
+ 256: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">category=</span>(<span class="ruby-identifier">category</span>)
15
+ 257: <span class="ruby-ivar">@@category</span> = <span class="ruby-identifier">category</span>
16
+ 258: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 253</span>
14
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
15
- 254: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
16
- 255: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 260</span>
14
+ 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
15
+ 261: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
16
+ 262: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -258,14 +258,20 @@ Which will load all plugins that depend on mongrel AND gem_plugin. Now, one
258
258
  extra thing we do is we delay loading Rails Mongrel plugins until after
259
259
  rails is configured. Do do this the mongrel_rails script has:
260
260
  </p>
261
- <pre>
262
- GemPlugin::Manager.instance.load &quot;mongrel&quot; =&gt; GemPlugin::INCLUDE, &quot;rails&quot; =&gt; GemPlugin::EXCLUDE
263
- </pre>
264
261
  <p>
265
- The only thing to remember is that this is saying &quot;include a plugin if
266
- it depends on gem_plugin, mongrel, but NOT rails&quot;. If a plugin also
262
+ GemPlugin::Manager.instance.load &quot;mongrel&quot; =&gt;
263
+ GemPlugin::INCLUDE, &quot;rails&quot; =&gt; GemPlugin::EXCLUDE The only
264
+ thing to remember is that this is saying &quot;include a plugin if it
265
+ depends on gem_plugin, mongrel, but NOT rails&quot;. If a plugin also
267
266
  depends on other stuff then it&#8217;s loaded just fine. Only gem_plugin,
268
267
  mongrel, and rails are ever used to determine if it should be included.
268
+ </p>
269
+ <p>
270
+ NOTE: Currently RubyGems will run autorequire on gems that get required AND
271
+ on their dependencies. This really messes with people running edge rails
272
+ since activerecord or other stuff gets loaded for just touching a gem
273
+ plugin. To prevent this load requires the full path to the
274
+ &quot;init.rb&quot; file, which avoids the RubyGems autorequire magic.
269
275
  </p>
270
276
  </div>
271
277
  </div>
@@ -10,35 +10,36 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 101</span>
14
- 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">needs</span> = {})
15
- 102: <span class="ruby-identifier">sdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span>, <span class="ruby-value str">&quot;specifications&quot;</span>)
16
- 103: <span class="ruby-identifier">gems</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">SourceIndex</span>.<span class="ruby-identifier">from_installed_gems</span>(<span class="ruby-identifier">sdir</span>)
17
- 104: <span class="ruby-identifier">needs</span> = <span class="ruby-identifier">needs</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">&quot;gem_plugin&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">INCLUDE</span>})
18
- 105:
19
- 106: <span class="ruby-identifier">gems</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span>, <span class="ruby-identifier">gem</span><span class="ruby-operator">|</span>
20
- 107: <span class="ruby-comment cmt"># don't load gems more than once</span>
21
- 108: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@gems</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">gem</span>.<span class="ruby-identifier">name</span>
22
- 109: <span class="ruby-identifier">check</span> = <span class="ruby-identifier">needs</span>.<span class="ruby-identifier">dup</span>
23
- 110:
24
- 111: <span class="ruby-comment cmt"># rolls through the depends and inverts anything it finds</span>
25
- 112: <span class="ruby-identifier">gem</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dep</span><span class="ruby-operator">|</span>
26
- 113: <span class="ruby-comment cmt"># this will fail if a gem is depended more than once</span>
27
- 114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>
28
- 115: <span class="ruby-identifier">check</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-operator">!</span><span class="ruby-identifier">check</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>]
29
- 116: <span class="ruby-keyword kw">end</span>
30
- 117: <span class="ruby-keyword kw">end</span>
31
- 118:
32
- 119: <span class="ruby-comment cmt"># now since excluded gems start as true, inverting them</span>
33
- 120: <span class="ruby-comment cmt"># makes them false so we'll skip this gem if any excludes are found</span>
34
- 121: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">check</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span>,<span class="ruby-identifier">test</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">test</span>}).<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
35
- 122: <span class="ruby-comment cmt"># looks like no needs were set to false, so it's good</span>
36
- 123: <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;#{gem.name}/init&quot;</span>
37
- 124: <span class="ruby-ivar">@gems</span>[<span class="ruby-identifier">gem</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span>, <span class="ruby-value str">&quot;gems&quot;</span>, <span class="ruby-node">&quot;#{gem.name}-#{gem.version}&quot;</span>)
38
- 125: <span class="ruby-keyword kw">end</span>
39
- 126: <span class="ruby-keyword kw">end</span>
40
- 127:
41
- 128: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
42
- 129: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 107</span>
14
+ 107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">needs</span> = {})
15
+ 108: <span class="ruby-identifier">sdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span>, <span class="ruby-value str">&quot;specifications&quot;</span>)
16
+ 109: <span class="ruby-identifier">gems</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">SourceIndex</span>.<span class="ruby-identifier">from_installed_gems</span>(<span class="ruby-identifier">sdir</span>)
17
+ 110: <span class="ruby-identifier">needs</span> = <span class="ruby-identifier">needs</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">&quot;gem_plugin&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">INCLUDE</span>})
18
+ 111:
19
+ 112: <span class="ruby-identifier">gems</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span>, <span class="ruby-identifier">gem</span><span class="ruby-operator">|</span>
20
+ 113: <span class="ruby-comment cmt"># don't load gems more than once</span>
21
+ 114: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@gems</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">gem</span>.<span class="ruby-identifier">name</span>
22
+ 115: <span class="ruby-identifier">check</span> = <span class="ruby-identifier">needs</span>.<span class="ruby-identifier">dup</span>
23
+ 116:
24
+ 117: <span class="ruby-comment cmt"># rolls through the depends and inverts anything it finds</span>
25
+ 118: <span class="ruby-identifier">gem</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dep</span><span class="ruby-operator">|</span>
26
+ 119: <span class="ruby-comment cmt"># this will fail if a gem is depended more than once</span>
27
+ 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>
28
+ 121: <span class="ruby-identifier">check</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-operator">!</span><span class="ruby-identifier">check</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>]
29
+ 122: <span class="ruby-keyword kw">end</span>
30
+ 123: <span class="ruby-keyword kw">end</span>
31
+ 124:
32
+ 125: <span class="ruby-comment cmt"># now since excluded gems start as true, inverting them</span>
33
+ 126: <span class="ruby-comment cmt"># makes them false so we'll skip this gem if any excludes are found</span>
34
+ 127: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">check</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span>,<span class="ruby-identifier">test</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">test</span>}).<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
35
+ 128: <span class="ruby-comment cmt"># looks like no needs were set to false, so it's good</span>
36
+ 129: <span class="ruby-identifier">gem_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Gem</span>.<span class="ruby-identifier">dir</span>, <span class="ruby-value str">&quot;gems&quot;</span>, <span class="ruby-node">&quot;#{gem.name}-#{gem.version}&quot;</span>)
37
+ 130: <span class="ruby-identifier">require</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">gem_dir</span>, <span class="ruby-value str">&quot;lib&quot;</span>, <span class="ruby-identifier">gem</span>.<span class="ruby-identifier">name</span>, <span class="ruby-value str">&quot;init.rb&quot;</span>)
38
+ 131: <span class="ruby-ivar">@gems</span>[<span class="ruby-identifier">gem</span>.<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">gem_dir</span>
39
+ 132: <span class="ruby-keyword kw">end</span>
40
+ 133: <span class="ruby-keyword kw">end</span>
41
+ 134:
42
+ 135: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
43
+ 136: <span class="ruby-keyword kw">end</span></pre>
43
44
  </body>
44
45
  </html>
@@ -10,10 +10,10 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 135</span>
14
- 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">category</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">klass</span>)
15
- 136: <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>] <span class="ruby-operator">||=</span> {}
16
- 137: <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>][<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>] = <span class="ruby-identifier">klass</span>
17
- 138: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 142</span>
14
+ 142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">category</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">klass</span>)
15
+ 143: <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>] <span class="ruby-operator">||=</span> {}
16
+ 144: <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>][<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>] = <span class="ruby-identifier">klass</span>
17
+ 145: <span class="ruby-keyword kw">end</span></pre>
18
18
  </body>
19
19
  </html>
@@ -10,20 +10,20 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 145</span>
14
- 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
15
- 146: <span class="ruby-identifier">last_slash</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">&quot;/&quot;</span>)
16
- 147: <span class="ruby-identifier">category</span> = <span class="ruby-identifier">name</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">last_slash</span>]
17
- 148: <span class="ruby-identifier">plugin</span> = <span class="ruby-identifier">name</span>[<span class="ruby-identifier">last_slash</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
18
- 149:
19
- 150: <span class="ruby-identifier">map</span> = <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>]
20
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">map</span>
21
- 152: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Plugin category #{category} does not exist&quot;</span>
22
- 153: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">map</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">plugin</span>
23
- 154: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Plugin #{plugin} does not exist in category #{category}&quot;</span>
24
- 155: <span class="ruby-keyword kw">else</span>
25
- 156: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">plugin</span>].<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
26
- 157: <span class="ruby-keyword kw">end</span>
27
- 158: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 152</span>
14
+ 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
15
+ 153: <span class="ruby-identifier">last_slash</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">&quot;/&quot;</span>)
16
+ 154: <span class="ruby-identifier">category</span> = <span class="ruby-identifier">name</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">last_slash</span>]
17
+ 155: <span class="ruby-identifier">plugin</span> = <span class="ruby-identifier">name</span>[<span class="ruby-identifier">last_slash</span> <span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
18
+ 156:
19
+ 157: <span class="ruby-identifier">map</span> = <span class="ruby-ivar">@plugins</span>[<span class="ruby-identifier">category</span>]
20
+ 158: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">map</span>
21
+ 159: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Plugin category #{category} does not exist&quot;</span>
22
+ 160: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">map</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">plugin</span>
23
+ 161: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Plugin #{plugin} does not exist in category #{category}&quot;</span>
24
+ 162: <span class="ruby-keyword kw">else</span>
25
+ 163: <span class="ruby-identifier">map</span>[<span class="ruby-identifier">plugin</span>].<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
26
+ 164: <span class="ruby-keyword kw">end</span>
27
+ 165: <span class="ruby-keyword kw">end</span></pre>
28
28
  </body>
29
29
  </html>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 162</span>
14
- 162: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loaded?</span>(<span class="ruby-identifier">gem_name</span>)
15
- 163: <span class="ruby-ivar">@gems</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">gem_name</span>
16
- 164: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 169</span>
14
+ 169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loaded?</span>(<span class="ruby-identifier">gem_name</span>)
15
+ 170: <span class="ruby-ivar">@gems</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">gem_name</span>
16
+ 171: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -10,19 +10,19 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 185</span>
14
- 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-identifier">path</span>)
15
- 186: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">loaded?</span> <span class="ruby-identifier">gem_name</span>
16
- 187: <span class="ruby-identifier">raise</span> <span class="ruby-constant">PluginNotLoaded</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Plugin #{gem_name} not loaded when getting resource #{path}&quot;</span>)
17
- 188: <span class="ruby-keyword kw">end</span>
18
- 189:
19
- 190: <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@gems</span>[<span class="ruby-identifier">gem_name</span>], <span class="ruby-value str">&quot;resources&quot;</span>, <span class="ruby-identifier">path</span>)
20
- 191:
21
- 192: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">file</span>
22
- 193: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">file</span>
23
- 194: <span class="ruby-keyword kw">else</span>
24
- 195: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
25
- 196: <span class="ruby-keyword kw">end</span>
26
- 197: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 192</span>
14
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-identifier">path</span>)
15
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">loaded?</span> <span class="ruby-identifier">gem_name</span>
16
+ 194: <span class="ruby-identifier">raise</span> <span class="ruby-constant">PluginNotLoaded</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Plugin #{gem_name} not loaded when getting resource #{path}&quot;</span>)
17
+ 195: <span class="ruby-keyword kw">end</span>
18
+ 196:
19
+ 197: <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@gems</span>[<span class="ruby-identifier">gem_name</span>], <span class="ruby-value str">&quot;resources&quot;</span>, <span class="ruby-identifier">path</span>)
20
+ 198:
21
+ 199: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">file</span>
22
+ 200: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">file</span>
23
+ 201: <span class="ruby-keyword kw">else</span>
24
+ 202: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
25
+ 203: <span class="ruby-keyword kw">end</span>
26
+ 204: <span class="ruby-keyword kw">end</span></pre>
27
27
  </body>
28
28
  </html>
@@ -10,19 +10,19 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 218</span>
14
- 218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">config</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-identifier">options</span>={})
15
- 219: <span class="ruby-identifier">config_file</span> = <span class="ruby-constant">Manager</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-value str">&quot;/defaults.yaml&quot;</span>)
16
- 220: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config_file</span>
17
- 221: <span class="ruby-keyword kw">begin</span>
18
- 222: <span class="ruby-identifier">defaults</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">config_file</span>)
19
- 223: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
20
- 224: <span class="ruby-keyword kw">rescue</span>
21
- 225: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Error loading config #{config_file} for gem #{gem_name}&quot;</span>
22
- 226: <span class="ruby-keyword kw">end</span>
23
- 227: <span class="ruby-keyword kw">else</span>
24
- 228: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">options</span>
25
- 229: <span class="ruby-keyword kw">end</span>
26
- 230: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/gem_plugin.rb, line 225</span>
14
+ 225: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">config</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-identifier">options</span>={})
15
+ 226: <span class="ruby-identifier">config_file</span> = <span class="ruby-constant">Manager</span>.<span class="ruby-identifier">instance</span>.<span class="ruby-identifier">resource</span>(<span class="ruby-identifier">gem_name</span>, <span class="ruby-value str">&quot;/defaults.yaml&quot;</span>)
16
+ 227: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">config_file</span>
17
+ 228: <span class="ruby-keyword kw">begin</span>
18
+ 229: <span class="ruby-identifier">defaults</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load_file</span>(<span class="ruby-identifier">config_file</span>)
19
+ 230: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
20
+ 231: <span class="ruby-keyword kw">rescue</span>
21
+ 232: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Error loading config #{config_file} for gem #{gem_name}&quot;</span>
22
+ 233: <span class="ruby-keyword kw">end</span>
23
+ 234: <span class="ruby-keyword kw">else</span>
24
+ 235: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">options</span>
25
+ 236: <span class="ruby-keyword kw">end</span>
26
+ 237: <span class="ruby-keyword kw">end</span></pre>
27
27
  </body>
28
28
  </html>
@@ -1 +1 @@
1
- Sat Mar 11 22:25:45 EST 2006
1
+ Wed Mar 15 01:27:02 EST 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sat Mar 11 21:19:15 EST 2006</td>
59
+ <td>Wed Mar 15 01:26:56 EST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -93,16 +93,22 @@ module GemPlugin
93
93
  # extra thing we do is we delay loading Rails Mongrel plugins until after rails
94
94
  # is configured. Do do this the mongrel_rails script has:
95
95
  #
96
- # GemPlugin::Manager.instance.load "mongrel" => GemPlugin::INCLUDE, "rails" => GemPlugin::EXCLUDE
96
+ # GemPlugin::Manager.instance.load "mongrel" => GemPlugin::INCLUDE, "rails" => GemPlugin::EXCLUDE
97
97
  # The only thing to remember is that this is saying "include a plugin if it
98
98
  # depends on gem_plugin, mongrel, but NOT rails". If a plugin also depends on other
99
99
  # stuff then it's loaded just fine. Only gem_plugin, mongrel, and rails are
100
100
  # ever used to determine if it should be included.
101
+ #
102
+ # NOTE: Currently RubyGems will run autorequire on gems that get required AND
103
+ # on their dependencies. This really messes with people running edge rails
104
+ # since activerecord or other stuff gets loaded for just touching a gem plugin.
105
+ # To prevent this load requires the full path to the "init.rb" file, which
106
+ # avoids the RubyGems autorequire magic.
101
107
  def load(needs = {})
102
108
  sdir = File.join(Gem.dir, "specifications")
103
109
  gems = Gem::SourceIndex.from_installed_gems(sdir)
104
110
  needs = needs.merge({"gem_plugin" => INCLUDE})
105
-
111
+
106
112
  gems.each do |path, gem|
107
113
  # don't load gems more than once
108
114
  next if @gems.has_key? gem.name
@@ -120,8 +126,9 @@ module GemPlugin
120
126
  # makes them false so we'll skip this gem if any excludes are found
121
127
  if (check.select {|name,test| !test}).length == 0
122
128
  # looks like no needs were set to false, so it's good
123
- require "#{gem.name}/init"
124
- @gems[gem.name] = File.join(Gem.dir, "gems", "#{gem.name}-#{gem.version}")
129
+ gem_dir = File.join(Gem.dir, "gems", "#{gem.name}-#{gem.version}")
130
+ require File.join(gem_dir, "lib", gem.name, "init.rb")
131
+ @gems[gem.name] = gem_dir
125
132
  end
126
133
  end
127
134
 
@@ -93,7 +93,8 @@ def setup_gem(pkg_name, pkg_version)
93
93
 
94
94
  Rake::GemPackageTask.new(spec) do |p|
95
95
  p.gem_spec = spec
96
- p.need_tar = true
96
+ # win32 chokes on this
97
+ p.need_tar = true if RUBY_PLATFORM !~ /mswin/
97
98
  end
98
99
  end
99
100
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: gem_plugin
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.2"
7
- date: 2006-03-12 00:00:00 -05:00
6
+ version: 0.2.1
7
+ date: 2006-03-15 00:00:00 -05:00
8
8
  summary: A plugin system based only on rubygems that uses dependencies only
9
9
  require_paths:
10
10
  - lib