ronin 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/History.txt +25 -0
  2. data/Manifest.txt +36 -11
  3. data/README.txt +6 -8
  4. data/Rakefile +2 -1
  5. data/lib/ronin/config.rb +0 -3
  6. data/lib/ronin/environment.rb +1 -1
  7. data/lib/ronin/extensions/string.rb +0 -11
  8. data/lib/ronin/formatting/extensions/binary/integer.rb +24 -12
  9. data/lib/ronin/formatting/extensions/binary/string.rb +166 -0
  10. data/lib/ronin/formatting/extensions/text/string.rb +4 -4
  11. data/lib/ronin/license.rb +42 -12
  12. data/lib/ronin/os.rb +3 -2
  13. data/lib/ronin/platform/extension.rb +11 -141
  14. data/lib/ronin/platform/extension_cache.rb +11 -0
  15. data/lib/ronin/platform/overlay.rb +56 -25
  16. data/lib/ronin/platform/overlay_cache.rb +1 -1
  17. data/lib/ronin/platform/platform.rb +14 -3
  18. data/lib/ronin/platform/ronin.rb +20 -1
  19. data/lib/ronin/platform/tasks/spec.rb +9 -0
  20. data/lib/ronin/{chars.rb → static.rb} +2 -2
  21. data/lib/ronin/static/finders.rb +144 -0
  22. data/lib/ronin/static/static.rb +53 -0
  23. data/lib/ronin/ui/command_line/commands/add.rb +21 -5
  24. data/lib/ronin/ui/command_line/commands/install.rb +19 -3
  25. data/lib/ronin/ui/command_line/commands/rm.rb +1 -1
  26. data/lib/ronin/ui/command_line/commands/uninstall.rb +1 -1
  27. data/lib/ronin/ui/command_line/commands/update.rb +9 -2
  28. data/lib/ronin/version.rb +1 -1
  29. data/spec/extensions/string_spec.rb +0 -10
  30. data/spec/formatting/binary/helpers/hexdumps.rb +14 -0
  31. data/spec/formatting/binary/helpers/hexdumps/hexdump_decimal_shorts.txt +17 -0
  32. data/spec/formatting/binary/helpers/hexdumps/hexdump_hex_bytes.txt +17 -0
  33. data/spec/formatting/binary/helpers/hexdumps/hexdump_hex_shorts.txt +17 -0
  34. data/spec/formatting/binary/helpers/hexdumps/hexdump_octal_bytes.txt +17 -0
  35. data/spec/formatting/binary/helpers/hexdumps/hexdump_octal_shorts.txt +17 -0
  36. data/spec/formatting/binary/helpers/hexdumps/hexdump_repeated.txt +6 -0
  37. data/spec/formatting/binary/helpers/hexdumps/od_decimal_bytes.txt +17 -0
  38. data/spec/formatting/binary/helpers/hexdumps/od_decimal_ints.txt +17 -0
  39. data/spec/formatting/binary/helpers/hexdumps/od_decimal_quads.txt +17 -0
  40. data/spec/formatting/binary/helpers/hexdumps/od_decimal_shorts.txt +17 -0
  41. data/spec/formatting/binary/helpers/hexdumps/od_hex_bytes.txt +17 -0
  42. data/spec/formatting/binary/helpers/hexdumps/od_hex_ints.txt +17 -0
  43. data/spec/formatting/binary/helpers/hexdumps/od_hex_quads.txt +17 -0
  44. data/spec/formatting/binary/helpers/hexdumps/od_hex_shorts.txt +17 -0
  45. data/spec/formatting/binary/helpers/hexdumps/od_octal_bytes.txt +17 -0
  46. data/spec/formatting/binary/helpers/hexdumps/od_octal_ints.txt +17 -0
  47. data/spec/formatting/binary/helpers/hexdumps/od_octal_quads.txt +17 -0
  48. data/spec/formatting/binary/helpers/hexdumps/od_octal_shorts.txt +17 -0
  49. data/spec/formatting/binary/helpers/hexdumps/od_repeated.txt +6 -0
  50. data/spec/formatting/binary/helpers/hexdumps/repeated.bin +1 -0
  51. data/spec/formatting/binary/integer_spec.rb +61 -1
  52. data/spec/formatting/binary/string_spec.rb +166 -9
  53. data/spec/platform/extension_cache_spec.rb +8 -0
  54. data/spec/platform/helpers/overlays.yaml.erb +3 -0
  55. data/spec/platform/helpers/overlays/hello/ronin.xml +1 -1
  56. data/spec/platform/helpers/overlays/random/random/extension.rb +7 -0
  57. data/spec/platform/helpers/overlays/random/ronin.xml +26 -0
  58. data/spec/platform/helpers/overlays/test1/ronin.xml +2 -2
  59. data/spec/platform/helpers/overlays/test2/ronin.xml +2 -2
  60. data/spec/platform/overlay_cache_spec.rb +5 -3
  61. data/spec/platform/overlay_spec.rb +35 -0
  62. data/spec/platform/ronin_spec.rb +13 -1
  63. data/spec/static/finders_spec.rb +55 -0
  64. data/spec/static/helpers/static.rb +11 -0
  65. data/spec/static/helpers/static1/dir/two.txt +0 -0
  66. data/spec/static/helpers/static1/one.txt +0 -0
  67. data/spec/static/helpers/static2/dir/two.txt +0 -0
  68. data/spec/static/helpers/static_class.rb +7 -0
  69. data/spec/static/static_spec.rb +24 -0
  70. data/static/{overlay.xsl → ronin/platform/overlay.xsl} +0 -0
  71. metadata +50 -17
  72. data/bin/ronin-ext +0 -12
  73. data/bin/ronin-overlay +0 -12
  74. data/lib/ronin/chars/char_set.rb +0 -198
  75. data/lib/ronin/chars/chars.rb +0 -190
  76. data/lib/ronin/ui/command_line/commands/ext.rb +0 -70
  77. data/lib/ronin/ui/command_line/commands/overlay.rb +0 -189
  78. data/spec/chars/char_set_spec.rb +0 -175
  79. data/spec/chars/chars_spec.rb +0 -107
  80. data/static/extension.rb +0 -9
@@ -39,4 +39,12 @@ describe Platform::ExtensionCache do
39
39
  paths.length.should == 2
40
40
  paths.select { |path| path =~ /test$/ }.should == paths
41
41
  end
42
+
43
+ it "should reload previously loaded extensions" do
44
+ random_number = lambda { @cache['random'].number }
45
+ previous_number = random_number.call
46
+
47
+ @cache.reload!
48
+ random_number.call.should_not == previous_number
49
+ end
42
50
  end
@@ -5,6 +5,9 @@
5
5
  - :media:
6
6
  :uri:
7
7
  :path: <%= File.join(OVERLAY_CACHE,'test2') %>
8
+ - :media:
9
+ :uri:
10
+ :path: <%= File.join(OVERLAY_CACHE,'random') %>
8
11
  - :media:
9
12
  :uri:
10
13
  :path: <%= File.join(OVERLAY_CACHE,'hello') %>
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0'?>
2
- <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/dist/overlay.xsl"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/static/ronin/platform/overlay.xsl"?>
3
3
  <ronin-overlay version='0.1.5'>
4
4
  <title>
5
5
  Hello World
@@ -0,0 +1,7 @@
1
+ ronin_extension do
2
+
3
+ def number
4
+ rand(10000)
5
+ end
6
+
7
+ end
@@ -0,0 +1,26 @@
1
+ <?xml version='1.0'?>
2
+ <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/static/ronin/platform/overlay.xsl"?>
3
+ <ronin-overlay version='0.1.5'>
4
+ <title>
5
+ Random
6
+ </title>
7
+ <website>
8
+ http://ronin.rubyforge.org/
9
+ </website>
10
+ <license>
11
+ GPL-2
12
+ </license>
13
+ <maintainers>
14
+ <maintainer>
15
+ <name>
16
+ Postmodern
17
+ </name>
18
+ <email>
19
+ postmodern.mod3@gmail.com
20
+ </email>
21
+ </maintainer>
22
+ </maintainers>
23
+ <description>
24
+ This is a test overlay used in Ronin&apos;s specs.
25
+ </description>
26
+ </ronin-overlay>
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0'?>
2
- <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/dist/overlay.xsl"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/static/ronin/platform/overlay.xsl"?>
3
3
  <ronin-overlay version='0.1.5'>
4
4
  <title>
5
5
  Test One
@@ -23,4 +23,4 @@
23
23
  <description>
24
24
  This is a test overlay used in Ronin&apos;s specs.
25
25
  </description>
26
- </ronin-overlay>
26
+ </ronin-overlay>
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0'?>
2
- <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/dist/overlay.xsl"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://ronin.rubyforge.org/static/ronin/platform/overlay.xsl"?>
3
3
  <ronin-overlay version='0.1.5'>
4
4
  <title>
5
5
  Test Two
@@ -23,4 +23,4 @@
23
23
  <description>
24
24
  This is a test overlay used in Ronin&apos;s specs.
25
25
  </description>
26
- </ronin-overlay>
26
+ </ronin-overlay>
@@ -42,8 +42,10 @@ describe Platform::OverlayCache do
42
42
  it "should return the paths to all the overlays" do
43
43
  paths = @cache.paths
44
44
 
45
- paths.length.should == 3
46
- paths.select { |path| path =~ /(test[12]|hello)$/ }.should == paths
45
+ paths.length.should == 4
46
+ paths.select { |path|
47
+ path =~ /(test[12]|hello|random)$/
48
+ }.should == paths
47
49
  end
48
50
 
49
51
  it "should have specific extensions" do
@@ -51,7 +53,7 @@ describe Platform::OverlayCache do
51
53
  end
52
54
 
53
55
  it "should have extensions" do
54
- @cache.extensions.should == ['test', 'hello']
56
+ @cache.extensions.should == ['test', 'hello', 'random']
55
57
  end
56
58
 
57
59
  it "should provide the paths to specific extensions" do
@@ -0,0 +1,35 @@
1
+ require 'ronin/platform/overlay'
2
+
3
+ require 'platform/helpers/overlays'
4
+ require 'spec_helper'
5
+
6
+ describe Platform::Overlay do
7
+ describe "initialize_metadata" do
8
+ before(:all) do
9
+ @overlay = Platform::Overlay.new(File.join(OVERLAY_CACHE,'hello'))
10
+ end
11
+
12
+ it "should load the title" do
13
+ @overlay.title.should == 'Hello World'
14
+ end
15
+
16
+ it "should load the website" do
17
+ @overlay.website.should == 'http://ronin.rubyforge.org/'
18
+ end
19
+
20
+ it "should load the license" do
21
+ @overlay.license.should == 'GPL-2'
22
+ end
23
+
24
+ it "should load the maintainers" do
25
+ @overlay.maintainers.find { |maintainer|
26
+ maintainer.name == 'Postmodern' && \
27
+ maintainer.email == 'postmodern.mod3@gmail.com'
28
+ }.should_not be_nil
29
+ end
30
+
31
+ it "should load the description" do
32
+ @overlay.description.should == %{This is a test overlay used in Ronin's specs.}
33
+ end
34
+ end
35
+ end
@@ -8,7 +8,19 @@ describe Ronin do
8
8
  Platform.load_overlays(overlay_cache_path)
9
9
  end
10
10
 
11
- it "should provide transparent access to extensions" do
11
+ it "should provide transparent access to extensions via methods" do
12
+ ext = Ronin::Hello
13
+
14
+ ext.should_not be_nil
15
+ ext.name.should == 'hello'
16
+ ext.greatings.should == 'hello'
17
+ end
18
+
19
+ it "should raise NameError when accessing missing extensions" do
20
+ lambda { Ronin::Nothing }.should raise_error(NameError)
21
+ end
22
+
23
+ it "should provide transparent access to extensions via methods" do
12
24
  ext = Ronin.hello
13
25
 
14
26
  ext.should_not be_nil
@@ -0,0 +1,55 @@
1
+ require 'ronin/static/finders'
2
+
3
+ require 'spec_helper'
4
+ require 'static/helpers/static'
5
+
6
+ describe Static::Finders do
7
+ before(:all) do
8
+ @example = StaticClass.new
9
+ end
10
+
11
+ it "should find a file" do
12
+ @example.instance_eval {
13
+ find_static_file('one.txt')
14
+ }.should == File.join(STATIC_DIRS[0],'one.txt')
15
+ end
16
+
17
+ it "should find a directory" do
18
+ @example.instance_eval {
19
+ find_static_dir('dir')
20
+ }.should == File.join(STATIC_DIRS[0],'dir')
21
+ end
22
+
23
+ it "should find a file based on a pattern" do
24
+ @example.instance_eval {
25
+ static_glob('*/*.txt')
26
+ }.should == [File.join(STATIC_DIRS[0],'dir','two.txt')]
27
+ end
28
+
29
+ it "should find all matching files" do
30
+ @example.instance_eval {
31
+ find_static_files('dir/two.txt')
32
+ }.should == [
33
+ File.join(STATIC_DIRS[0],'dir','two.txt'),
34
+ File.join(STATIC_DIRS[1],'dir','two.txt')
35
+ ]
36
+ end
37
+
38
+ it "should find all matching directories" do
39
+ @example.instance_eval {
40
+ find_static_dirs('dir')
41
+ }.should == [
42
+ File.join(STATIC_DIRS[0],'dir'),
43
+ File.join(STATIC_DIRS[1],'dir')
44
+ ]
45
+ end
46
+
47
+ it "should find all paths matching a pattern" do
48
+ @example.instance_eval {
49
+ static_glob_all('*/*.txt')
50
+ }.should == [
51
+ File.join(STATIC_DIRS[0],'dir','two.txt'),
52
+ File.join(STATIC_DIRS[1],'dir','two.txt')
53
+ ]
54
+ end
55
+ end
@@ -0,0 +1,11 @@
1
+ require 'ronin/static'
2
+ require 'static/helpers/static_class'
3
+
4
+ STATIC_DIRS = [
5
+ File.expand_path(File.join(File.dirname(__FILE__),'static1')),
6
+ File.expand_path(File.join(File.dirname(__FILE__),'static2')),
7
+ ]
8
+
9
+ module Ronin
10
+ STATIC_DIRS.each { |dir| Static.directory(dir) }
11
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ require 'ronin/static/finders'
2
+
3
+ class StaticClass
4
+
5
+ include Static::Finders
6
+
7
+ end
@@ -0,0 +1,24 @@
1
+ require 'ronin/static/static'
2
+
3
+ require 'spec_helper'
4
+ require 'static/helpers/static'
5
+
6
+ describe Static do
7
+ it "should list static directories" do
8
+ STATIC_DIRS.each do |dir|
9
+ Static.static_dirs.include?(dir).should == true
10
+ end
11
+ end
12
+
13
+ it "should prevent the addition of non-existant directories" do
14
+ lambda {
15
+ Static.directory('lol')
16
+ }.should raise_error(RuntimeError)
17
+ end
18
+
19
+ it "should prevent the addition of non-directories" do
20
+ lambda {
21
+ Static.directory(__FILE__)
22
+ }.should raise_error(RuntimeError)
23
+ end
24
+ end
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-23 00:00:00 -08:00
12
+ date: 2009-03-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -102,6 +102,16 @@ dependencies:
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.1.0
104
104
  version:
105
+ - !ruby/object:Gem::Dependency
106
+ name: chars
107
+ type: :runtime
108
+ version_requirement:
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 0.1.0
114
+ version:
105
115
  - !ruby/object:Gem::Dependency
106
116
  name: parameters
107
117
  type: :runtime
@@ -140,7 +150,7 @@ dependencies:
140
150
  requirements:
141
151
  - - ">="
142
152
  - !ruby/object:Gem::Version
143
- version: 0.1.2
153
+ version: 0.2.1
144
154
  version:
145
155
  - !ruby/object:Gem::Dependency
146
156
  name: hoe
@@ -150,7 +160,7 @@ dependencies:
150
160
  requirements:
151
161
  - - ">="
152
162
  - !ruby/object:Gem::Version
153
- version: 1.8.3
163
+ version: 1.11.0
154
164
  version:
155
165
  description: Ronin is a Ruby platform designed for information security and data exploration tasks. Ronin allows for the rapid development and distribution of code over many of the common Source-Code-Management (SCM) systems.
156
166
  email:
@@ -159,11 +169,9 @@ executables:
159
169
  - ronin
160
170
  - ronin-add
161
171
  - ronin-console
162
- - ronin-ext
163
172
  - ronin-help
164
173
  - ronin-install
165
174
  - ronin-ls
166
- - ronin-overlay
167
175
  - ronin-rm
168
176
  - ronin-uninstall
169
177
  - ronin-update
@@ -185,16 +193,17 @@ files:
185
193
  - bin/ronin
186
194
  - bin/ronin-add
187
195
  - bin/ronin-console
188
- - bin/ronin-ext
189
196
  - bin/ronin-help
190
197
  - bin/ronin-install
191
198
  - bin/ronin-ls
192
- - bin/ronin-overlay
193
199
  - bin/ronin-rm
194
200
  - bin/ronin-uninstall
195
201
  - bin/ronin-update
196
202
  - lib/ronin.rb
197
203
  - lib/ronin/config.rb
204
+ - lib/ronin/static.rb
205
+ - lib/ronin/static/static.rb
206
+ - lib/ronin/static/finders.rb
198
207
  - lib/ronin/extensions.rb
199
208
  - lib/ronin/extensions/meta.rb
200
209
  - lib/ronin/extensions/meta/object.rb
@@ -219,9 +228,6 @@ files:
219
228
  - lib/ronin/formatting/extensions/text/string.rb
220
229
  - lib/ronin/formatting/extensions/http.rb
221
230
  - lib/ronin/formatting/extensions/http/string.rb
222
- - lib/ronin/chars.rb
223
- - lib/ronin/chars/char_set.rb
224
- - lib/ronin/chars/chars.rb
225
231
  - lib/ronin/translators.rb
226
232
  - lib/ronin/translators/translator.rb
227
233
  - lib/ronin/path.rb
@@ -299,6 +305,7 @@ files:
299
305
  - lib/ronin/models.rb
300
306
  - lib/ronin/environment.rb
301
307
  - lib/ronin/platform.rb
308
+ - lib/ronin/platform/tasks/spec.rb
302
309
  - lib/ronin/platform/exceptions.rb
303
310
  - lib/ronin/platform/exceptions/extension_not_found.rb
304
311
  - lib/ronin/platform/exceptions/overlay_cached.rb
@@ -328,8 +335,6 @@ files:
328
335
  - lib/ronin/ui/command_line/options.rb
329
336
  - lib/ronin/ui/command_line/param_parser.rb
330
337
  - lib/ronin/ui/command_line/commands/console.rb
331
- - lib/ronin/ui/command_line/commands/overlay.rb
332
- - lib/ronin/ui/command_line/commands/ext.rb
333
338
  - lib/ronin/ui/command_line/commands/add.rb
334
339
  - lib/ronin/ui/command_line/commands/install.rb
335
340
  - lib/ronin/ui/command_line/commands/ls.rb
@@ -343,16 +348,42 @@ files:
343
348
  - tasks/spec.rb
344
349
  - spec/helpers.rb
345
350
  - spec/spec_helper.rb
351
+ - spec/static/helpers/static1/one.txt
352
+ - spec/static/helpers/static1/dir/two.txt
353
+ - spec/static/helpers/static2/dir/two.txt
354
+ - spec/static/helpers/static.rb
355
+ - spec/static/helpers/static_class.rb
356
+ - spec/static/finders_spec.rb
357
+ - spec/static/static_spec.rb
346
358
  - spec/arch_spec.rb
347
359
  - spec/author_spec.rb
348
- - spec/chars/char_set_spec.rb
349
- - spec/chars/chars_spec.rb
350
360
  - spec/translators/translator_spec.rb
351
361
  - spec/objectify/objectify_spec.rb
352
362
  - spec/extensions/hash_spec.rb
353
363
  - spec/extensions/string_spec.rb
354
364
  - spec/extensions/uri/http_spec.rb
355
365
  - spec/extensions/uri/query_params_spec.rb
366
+ - spec/formatting/binary/helpers/hexdumps.rb
367
+ - spec/formatting/binary/helpers/hexdumps/repeated.bin
368
+ - spec/formatting/binary/helpers/hexdumps/hexdump_octal_bytes.txt
369
+ - spec/formatting/binary/helpers/hexdumps/hexdump_octal_shorts.txt
370
+ - spec/formatting/binary/helpers/hexdumps/hexdump_decimal_shorts.txt
371
+ - spec/formatting/binary/helpers/hexdumps/hexdump_hex_bytes.txt
372
+ - spec/formatting/binary/helpers/hexdumps/hexdump_hex_shorts.txt
373
+ - spec/formatting/binary/helpers/hexdumps/hexdump_repeated.txt
374
+ - spec/formatting/binary/helpers/hexdumps/od_octal_bytes.txt
375
+ - spec/formatting/binary/helpers/hexdumps/od_octal_shorts.txt
376
+ - spec/formatting/binary/helpers/hexdumps/od_octal_ints.txt
377
+ - spec/formatting/binary/helpers/hexdumps/od_octal_quads.txt
378
+ - spec/formatting/binary/helpers/hexdumps/od_decimal_bytes.txt
379
+ - spec/formatting/binary/helpers/hexdumps/od_decimal_shorts.txt
380
+ - spec/formatting/binary/helpers/hexdumps/od_decimal_ints.txt
381
+ - spec/formatting/binary/helpers/hexdumps/od_decimal_quads.txt
382
+ - spec/formatting/binary/helpers/hexdumps/od_hex_bytes.txt
383
+ - spec/formatting/binary/helpers/hexdumps/od_hex_shorts.txt
384
+ - spec/formatting/binary/helpers/hexdumps/od_hex_ints.txt
385
+ - spec/formatting/binary/helpers/hexdumps/od_hex_quads.txt
386
+ - spec/formatting/binary/helpers/hexdumps/od_repeated.txt
356
387
  - spec/formatting/binary/integer_spec.rb
357
388
  - spec/formatting/binary/string_spec.rb
358
389
  - spec/formatting/digest_spec.rb
@@ -374,7 +405,10 @@ files:
374
405
  - spec/platform/helpers/overlays/test2/test/extension.rb
375
406
  - spec/platform/helpers/overlays/hello/ronin.xml
376
407
  - spec/platform/helpers/overlays/hello/hello/extension.rb
408
+ - spec/platform/helpers/overlays/random/ronin.xml
409
+ - spec/platform/helpers/overlays/random/random/extension.rb
377
410
  - spec/platform/extension_spec.rb
411
+ - spec/platform/overlay_spec.rb
378
412
  - spec/platform/overlay_cache_spec.rb
379
413
  - spec/platform/extension_cache_spec.rb
380
414
  - spec/platform/platform_spec.rb
@@ -383,8 +417,7 @@ files:
383
417
  - spec/ui/command_line/helpers/example_command.rb
384
418
  - spec/ui/command_line/param_parser_spec.rb
385
419
  - spec/ronin_spec.rb
386
- - static/overlay.xsl
387
- - static/extension.rb
420
+ - static/ronin/platform/overlay.xsl
388
421
  has_rdoc: true
389
422
  homepage: http://ronin.rubyforge.org/
390
423
  post_install_message: