loadable 1.2.0 → 1.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.
@@ -1,31 +0,0 @@
1
- = COPYRIGHT NOTICES
2
-
3
- == Load System
4
-
5
- Copyright:: (c) 2010 Rubyworks, Thomas Sawyer
6
- License:: BSD-2-Clause
7
- Wedsite:: http://rubyworks.github.com/wedge
8
-
9
- Copyright 2010 Rubyworks, Thomas Sawyer. All rights reserved.
10
-
11
- Redistribution and use in source and binary forms, with or without modification, are
12
- permitted provided that the following conditions are met:
13
-
14
- 1. Redistributions of source code must retain the above copyright notice, this list of
15
- conditions and the following disclaimer.
16
-
17
- 2. Redistributions in binary form must reproduce the above copyright notice, this list
18
- of conditions and the following disclaimer in the documentation and/or other materials
19
- provided with the distribution.
20
-
21
- THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY EXPRESS OR IMPLIED
22
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
23
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
24
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
-
31
- (http://www.spdx.org/licenses/BSD-2-Clause)
@@ -1,401 +0,0 @@
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, the did 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 to
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 'unroller:troff'
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
- grosser-parallel-0.3.1/lib/:
161
-
162
- parallel.rb
163
-
164
- hpricot-0.8.1/lib/:
165
-
166
- fast_xs.so
167
- hpricot
168
- hpricot.rb
169
- hpricot_scan.so
170
-
171
- html5-0.10.0/lib/:
172
-
173
- core_ext
174
- html5
175
- html5.rb
176
-
177
- http_router-0.2.5/lib/:
178
-
179
- ext
180
- http_router
181
- http_router.rb
182
-
183
- httpclient-2.1.5.2/lib/:
184
-
185
- http-access2
186
- http-access2.rb
187
- httpclient
188
- httpclient.rb
189
- tags
190
-
191
- linecache-0.43/lib/:
192
-
193
- linecache.rb
194
- trace_nums.so
195
- tracelines.rb
196
-
197
- liquid-2.0.0/lib/:
198
-
199
- extras
200
- liquid
201
- liquid.rb
202
-
203
- mail-2.2.5/lib/:
204
-
205
- VERSION
206
- mail
207
- mail.rb
208
- mail.rbc
209
- tasks
210
-
211
- maruku-0.5.9/lib/:
212
-
213
- maruku
214
- maruku.rb
215
- sort_prof.rb
216
-
217
- mechanize-0.9.3/lib/:
218
-
219
- mechanize.rb
220
- www
221
-
222
- memcache-client-1.7.8/lib/:
223
-
224
- continuum_native.rb
225
- memcache.rb
226
- memcache_util.rb
227
-
228
- mocha-0.9.8/lib/:
229
-
230
- mocha
231
- mocha.rb
232
- mocha_standalone.rb
233
- stubba.rb
234
-
235
- packr-3.1.0/lib/:
236
-
237
- packr
238
- packr.rb
239
- string.rb
240
-
241
- qed-2.3.0/lib/:
242
-
243
- qed
244
- qed.rb
245
- qedoc
246
-
247
- quality_extensions-1.1.6/lib/:
248
-
249
- Xfind_bug_test.rb
250
- quality_extensions
251
- quality_extensions.rb
252
-
253
- radiant-0.8.2/lib/:
254
-
255
- annotatable.rb
256
- autotest
257
- generators
258
- inheritable_class_attributes.rb
259
- local_time.rb
260
- login_system.rb
261
- method_observer.rb
262
- plugins
263
- radiant
264
- radiant.rb
265
- simpleton.rb
266
- task_support.rb
267
- tasks
268
-
269
- rails-2.3.5/lib/:
270
-
271
- code_statistics.rb
272
- commands
273
- commands.rb
274
- console_app.rb
275
- console_sandbox.rb
276
- console_with_helpers.rb
277
- dispatcher.rb
278
- fcgi_handler.rb
279
- initializer.rb
280
- performance_test_help.rb
281
- rails
282
- rails_generator
283
- rails_generator.rb
284
- railties_path.rb
285
- ruby_version_check.rb
286
- rubyprof_ext.rb
287
- source_annotation_extractor.rb
288
- tasks
289
- test_help.rb
290
- webrick_server.rb
291
-
292
- railties-3.0.0.beta/lib/:
293
-
294
- generators
295
- rails
296
- rails.rb
297
-
298
- ramaze-2010.01/lib/:
299
-
300
- proto
301
- ramaze
302
- ramaze.rb
303
- vendor
304
-
305
- rdiscount-1.3.5/lib/:
306
-
307
- markdown.rb
308
- rdiscount.rb
309
- rdiscount.so
310
-
311
- red-3.5.0/lib/:
312
-
313
- javascripts
314
- red
315
- red.rb
316
-
317
- red-4.1.7/lib/:
318
-
319
- red
320
- red.rb
321
- source
322
-
323
- rmagick-2.12.2/lib/:
324
-
325
- RMagick.rb
326
- RMagick2.so
327
- rvg
328
-
329
- ruby-prof-0.7.3/lib/:
330
-
331
- ruby-prof
332
- ruby-prof.rb
333
- ruby_prof.so
334
- unprof.rb
335
-
336
- ruby_parser-2.0.4/lib/:
337
-
338
- gauntlet_rubyparser.rb
339
- ruby_lexer.rb
340
- ruby_parser.rb
341
- ruby_parser.y
342
- ruby_parser_extras.rb
343
-
344
- rubygems-update-1.3.7/lib/:
345
-
346
- gauntlet_rubygems.rb
347
- rbconfig
348
- rubygems
349
- rubygems.rb
350
- ubygems.rb
351
-
352
- s3sync-1.2.5/lib/:
353
-
354
- HTTPStreaming.rb
355
- S3.rb
356
- S3_s3sync_mod.rb
357
- S3encoder.rb
358
- s3config.rb
359
- s3try.rb
360
- thread_generator.rb
361
- version.rb
362
-
363
- sexp_processor-3.0.1/lib/:
364
-
365
- composite_sexp_processor.rb
366
- sexp.rb
367
- sexp_processor.rb
368
-
369
- sexp_processor-3.0.3/lib/:
370
-
371
- composite_sexp_processor.rb
372
- sexp.rb
373
- sexp_processor.rb
374
- unique.rb
375
-
376
- slim_scrooge-1.0.5/lib/:
377
-
378
- callsite_hash.so
379
- slim_scrooge
380
- slim_scrooge.rb
381
-
382
- treetop-1.2.4/lib/:
383
-
384
- metagrammar.rb
385
- treetop
386
- treetop.rb
387
-
388
- unroller-1.0.0/lib/:
389
-
390
- troff.rb
391
- tron.rb
392
- unroller.rb
393
-
394
- xcb-0.0.1/lib/:
395
-
396
- directory_monitor.rb
397
- extreme_continuous_builder.rb
398
- notifiers.rb
399
- stacking_config.rb
400
- xcb_command.rb
401
-