loadable 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-