loadable 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/.index ADDED
@@ -0,0 +1,65 @@
1
+ ---
2
+ type: ruby
3
+ revision: 2013
4
+ sources:
5
+ - var
6
+ authors:
7
+ - name: Thomas Sawyer
8
+ email: transfire@gmail.com
9
+ organizations: []
10
+ requirements:
11
+ - groups:
12
+ - build
13
+ development: true
14
+ name: detroit
15
+ - groups:
16
+ - test
17
+ development: true
18
+ name: minitest
19
+ - groups:
20
+ - test
21
+ development: true
22
+ name: minitap
23
+ - groups:
24
+ - build
25
+ development: true
26
+ name: rake
27
+ conflicts: []
28
+ alternatives: []
29
+ resources:
30
+ - type: home
31
+ uri: http://rubyworks.github.com/loadable
32
+ label: Homepage
33
+ - type: code
34
+ uri: http://github.com/rubyworks/loadable
35
+ label: Source Code
36
+ - type: docs
37
+ uri: http://rubydoc.info/github/rubyworks/loadable/master/frames
38
+ label: Documentation
39
+ - type: mail
40
+ uri: http://groups.google.com/group/rubyworks-mailinglist
41
+ label: Mailing List
42
+ - type: chat
43
+ uri: irc://irc.freenode.net/rubyworks
44
+ label: IRC Channel
45
+ repositories:
46
+ - name: upstream
47
+ scm: git
48
+ uri: git://github.com/rubyworks/loadable.git
49
+ categories: []
50
+ paths:
51
+ load:
52
+ - lib
53
+ copyrights:
54
+ - holder: Thomas Sawyer, RubyWorks
55
+ year: '2010'
56
+ license: BSD-2-Clause
57
+ created: '2010-07-21'
58
+ summary: Safely Customize Ruby's Load System
59
+ title: Loadable
60
+ version: 1.2.1
61
+ name: loadable
62
+ description: Loadable modifieds Ruby's load/require system to handle "load wedges",
63
+ which work much like routes in web frameworks, but in this case determine which
64
+ files get loaded.
65
+ date: '2012-12-21'
data/.ruby CHANGED
@@ -1,51 +1 @@
1
- ---
2
- authors:
3
- - name: Thomas Sawyer
4
- email: transfire@gmail.com
5
- copyrights:
6
- - holder: Thomas Sawyer, RubyWorks
7
- year: '2010'
8
- license: BSD-2-Clause
9
- replacements: []
10
- conflicts: []
11
- requirements:
12
- - name: detroit
13
- groups:
14
- - build
15
- development: true
16
- - name: minitest
17
- groups:
18
- - test
19
- development: true
20
- - name: minitap
21
- groups:
22
- - test
23
- development: true
24
- - name: rake
25
- groups:
26
- - build
27
- development: true
28
- dependencies: []
29
- repositories:
30
- - uri: git://github.com/rubyworks/loadable.git
31
- scm: git
32
- name: upstream
33
- resources:
34
- home: http://rubyworks.github.com/loadable
35
- code: http://github.com/rubyworks/loadable
36
- load_path:
37
- - lib
38
- extra: {}
39
- source:
40
- - Profile
41
- alternatives: []
42
- revision: 0
43
- created: '2010-07-21'
44
- summary: Safely Customize Ruby's Load System
45
- title: Loadable
46
- name: loadable
47
- version: 1.2.0
48
- description: Loadable modifieds Ruby's load/require system to handle "load wedges",
49
- which work much like routes in web frameworks, but in this case determine which
50
- files get loaded.
51
- date: '2011-10-17'
1
+ ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
@@ -1,6 +1,16 @@
1
- = RELEASE HISTORY
1
+ # RELEASE HISTORY
2
2
 
3
- == 1.2.0 / 2011-10-15
3
+ ## 1.2.1 / 2012-12-21
4
+
5
+ Long overdo bug fix release. This release fixes a typo in the
6
+ rubygems search function.
7
+
8
+ Changes:
9
+
10
+ * Fix bug in rubygems search function.
11
+
12
+
13
+ ## 1.2.0 / 2011-10-15
4
14
 
5
15
  This release brings an almost complete rewrite of the API and
6
16
  a renaming of the project form 'wedge' to 'loadable'. See the
@@ -15,7 +25,7 @@ Changes:
15
25
  * New VendorLoader to support development.
16
26
 
17
27
 
18
- == 1.1.0 / 2011-07-03
28
+ ## 1.1.0 / 2011-07-03
19
29
 
20
30
  The Ruby wedge is no longer automatuically loaded when using
21
31
  `require "wedge"`. Load it manually loaded with `require "wedge/ruby`".
@@ -25,7 +35,7 @@ Changes:
25
35
  * Ruby wedge is not automatically loaded with wedge library.
26
36
 
27
37
 
28
- == 1.0.0 / 2010-09-03
38
+ ## 1.0.0 / 2010-09-03
29
39
 
30
40
  This release is simply a maintenance release, updating some project metadata.
31
41
  No functionality has been changed.
@@ -35,7 +45,7 @@ Changes:
35
45
  * Uupdate project metadata to latest POM.
36
46
 
37
47
 
38
- == 1.0.0 / 2010-08-01
48
+ ## 1.0.0 / 2010-08-01
39
49
 
40
50
  Initial release of Wedge, a tool for easily creating custom
41
51
  load managers.
@@ -0,0 +1,397 @@
1
+ # INFRACTIONS
2
+
3
+ One of the rarely mentioned edge cases with the way in which RubyGems loads
4
+ library files, and in fact the way Ruby's load system works in general, is
5
+ that the _lib space_ is a free for all. Any library can drop any file into
6
+ their package's loadpath (i.e. the lib/ directory) and potentially clobber
7
+ a file of the same name in some one else's library.
8
+
9
+ Here's an example irb session that demonstrate the issue. Here I already added
10
+ a `matrix.rb` file, that does nothing but <code>puts "HERE!"</code>, to the `cuts`
11
+ gem and installed it.
12
+
13
+ require 'rubygems'
14
+ => true
15
+ gem "cuts"
16
+ => true
17
+ require 'matrix'
18
+ HERE!
19
+ => true
20
+
21
+ Now, a good <i>gem citizen</i> knows to put their scripts in a directory with
22
+ the same name as their gem package, nonetheless you might be surprised to see
23
+ how often this simple but important practice is violated.
24
+ Consequently the order in which such gems are searched becomes of
25
+ paramount importance --something that worked just fine on one machine can
26
+ suddenly stop working on another for no obvious reason.
27
+
28
+
29
+ ## ISOLATIONISTS
30
+
31
+ It is also worth noting that the recent crop of gem isolation systems, such as
32
+ Bundler and Isolate, while serving to reduce the likelihood of possible name
33
+ clashes still do not fully remedy the issue. They merely reduce the number of
34
+ gems that could cause the problem for any given dependent application.
35
+
36
+
37
+ ## SOLUTION
38
+
39
+ The Ruby and Gem wedges solves the issue entirely by allowing us to load files
40
+ from a single gem and only that gem. It does so by adding a new valid syntax
41
+ to Ruby's #load and #require methods. As an example, let's say we wanted to
42
+ load the troff.rb script from the unroller library.
43
+
44
+ require 'troff', :from => 'unroller'
45
+
46
+ The colon is used to separate the gem name from the rest of the pathname.
47
+ With this we can be 100% certain that the troff.rb file was required
48
+ from the unroller gem and not a 'troff.rb' file from any other
49
+ gem that might have created a script by the same name.
50
+
51
+
52
+ ## EXTENT OF THE ISSUE
53
+
54
+ You might be suprised to find out how many libraries violate the best practice
55
+ of putting all thier scripts in a subdirectory by the same name as the package.
56
+ Just on my development system alone, which really has but a small number of
57
+ gems installed, there are quite a few cases.
58
+
59
+ ParseTree-2.2.0/lib/:
60
+
61
+ composite_sexp_processor.rb
62
+ parse_tree.rb
63
+ sexp.rb
64
+ sexp_processor.rb
65
+ unified_ruby.rb
66
+ unique.rb
67
+
68
+ ParseTree-3.0.3/lib/:
69
+
70
+ gauntlet_parsetree.rb
71
+ parse_tree.rb
72
+ parse_tree_extensions.rb
73
+ unified_ruby.rb
74
+ unique.rb
75
+
76
+ RedCloth-4.1.9/lib/:
77
+
78
+ case_sensitive_require
79
+ redcloth
80
+ redcloth.rb
81
+ redcloth_scan.so
82
+
83
+ RedCloth-4.2.2/lib/:
84
+
85
+ case_sensitive_require
86
+ redcloth
87
+ redcloth.rb
88
+ redcloth_scan.so
89
+ tasks
90
+
91
+ ZenTest-4.0.0/lib/:
92
+ autotest
93
+ autotest.rb
94
+ focus.rb
95
+ functional_test_matrix.rb
96
+ multiruby.rb
97
+ unit_diff.rb
98
+ zentest.rb
99
+ zentest_mapping.rb
100
+
101
+ bossman-0.4.1/lib/:
102
+
103
+ bossman
104
+ bossman.rb
105
+ extensions
106
+
107
+ builder-2.1.2/lib/:
108
+
109
+ blankslate.rb
110
+ builder
111
+ builder.rb
112
+
113
+ chardet-0.9.0/lib/:
114
+
115
+ Big5Freq.rb
116
+ Big5Prober.rb
117
+ CharDistributionAnalysis.rb
118
+ CharSetGroupProber.rb
119
+ CharSetProber.rb
120
+ CodingStateMachine.rb
121
+ ESCSM.rb
122
+ EUCJPProber.rb
123
+ EUCKRFreq.rb
124
+ EUCKRProber.rb
125
+ EUCTWFreq.rb
126
+ EUCTWProber.rb
127
+ EscCharSetProber.rb
128
+ GB2312Freq.rb
129
+ GB2312Prober.rb
130
+ HebrewProber.rb
131
+ JISFreq.rb
132
+ JapaneseContextAnalysis.rb
133
+ LangBulgarianModel.rb
134
+ LangCyrillicModel.rb
135
+ LangGreekModel.rb
136
+ LangHebrewModel.rb
137
+ LangHungarianModel.rb
138
+ LangThaiModel.rb
139
+ Latin1Prober.rb
140
+ MBCSGroupProber.rb
141
+ MBCSSM.rb
142
+ MultiByteCharSetProber.rb
143
+ SBCSGroupProber.rb
144
+ SJISProber.rb
145
+ SingleByteCharSetProber.rb
146
+ UTF8Prober.rb
147
+ UniversalDetector.rb
148
+
149
+ eventmachine-0.12.10/lib/:
150
+
151
+ em
152
+ eventmachine.rb
153
+ evma
154
+ evma.rb
155
+ fastfilereaderext.so
156
+ jeventmachine.rb
157
+ pr_eventmachine.rb
158
+ rubyeventmachine.so
159
+
160
+ hpricot-0.8.1/lib/:
161
+
162
+ fast_xs.so
163
+ hpricot
164
+ hpricot.rb
165
+ hpricot_scan.so
166
+
167
+ html5-0.10.0/lib/:
168
+
169
+ core_ext
170
+ html5
171
+ html5.rb
172
+
173
+ http_router-0.2.5/lib/:
174
+
175
+ ext
176
+ http_router
177
+ http_router.rb
178
+
179
+ httpclient-2.1.5.2/lib/:
180
+
181
+ http-access2
182
+ http-access2.rb
183
+ httpclient
184
+ httpclient.rb
185
+ tags
186
+
187
+ linecache-0.43/lib/:
188
+
189
+ linecache.rb
190
+ trace_nums.so
191
+ tracelines.rb
192
+
193
+ liquid-2.0.0/lib/:
194
+
195
+ extras
196
+ liquid
197
+ liquid.rb
198
+
199
+ mail-2.2.5/lib/:
200
+
201
+ VERSION
202
+ mail
203
+ mail.rb
204
+ mail.rbc
205
+ tasks
206
+
207
+ maruku-0.5.9/lib/:
208
+
209
+ maruku
210
+ maruku.rb
211
+ sort_prof.rb
212
+
213
+ mechanize-0.9.3/lib/:
214
+
215
+ mechanize.rb
216
+ www
217
+
218
+ memcache-client-1.7.8/lib/:
219
+
220
+ continuum_native.rb
221
+ memcache.rb
222
+ memcache_util.rb
223
+
224
+ mocha-0.9.8/lib/:
225
+
226
+ mocha
227
+ mocha.rb
228
+ mocha_standalone.rb
229
+ stubba.rb
230
+
231
+ packr-3.1.0/lib/:
232
+
233
+ packr
234
+ packr.rb
235
+ string.rb
236
+
237
+ qed-2.3.0/lib/:
238
+
239
+ qed
240
+ qed.rb
241
+ qedoc
242
+
243
+ quality_extensions-1.1.6/lib/:
244
+
245
+ Xfind_bug_test.rb
246
+ quality_extensions
247
+ quality_extensions.rb
248
+
249
+ radiant-0.8.2/lib/:
250
+
251
+ annotatable.rb
252
+ autotest
253
+ generators
254
+ inheritable_class_attributes.rb
255
+ local_time.rb
256
+ login_system.rb
257
+ method_observer.rb
258
+ plugins
259
+ radiant
260
+ radiant.rb
261
+ simpleton.rb
262
+ task_support.rb
263
+ tasks
264
+
265
+ rails-2.3.5/lib/:
266
+
267
+ code_statistics.rb
268
+ commands
269
+ commands.rb
270
+ console_app.rb
271
+ console_sandbox.rb
272
+ console_with_helpers.rb
273
+ dispatcher.rb
274
+ fcgi_handler.rb
275
+ initializer.rb
276
+ performance_test_help.rb
277
+ rails
278
+ rails_generator
279
+ rails_generator.rb
280
+ railties_path.rb
281
+ ruby_version_check.rb
282
+ rubyprof_ext.rb
283
+ source_annotation_extractor.rb
284
+ tasks
285
+ test_help.rb
286
+ webrick_server.rb
287
+
288
+ railties-3.0.0.beta/lib/:
289
+
290
+ generators
291
+ rails
292
+ rails.rb
293
+
294
+ ramaze-2010.01/lib/:
295
+
296
+ proto
297
+ ramaze
298
+ ramaze.rb
299
+ vendor
300
+
301
+ rdiscount-1.3.5/lib/:
302
+
303
+ markdown.rb
304
+ rdiscount.rb
305
+ rdiscount.so
306
+
307
+ red-3.5.0/lib/:
308
+
309
+ javascripts
310
+ red
311
+ red.rb
312
+
313
+ red-4.1.7/lib/:
314
+
315
+ red
316
+ red.rb
317
+ source
318
+
319
+ rmagick-2.12.2/lib/:
320
+
321
+ RMagick.rb
322
+ RMagick2.so
323
+ rvg
324
+
325
+ ruby-prof-0.7.3/lib/:
326
+
327
+ ruby-prof
328
+ ruby-prof.rb
329
+ ruby_prof.so
330
+ unprof.rb
331
+
332
+ ruby_parser-2.0.4/lib/:
333
+
334
+ gauntlet_rubyparser.rb
335
+ ruby_lexer.rb
336
+ ruby_parser.rb
337
+ ruby_parser.y
338
+ ruby_parser_extras.rb
339
+
340
+ rubygems-update-1.3.7/lib/:
341
+
342
+ gauntlet_rubygems.rb
343
+ rbconfig
344
+ rubygems
345
+ rubygems.rb
346
+ ubygems.rb
347
+
348
+ s3sync-1.2.5/lib/:
349
+
350
+ HTTPStreaming.rb
351
+ S3.rb
352
+ S3_s3sync_mod.rb
353
+ S3encoder.rb
354
+ s3config.rb
355
+ s3try.rb
356
+ thread_generator.rb
357
+ version.rb
358
+
359
+ sexp_processor-3.0.1/lib/:
360
+
361
+ composite_sexp_processor.rb
362
+ sexp.rb
363
+ sexp_processor.rb
364
+
365
+ sexp_processor-3.0.3/lib/:
366
+
367
+ composite_sexp_processor.rb
368
+ sexp.rb
369
+ sexp_processor.rb
370
+ unique.rb
371
+
372
+ slim_scrooge-1.0.5/lib/:
373
+
374
+ callsite_hash.so
375
+ slim_scrooge
376
+ slim_scrooge.rb
377
+
378
+ treetop-1.2.4/lib/:
379
+
380
+ metagrammar.rb
381
+ treetop
382
+ treetop.rb
383
+
384
+ unroller-1.0.0/lib/:
385
+
386
+ troff.rb
387
+ tron.rb
388
+ unroller.rb
389
+
390
+ xcb-0.0.1/lib/:
391
+
392
+ directory_monitor.rb
393
+ extreme_continuous_builder.rb
394
+ notifiers.rb
395
+ stacking_config.rb
396
+ xcb_command.rb
397
+