gem_plugin 0.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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