pik 0.2.2 → 0.2.3

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.
@@ -5,9 +5,21 @@ module Pik
5
5
  aka :ls
6
6
  it "Lists ruby versions that pik is aware of."
7
7
 
8
- attr_reader :verbose
8
+ attr_reader :verbose, :remote
9
9
 
10
10
  def execute
11
+ if remote
12
+ remote_list
13
+ else
14
+ list
15
+ end
16
+ end
17
+
18
+ def remote_list
19
+ puts Implementations.list.to_yaml
20
+ end
21
+
22
+ def list
11
23
  current_path = Which::Ruby.find
12
24
  config.sort.each do |name, conf|
13
25
  name += ' *' if current_path == conf[:path]
@@ -28,6 +40,11 @@ module Pik
28
40
  ) do |value|
29
41
  @verbose = value
30
42
  end
43
+ @options.on("--remote", "-r",
44
+ "List remote install packages"
45
+ ) do |value|
46
+ @remote = value
47
+ end
31
48
  end
32
49
 
33
50
  end
@@ -6,11 +6,17 @@ module Pik
6
6
 
7
7
  def execute
8
8
  @config.sort.each do |version,hash|
9
- switch_path_to(hash)
10
- switch_gem_home_to(hash[:gem_home])
11
- echo_ruby_version(hash[:path])
12
- puts `#{command}`
13
- puts
9
+ begin
10
+ switch_path_to(hash)
11
+ switch_gem_home_to(hash[:gem_home])
12
+ echo_ruby_version(hash[:path])
13
+ system command
14
+ puts
15
+ rescue => e
16
+ version = version.split(': ')[1..-1].join(': ')
17
+ puts version
18
+ Pik.print_error(e)
19
+ end
14
20
  end
15
21
  end
16
22
 
@@ -19,17 +25,21 @@ module Pik
19
25
  "#{cmd} #{args}"
20
26
  end
21
27
 
28
+
22
29
  def command_options
23
30
  super
31
+ options.separator help_message
32
+ end
33
+
34
+ def help_message
24
35
  sep =<<SEP
25
36
  Examples:
26
37
 
27
- C:\\>pik run "ruby -v"
38
+ C:\\>pik run PATH
28
39
 
29
- C:\\>pik run "rake spec"
40
+ C:\\>pik run rake spec
30
41
 
31
42
  SEP
32
- options.separator sep
33
43
  end
34
44
 
35
45
  def parse_options
@@ -67,6 +77,7 @@ SEP
67
77
 
68
78
  def echo_ruby_version(path)
69
79
  rb = Which::Ruby.exe(path)
80
+ raise "Unable to find a Ruby executable at #{path}" unless rb
70
81
  puts `"#{rb}" -v `
71
82
  end
72
83
 
@@ -80,6 +91,17 @@ SEP
80
91
  def command(cmd=Which::Ruby.exe.basename)
81
92
  super(cmd)
82
93
  end
94
+
95
+ def help_message
96
+ sep =<<SEP
97
+ Examples:
98
+
99
+ C:\\>pik ruby -v
100
+
101
+ C:\\>pik rb -e "puts 'Hello world!'"
102
+
103
+ SEP
104
+ end
83
105
 
84
106
  end
85
107
 
@@ -91,6 +113,17 @@ SEP
91
113
  super(cmd)
92
114
  end
93
115
 
116
+ def help_message
117
+ sep =<<SEP
118
+ Examples:
119
+
120
+ C:\\>pik gem list
121
+
122
+ C:\\>pik gem install my_gem
123
+
124
+ SEP
125
+ end
126
+
94
127
  end
95
128
 
96
129
  end
@@ -8,6 +8,8 @@ module Pik
8
8
  config.global[:tags] ||= Hash.new{|h,k| h[k] = [] }
9
9
  @tag_config = config.dup
10
10
  @tag_config.clear
11
+ abort self.class.description if @args.empty?
12
+
11
13
  tags = @args.shift.split(',')
12
14
  tags.each do |tag|
13
15
  versions = config.global[:tags][tag]
@@ -33,6 +35,23 @@ module Pik
33
35
  def parse_options
34
36
  end
35
37
 
38
+ def command_options
39
+ super
40
+ sep =<<SEP
41
+ The tags command allows you to run a subset of versions.
42
+ It should be used in conjunction with the run, ruby, or gems commands.
43
+ Multpile tags can be given in a comma separated (no spaces) list.
44
+
45
+ Examples:
46
+
47
+ C:\\>pik tags jruby run ruby -v
48
+
49
+ C:\\>pik tags mingw,jruby gem install my_gem
50
+
51
+ SEP
52
+ options.separator sep
53
+ end
54
+
36
55
  end
37
56
 
38
57
  class Tag < Command
@@ -8,13 +8,14 @@ module Pik
8
8
 
9
9
  def initialize
10
10
  @file = File.join(PIK_HOME, 'config.yml')
11
+ @global = {}
11
12
  super
12
13
  if File.exists? @file
13
14
  contents = File.read( @file )
14
15
  unless contents.empty?
15
16
  documents = YAML.load_stream( contents )
16
17
  self.update( documents[0] )
17
- @global = documents[1] || {}
18
+ @global.update( documents[1] ) if documents[1]
18
19
  end
19
20
  end
20
21
  end
@@ -2,12 +2,12 @@
2
2
  class Pathname
3
3
 
4
4
  def to_s
5
- @path.gsub('/','\\')
5
+ @path.tr('/','\\')
6
6
  end
7
7
  alias to_windows to_s
8
8
 
9
9
  def to_ruby
10
- @path.gsub('\\','/')
10
+ @path.tr('\\','/')
11
11
  end
12
12
 
13
13
  def ruby
@@ -0,0 +1,104 @@
1
+ require 'open-uri'
2
+
3
+ module Pik
4
+
5
+ module Implementations
6
+
7
+ def self.[](implementation)
8
+ self.send(implementation.downcase)
9
+ end
10
+
11
+ def self.ruby
12
+ Ruby.new
13
+ end
14
+
15
+ def self.ironruby
16
+ IronRuby.new
17
+ end
18
+
19
+ def self.jruby
20
+ JRuby.new
21
+ end
22
+
23
+ def self.method_missing(meth)
24
+ raise "Pik isn't aware of an implementation called '#{meth}' for Windows."
25
+ end
26
+
27
+ def self.list
28
+ h = {}
29
+ [ruby, jruby, ironruby].each{|i| h[i.subclass] = i.versions }
30
+ h
31
+ end
32
+
33
+ class Base
34
+
35
+ def self.find(*args)
36
+ new.find(*args)
37
+ end
38
+
39
+ def initialize
40
+ @url = 'http://rubyforge.org'
41
+ end
42
+
43
+ def find(*args)
44
+ if args.empty?
45
+ return most_recent
46
+ else
47
+ pattern = Regexp.new(Regexp.escape(args.first))
48
+ versions.select{|v,k| v =~ pattern }.max
49
+ end
50
+ end
51
+
52
+ def most_recent(vers=versions)
53
+ vers.max
54
+ end
55
+
56
+ def versions
57
+ vers = read.scan(@re).map{|v| v.reverse}
58
+ vers.map!{ |name, path| [name, @url + path] }.flatten!
59
+ Hash[*vers]
60
+ end
61
+
62
+ def read
63
+ uri = URI.parse(@url+@path)
64
+ uri.read
65
+ end
66
+
67
+ def subclass
68
+ self.class.to_s.split('::').last
69
+ end
70
+
71
+ end
72
+
73
+ class Ruby < Base
74
+
75
+ def initialize
76
+ super
77
+ @path = "/frs/?group_id=167"
78
+ @re = /\"(.+ruby\-(.+)\-i386\-mingw32\.7z)\"/
79
+ end
80
+
81
+ end
82
+
83
+ class IronRuby < Base
84
+
85
+ def initialize
86
+ super
87
+ @path = "/frs/?group_id=4359"
88
+ @re = /\"(.+ironruby\-(\d\.\d\.\d)\.zip)\"/
89
+ end
90
+
91
+ end
92
+
93
+ class JRuby < Base
94
+
95
+ def initialize
96
+ @url = ''
97
+ @path = "http://www.jruby.org/download"
98
+ @re = /\<p.*\>\<a .*href\=\"(.+ruby-bin\-(.+)\.zip)\"/
99
+ end
100
+ end
101
+
102
+ end
103
+
104
+ end
@@ -0,0 +1,10 @@
1
+ module Pik
2
+
3
+ def self.print_error(error)
4
+ puts "\nThere was an error."
5
+ puts " Error: #{error.message}\n\n"
6
+ puts error.backtrace.map{|m| " in: #{m}" }
7
+ puts
8
+ end
9
+
10
+ end
@@ -34,11 +34,15 @@ class SearchPath
34
34
 
35
35
  def add(new_path)
36
36
  new_path = Pathname(new_path)
37
- @path << new_path.to_windows.to_s
37
+ @path.unshift new_path.to_windows.to_s
38
38
  self
39
39
  end
40
40
 
41
41
  def replace_or_add(old_path, new_path)
42
+ if old_path.nil?
43
+ add(new_path)
44
+ return self
45
+ end
42
46
  old_path = Pathname(old_path)
43
47
  new_path = Pathname(new_path)
44
48
  return self if old_path == new_path
@@ -1,30 +1,9 @@
1
1
 
2
2
  describe Pik::Help do
3
3
 
4
- before do
5
- @cmd = 'tools\\pik.bat'
6
- end
7
-
8
4
  it "should have a summary" do
9
5
  Pik::Help.summary.should eql("Displays help information.")
10
6
  end
11
-
12
- it "should display when no commands are given" do
13
- cmd = `#{@cmd}`
14
- msg = ["Usage: pik command [options]",
15
- "To get help with a command",
16
- " pik help (command)",
17
- "To list all commands and descriptions:",
18
- " pik help commands"].join("\n\n")
19
-
20
- cmd.should include(msg)
21
- end
22
-
23
- it "should display all commands when 'help commands' is given " do
24
- cmd = `#{@cmd} help commands`
25
-
26
- cmd.should include(" help Displays help information.")
27
- cmd.should include("For help on a particular command, use 'pik help COMMAND'")
28
- end
7
+
29
8
 
30
9
  end
@@ -0,0 +1,378 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en ">
7
+
8
+ <head>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
10
+ <meta name='author' content="Bruce Williams (http://codefluency.com), for
11
+ Ruby Central (http://rubycentral.org)">
12
+ <title>RubyForge: IronRuby: Project Filelist</title>
13
+ <link rel="alternate" type="application/rss+xml" title="Recent gems" href="http://gems.rubyforge.org/index.rss" />
14
+ <link rel="alternate" type="text/xml" title="RSS" href="http://rubyforge.org/export/rss_sfnews.php"/>
15
+ <link rel="Shortcut Icon" href="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/favicon.ico"/>
16
+ <script language="JavaScript" type="text/javascript">
17
+ <!--
18
+ function help_window(helpurl) {
19
+ HelpWin = window.open( 'http://rubyforge.org' + helpurl,'HelpWindow','scrollbars=yes,resizable=yes,toolbar=no,height=400,width=400');
20
+ }
21
+ // -->
22
+ </script>
23
+
24
+ <style type="text/css">
25
+ <!--
26
+
27
+ body {
28
+ margin: 0px;
29
+ background: #fff;
30
+ }
31
+
32
+ OL,UL,P,BODY,TR,TD,TH,FORM {
33
+ font-family: Lucida Grande,verdana,arial,helvetica,sans-serif;
34
+ font-size:13px;
35
+ color: #202020;
36
+ }
37
+
38
+ HR { margin: 2px 0px 2px 0px }
39
+
40
+
41
+ H1 { font-size: x-large; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
42
+ H2 { font-size: large; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
43
+ H3 { font-size: medium; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
44
+ H4 { font-size: small; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
45
+ H5 { font-size: x-small; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
46
+ H6 { font-size: xx-small; font-family: Lucida Grande,verdana,arial,helvetica,sans-serif; }
47
+
48
+ PRE,TT { font-family: 'Bitstream Vera Sans Mono',courier,sans-serif }
49
+ a {
50
+ color: #cc3333;
51
+ text-decoration: none;
52
+ }
53
+ a img {
54
+ border: 0px;
55
+ }
56
+ table em {
57
+ font-style: normal;
58
+ font-weight: bold;
59
+ color: #666;
60
+ margin-left: 0px;
61
+ }
62
+ hr { /* unfortunately hrs are hardcoded */
63
+ height: 2px;
64
+ color: #e6e6e6;
65
+ background: #e6e6e6;
66
+ border: 0px;
67
+ }
68
+ td hr {
69
+ margin-top: 0.5em;
70
+ margin-bottom: 0.5em;
71
+ }
72
+ #header {
73
+ height: 79px;
74
+ background: #fff url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/header-bg.png) bottom left repeat-x;
75
+ margin: 0px;
76
+ }
77
+ #header-right {
78
+ position: absolute;
79
+ top: 0px;
80
+ right: 0px;
81
+ width: 40%;
82
+ }
83
+ #search {
84
+ margin: 10px;
85
+ }
86
+ #controls {
87
+ padding: 0px;
88
+ height: 20px;
89
+ line-height: 20px;
90
+ vertical-align: middle;
91
+ background: url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/controls-bg.png) top left repeat-x;
92
+ }
93
+ #controls img {
94
+ float: left;
95
+ margin-right: 1em;
96
+ }
97
+ #controls a {
98
+ padding: 0px;
99
+ margin: 0px;
100
+ color: #fff;
101
+ text-decoration: none;
102
+ margin-right: 1em;
103
+ }
104
+ #controls a:hover {
105
+ color: #ffffcc;
106
+ }
107
+ #content {
108
+ padding-left: 2em;
109
+ padding-right: 2em;
110
+ }
111
+ .tabs {
112
+ clear: both;
113
+ margin: 0px;
114
+ height: 26px;
115
+ padding: 0px;
116
+ }
117
+ #outer-tabs {
118
+ background: #fff url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/tabs-bg.png) top left repeat-x;
119
+ }
120
+ #inner-tabs {
121
+ background: #fff url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/inner-tabs-bg.png) top left repeat-x;
122
+ }
123
+ .tabs li {
124
+ padding: 4px;
125
+ padding-left: 10px;
126
+ padding-right: 10px;
127
+ float: left;
128
+ display: block;
129
+ margin-left: 0.5em;
130
+ }
131
+ .tabs li a {
132
+ color: #444;
133
+ text-decoration: none;
134
+ font-size: 14px;
135
+ font-weight: bold;
136
+ }
137
+ .tabs li a:hover {
138
+ color: red; }
139
+ #outer-tabs li.active {
140
+ background: url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/active-tab-bg.png) top left repeat-x;
141
+ }
142
+ #inner-tabs li a {
143
+ font-size: 13px; }
144
+ #inner-tabs li.active {
145
+ background: url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/active-inner-tab-bg.png) top left repeat-x;
146
+ }
147
+ .tabs li.active a {
148
+ color: #000;
149
+ }
150
+ #fade {
151
+ background: url(http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/bottom-fade-bg.png) bottom left repeat-x;
152
+ height: 13px;
153
+ }
154
+
155
+ .titlebar {
156
+ background: #FFFFCC;
157
+ padding: 4px;
158
+ font-size: 14px;
159
+ font-weight: bold;
160
+ border-bottom: 1px #fab444 solid; }
161
+ .files-header td {
162
+ background: #ffffcc;
163
+ border: 1px #fab444 solid;
164
+ }
165
+ .files-header td * {
166
+ background: none;
167
+ border: 0px; }
168
+ .files-header + tr td {
169
+ background: #ddd;
170
+ }
171
+ .files-header + tr td * {
172
+ background: none;
173
+ border: 0px;
174
+ color: #666;
175
+ }
176
+ .package td {
177
+ background: #ffffcc;
178
+ }
179
+ -->
180
+ </style>
181
+ </head>
182
+ <body>
183
+
184
+ <div id='header'>
185
+ <div id='header-right'>
186
+ <div id='controls'><img alt='' src='http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/controls-left.png'/>
187
+ <a href="/account/login.php">Log In</a>
188
+ <a href="/projects/support/">Support</a>
189
+ <a href="/account/register.php">New Account</a>
190
+ </div>
191
+ <div id='search'>
192
+ <form action="/search/" method="get">
193
+ <table border="0" cellpadding="0" cellspacing="0">
194
+ <tr><td>
195
+ <div align="center" style="font-size:smaller"><select name="type_of_search"><option value="trackers">This project's trackers</option>
196
+ <option value="forums">This project's forums</option>
197
+ <option value="tasks">This project's tasks</option>
198
+ <option value="frs">This project's releases</option>
199
+ <option value="docs">This project's documents</option>
200
+ <option value="news">This project's news</option>
201
+ <option value="soft">Software/Group</option>
202
+ <option value="people">People</option>
203
+ <option value="skill">Skill</option>
204
+ </select></div></td><td>&nbsp;<input type="hidden" value="4359" name="group_id" /></td><td><input type="text" size="12" name="words" value="" /></td><td>&nbsp;</td><td><input type="submit" name="Search" value="Search" /></td>
205
+ <td width="10">&nbsp;</td>
206
+ <td><b><a style="color: #FFFFFF" href="/search/advanced_search.php?group_id=4359"> Advanced search</a></b></td></tr></table></form></div>
207
+ </div>
208
+ <a href='/' title='Back to Homepage'><img alt='RubyForge' src='http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/header.png'/></a>
209
+ <!-- <a href='http://alohaonrails.com/'><img alt='Aloha on Rails' src='/images/alohaconf.jpg'/></a> -->
210
+ </div>
211
+ <ul id="outer-tabs"
212
+ class="tabs"><li><a href='/'>Home</a></li><li><a href='/my/'>My&nbsp;Page</a></li><li><a href='/softwaremap/'>Project&nbsp;Tree</a></li><li><a href='/snippet/'>Code&nbsp;Snippets</a></li><li><a href='/people/'>Project&nbsp;Openings</a></li><li class='active'><a href='/projects/ironruby/'>IronRuby</a></li></ul><ul id="inner-tabs"
213
+ class="tabs"><li><a href='/projects/ironruby/'>Summary</a></li><li><a href='/tracker/?group_id=4359'>Tracker</a></li><li><a href='/mail/?group_id=4359'>Lists</a></li><li class='active'><a href='/frs/?group_id=4359'>Files</a></li></ul><div id='fade'></div>
214
+
215
+ <div id='content'>
216
+ <table border="0" width="100%" cellspacing="0" cellpadding="0">
217
+
218
+ <tr>
219
+ <td><img
220
+ src="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/clear.png" width="10" height="1" alt="" /></td>
221
+ <td valign="top" width="99%">
222
+
223
+ <p><strong>
224
+ <a href=/frs/?group_id=4359>Files</a> |
225
+ <a href=/frs/admin/?group_id=4359>Admin</a></strong></p><p>Below is a list of all files of the project. Before downloading, you may want to read Release Notes and ChangeLog (accessible by clicking on release version).
226
+ </p>
227
+
228
+ <table width="100%" border="0" cellspacing="1" cellpadding="1">
229
+ <!-- multiTableRow -->
230
+ <tr class="files-header" align="center" ><td rowspan="2" ><span class="titlebar">Package</span></td><td rowspan="2" ><span class="titlebar">Release &amp; Notes</span></td><td rowspan="2" ><span class="titlebar">Filename</span></td><td colspan="4" ><span class="titlebar">Date</span></td></tr>
231
+ <!-- end multiTableRow -->
232
+
233
+ <!-- multiTableRow -->
234
+ <tr align="center" ><td ><span class="titlebar">Size</span></td><td ><span class="titlebar">D/L</span></td><td ><span class="titlebar">Arch</span></td><td ><span class="titlebar">Type</span></td></tr>
235
+ <!-- end multiTableRow -->
236
+ <tr bgcolor="#FFFFFF"><td colspan="3"><h3>ironruby
237
+ <a href="/frs/monitor.php?filemodule_id=5356&group_id=4359&start=1"><img src="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/ic/mail16w.png" alt="Monitor this package" border="0" width="20" height="20" /></a></h3></td><td colspan="4">&nbsp;</td></tr>
238
+ <!-- multiTableRow -->
239
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
240
+ <a href="shownotes.php?release_id=39609">0.9.1</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
241
+ 2009-09-29 01:48</strong></td></tr>
242
+ <!-- end multiTableRow -->
243
+
244
+ <!-- multiTableRow -->
245
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
246
+ <a href="/frs/download.php/64509/ironruby-0.9.1-ipy.zip">ironruby-0.9.1-ipy.zip</a></td><td align="right" >655 KB</td><td align="right" >46</td><td >Any</td><td >.zip</td></tr>
247
+ <!-- end multiTableRow -->
248
+
249
+ <!-- multiTableRow -->
250
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
251
+ <a href="/frs/download.php/64504/ironruby-0.9.1.zip">ironruby-0.9.1.zip</a></td><td align="right" >4.51 MB</td><td align="right" >182</td><td >Any</td><td >.zip</td></tr>
252
+ <!-- end multiTableRow -->
253
+
254
+ <!-- multiTableRow -->
255
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
256
+ <a href="shownotes.php?release_id=37484">0.9.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
257
+ 2009-08-01 13:04</strong></td></tr>
258
+ <!-- end multiTableRow -->
259
+
260
+ <!-- multiTableRow -->
261
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
262
+ <a href="/frs/download.php/61383/ironruby-0.9.0-ipy.zip">ironruby-0.9.0-ipy.zip</a></td><td align="right" >692 KB</td><td align="right" >90</td><td >Any</td><td >.zip</td></tr>
263
+ <!-- end multiTableRow -->
264
+
265
+ <!-- multiTableRow -->
266
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
267
+ <a href="/frs/download.php/61382/ironruby-0.9.0.zip">ironruby-0.9.0.zip</a></td><td align="right" >4.16 MB</td><td align="right" >251</td><td >Any</td><td >.zip</td></tr>
268
+ <!-- end multiTableRow -->
269
+
270
+ <!-- multiTableRow -->
271
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
272
+ <a href="shownotes.php?release_id=36423">0.6.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
273
+ 2009-07-02 14:46</strong></td></tr>
274
+ <!-- end multiTableRow -->
275
+
276
+ <!-- multiTableRow -->
277
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
278
+ <a href="/frs/download.php/59718/ironruby-0.6.0-ipy.zip">ironruby-0.6.0-ipy.zip</a></td><td align="right" >668 KB</td><td align="right" >55</td><td >i386</td><td >.zip</td></tr>
279
+ <!-- end multiTableRow -->
280
+
281
+ <!-- multiTableRow -->
282
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
283
+ <a href="/frs/download.php/59717/ironruby-0.6.0.zip">ironruby-0.6.0.zip</a></td><td align="right" >3.99 MB</td><td align="right" >146</td><td >i386</td><td >.zip</td></tr>
284
+ <!-- end multiTableRow -->
285
+
286
+ <!-- multiTableRow -->
287
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
288
+ <a href="shownotes.php?release_id=34684">0.5.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
289
+ 2009-05-20 21:55</strong></td></tr>
290
+ <!-- end multiTableRow -->
291
+
292
+ <!-- multiTableRow -->
293
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
294
+ <a href="/frs/download.php/57126/ironruby-0.5.0.zip">ironruby-0.5.0.zip</a></td><td align="right" >2.15 MB</td><td align="right" >243</td><td >i386</td><td >.zip</td></tr>
295
+ <!-- end multiTableRow -->
296
+
297
+ <!-- multiTableRow -->
298
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
299
+ <a href="shownotes.php?release_id=32447">0.3.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
300
+ 2009-03-20 19:47</strong></td></tr>
301
+ <!-- end multiTableRow -->
302
+
303
+ <!-- multiTableRow -->
304
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
305
+ <a href="/frs/download.php/53552/ironruby-0.3.0.zip">ironruby-0.3.0.zip</a></td><td align="right" >5.04 MB</td><td align="right" >1,185</td><td >i386</td><td >.zip</td></tr>
306
+ <!-- end multiTableRow -->
307
+
308
+ <!-- multiTableRow -->
309
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
310
+ <a href="shownotes.php?release_id=29587">0.2.5-dlr0.9</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
311
+ 2008-12-16 15:48</strong></td></tr>
312
+ <!-- end multiTableRow -->
313
+
314
+ <!-- multiTableRow -->
315
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
316
+ <a href="/frs/download.php/48748/dlr_release.zip">dlr_release.zip</a></td><td align="right" >885 KB</td><td align="right" >719</td><td >i386</td><td >.zip</td></tr>
317
+ <!-- end multiTableRow -->
318
+
319
+ <!-- multiTableRow -->
320
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
321
+ <a href="shownotes.php?release_id=28422">0.2.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
322
+ 2008-11-19 17:22</strong></td></tr>
323
+ <!-- end multiTableRow -->
324
+
325
+ <!-- multiTableRow -->
326
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
327
+ <a href="/frs/download.php/47077/ironruby1a2.7z">ironruby1a2.7z</a></td><td align="right" >1.39 MB</td><td align="right" >276</td><td >i386</td><td >Other</td></tr>
328
+ <!-- end multiTableRow -->
329
+
330
+ <!-- multiTableRow -->
331
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
332
+ <a href="/frs/download.php/47076/ironruby1a2.zip">ironruby1a2.zip</a></td><td align="right" >2.07 MB</td><td align="right" >2,360</td><td >i386</td><td >.zip</td></tr>
333
+ <!-- end multiTableRow -->
334
+
335
+ <!-- multiTableRow -->
336
+ <tr bgcolor="#FFFFFF"><td colspan="3" >&nbsp;<strong>
337
+ <a href="shownotes.php?release_id=24193">0.1.0</a></strong></td><td colspan="4" align="middle" >&nbsp;<strong>
338
+ 2008-07-24 19:30</strong></td></tr>
339
+ <!-- end multiTableRow -->
340
+
341
+ <!-- multiTableRow -->
342
+ <tr bgcolor="#FFFFFF"><td colspan=3 ><dd>
343
+ <a href="/frs/download.php/40306/ironruby.zip">ironruby.zip</a></td><td align="right" >1.92 MB</td><td align="right" >2,379</td><td >i386</td><td >.zip</td></tr>
344
+ <!-- end multiTableRow -->
345
+ <tr><td colspan="8">&nbsp;</tr>
346
+ <tr><td><strong>Project totals</strong></td><td align="right"><strong><em>8</em></strong></td><td align="right"><strong><em>12</em></strong></td><td align="right"><strong><em>28.06 MB</em></strong></td><td align="right"><strong><em>7932</em></strong></td><td colspan="3">&nbsp;</td></tr>
347
+ </table>
348
+
349
+ <hr/><a name='gem_namespace_ownership'></a><h3>Gem namespace ownership</h3>
350
+ &nbsp;<p>
351
+ <!-- end main body row -->
352
+
353
+
354
+ </td>
355
+ <td width="10"><img
356
+ src="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/clear.png" width="2" height="1" alt="" /></td>
357
+ </tr>
358
+ <tr>
359
+ <td><img
360
+ src="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/clear.png" width="1" height="1" alt="" /></td>
361
+ </tr>
362
+ </table>
363
+
364
+ <!-- end inner body row -->
365
+
366
+ </td>
367
+ <td width="10"><img src="http://static.rubyforge.vm.bytemark.co.uk/themes/rubyforge/images/clear.png" width="2" height="1" alt="" /></td>
368
+ </tr>
369
+ <tr>
370
+ <!-- some extra space to make it look nicer -->
371
+ <td height="100">&nbsp;</td>
372
+
373
+ </tr>
374
+ </table>
375
+
376
+ </div>
377
+ </body>
378
+ </html>