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.
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
+