starfish 1.1.1 → 1.1.2

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/NUL ADDED
File without changes
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 166</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 179</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-constant">RingFinger</span>.<span class="ruby-identifier">finger</span>
15
15
  <span class="ruby-ivar">@@finger</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>
16
16
  <span class="ruby-ivar">@@finger</span>.<span class="ruby-identifier">lookup_ring_any</span>
@@ -130,7 +130,12 @@
130
130
  <tr class="top-aligned-row context-row">
131
131
  <td class="context-item-name">VERSION</td>
132
132
  <td>=</td>
133
- <td class="context-item-value">&quot;1.1.1&quot;</td>
133
+ <td class="context-item-value">&quot;1.1.2&quot;</td>
134
+ </tr>
135
+ <tr class="top-aligned-row context-row">
136
+ <td class="context-item-name">NULL</td>
137
+ <td>=</td>
138
+ <td class="context-item-value">RUBY_PLATFORM =~ /mswin/ ? 'NUL' : '/dev/null'</td>
134
139
  </tr>
135
140
  </table>
136
141
  </div>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 26</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 39</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">uniq</span>=<span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">first</span>)
15
15
  <span class="ruby-ivar">@retry_count</span> = <span class="ruby-value">0</span>
16
16
  <span class="ruby-ivar">@uniq</span> = <span class="ruby-identifier">uniq</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 31</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 44</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uniq</span>
15
15
  <span class="ruby-constant">MD5</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@uniq</span>).<span class="ruby-identifier">to_s</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 35</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 48</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server</span>
15
15
  <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@server</span>
16
16
  <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;You must specify a server&quot;</span>
@@ -35,7 +35,7 @@
35
35
  <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">write</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-identifier">object</span>, <span class="ruby-ivar">@uniq</span>])
36
36
  <span class="ruby-keyword kw">end</span>
37
37
 
38
- <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:pid</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;/tmp/starfish-#{uniq}.pid&quot;</span>,<span class="ruby-value str">&quot;w&quot;</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-constant">Process</span>.<span class="ruby-identifier">pid</span>}
38
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:pid</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;#{Dir.tmpdir}/starfish-#{uniq}.pid&quot;</span>,<span class="ruby-value str">&quot;w&quot;</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-constant">Process</span>.<span class="ruby-identifier">pid</span>}
39
39
 
40
40
  <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;server started for #{object.inspect}&quot;</span>
41
41
 
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 66</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 79</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client</span>
15
15
  <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@client</span>
16
16
  <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;You must specify a client&quot;</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 130</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 143</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
15
15
  <span class="ruby-identifier">negotiate</span>
16
16
  <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-identifier">timeout</span>(<span class="ruby-value">5</span>) { <span class="ruby-ivar">@server_object</span> = <span class="ruby-ivar">@ring_server</span>.<span class="ruby-identifier">read</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>])[<span class="ruby-value">2</span>] }
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 139</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 152</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sanitize</span>(<span class="ruby-identifier">object</span>)
15
15
  <span class="ruby-identifier">object</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">DRbUndumped</span>
16
16
 
@@ -20,7 +20,7 @@
20
20
  <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Class</span>
21
21
  <span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>].<span class="ruby-identifier">new</span>
22
22
  <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">false</span>
23
- <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;/dev/null&quot;</span>)
23
+ <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">NULL</span>)
24
24
  <span class="ruby-keyword kw">else</span>
25
25
  <span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>]
26
26
  <span class="ruby-keyword kw">end</span>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 161</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 174</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">negotiate</span><span class="ruby-identifier">negotiate</span><span class="ruby-identifier">negotiate</span>
15
15
  <span class="ruby-keyword kw">begin</span>
16
16
  <span class="ruby-ivar">@ring_server</span> = <span class="ruby-constant">RingFinger</span>.<span class="ruby-identifier">primary</span>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 182</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 195</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">spawn</span>
15
- <span class="ruby-ivar">@started</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">fork</span> { <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;ruby #{File.dirname(__FILE__)}/../bin/starfish #{@uniq} server &gt; /dev/null&quot;</span>) }
15
+ <span class="ruby-ivar">@started</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">STARFISH_FORK</span>.<span class="ruby-identifier">call</span> { <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;ruby #{File.dirname(__FILE__)}/../bin/starfish #{@uniq} server &gt; #{NULL}&quot;</span>) }
16
16
  <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -10,10 +10,10 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 186</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 199</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stop</span>
15
15
  <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;stopping the server&quot;</span>
16
- <span class="ruby-constant">Process</span>.<span class="ruby-identifier">kill</span>(<span class="ruby-value str">&quot;SIGHUP&quot;</span>, <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:pid</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;/tmp/starfish-#{uniq}.pid&quot;</span>).<span class="ruby-identifier">to_i</span>)
16
+ <span class="ruby-constant">Process</span>.<span class="ruby-identifier">kill</span>(<span class="ruby-value str">&quot;SIGHUP&quot;</span>, <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:pid</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;#{Dir.tmpdir}/starfish-#{uniq}.pid&quot;</span>).<span class="ruby-identifier">to_i</span>)
17
17
  <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
18
18
  <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Fatal error, please kill all starfish processes manually and try again&quot;</span>
19
19
  <span class="ruby-identifier">system</span>(<span class="ruby-value str">&quot;ps auxww|grep starfish&quot;</span>)
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 195</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 208</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server=</span>(<span class="ruby-identifier">server</span>)
15
15
  <span class="ruby-ivar">@@server</span> = <span class="ruby-identifier">server</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 199</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 212</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client=</span>(<span class="ruby-identifier">client</span>)
15
15
  <span class="ruby-ivar">@@client</span> = <span class="ruby-identifier">client</span>
16
16
  <span class="ruby-keyword kw">end</span></pre>
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 203</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 216</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options=</span>(<span class="ruby-identifier">options</span>={})
15
15
  <span class="ruby-ivar">@@options</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">options</span>)
16
16
  <span class="ruby-keyword kw">end</span></pre>
data/doc/created.rid CHANGED
@@ -1 +1 @@
1
- Tue Aug 22 10:51:53 PDT 2006
1
+ Tue Aug 22 16:45:30 PDT 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Aug 18 21:33:28 PDT 2006</td>
59
+ <td>Tue Aug 22 16:43:15 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Tue Aug 22 10:51:29 PDT 2006</td>
59
+ <td>Tue Aug 22 16:45:25 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -79,7 +79,9 @@
79
79
  logger&nbsp;&nbsp;
80
80
  md5&nbsp;&nbsp;
81
81
  yaml&nbsp;&nbsp;
82
+ tmpdir&nbsp;&nbsp;
82
83
  map_reduce&nbsp;&nbsp;
84
+ win32-process&nbsp;&nbsp;
83
85
  </div>
84
86
  </div>
85
87
 
@@ -94,6 +96,24 @@
94
96
  <div id="section">
95
97
 
96
98
 
99
+ <div id="constants-list">
100
+ <h3 class="section-bar">Constants</h3>
101
+
102
+ <div class="name-list">
103
+ <table summary="Constants">
104
+ <tr class="top-aligned-row context-row">
105
+ <td class="context-item-name">STARFISH_FORK</td>
106
+ <td>=</td>
107
+ <td class="context-item-value">Win32::Process.method(:fork)</td>
108
+ </tr>
109
+ <tr class="top-aligned-row context-row">
110
+ <td class="context-item-name">STARFISH_FORK</td>
111
+ <td>=</td>
112
+ <td class="context-item-value">method(:fork)</td>
113
+ </tr>
114
+ </table>
115
+ </div>
116
+ </div>
97
117
 
98
118
 
99
119
 
data/lib/starfish.rb CHANGED
@@ -4,19 +4,32 @@ require 'timeout'
4
4
  require 'logger'
5
5
  require 'md5'
6
6
  require 'yaml'
7
+ require 'tmpdir'
7
8
 
8
9
  require 'map_reduce'
9
10
 
10
11
  DRb.start_service
11
12
 
13
+ if RUBY_PLATFORM =~ /mswin/
14
+ begin
15
+ require "win32-process"
16
+ STARFISH_FORK = Win32::Process.method(:fork)
17
+ rescue
18
+ $stderr.puts "Your Windows system does not support forking, please install http://raa.ruby-lang.org/project/win32-process/"
19
+ end
20
+ else
21
+ STARFISH_FORK = method(:fork)
22
+ end
23
+
12
24
  class StarfishError < StandardError; end
13
25
  class Starfish
14
- VERSION = "1.1.1"
26
+ VERSION = "1.1.2"
27
+ NULL = RUBY_PLATFORM =~ /mswin/ ? 'NUL' : '/dev/null'
15
28
 
16
29
  @@server = false
17
30
  @@client = false
18
31
  @@options = {
19
- :log => "/tmp/#{File.basename(ARGV.first)}.log"
32
+ :log => "#{Dir.tmpdir}/#{File.basename(ARGV.first)}.log"
20
33
  }
21
34
 
22
35
  include Rinda
@@ -56,7 +69,7 @@ class Starfish
56
69
  ts.write([:name, uniq.intern, object, @uniq])
57
70
  end
58
71
 
59
- File.open(@@options[:pid] || "/tmp/starfish-#{uniq}.pid","w"){|f|f<<Process.pid}
72
+ File.open(@@options[:pid] || "#{Dir.tmpdir}/starfish-#{uniq}.pid","w"){|f|f<<Process.pid}
60
73
 
61
74
  $stderr.puts "server started for #{object.inspect}"
62
75
 
@@ -145,7 +158,7 @@ class Starfish
145
158
  when Class
146
159
  @@options[:log].new
147
160
  when nil, false
148
- Logger.new("/dev/null")
161
+ Logger.new(NULL)
149
162
  else
150
163
  @@options[:log]
151
164
  end
@@ -180,12 +193,12 @@ class Starfish
180
193
  end
181
194
 
182
195
  def spawn
183
- @started ||= fork { system("ruby #{File.dirname(__FILE__)}/../bin/starfish #{@uniq} server > /dev/null") }
196
+ @started ||= STARFISH_FORK.call { system("ruby #{File.dirname(__FILE__)}/../bin/starfish #{@uniq} server > #{NULL}") }
184
197
  end
185
198
 
186
199
  def stop
187
200
  puts "stopping the server"
188
- Process.kill("SIGHUP", IO.read(@@options[:pid] || "/tmp/starfish-#{uniq}.pid").to_i)
201
+ Process.kill("SIGHUP", IO.read(@@options[:pid] || "#{Dir.tmpdir}/starfish-#{uniq}.pid").to_i)
189
202
  rescue Errno::ENOENT
190
203
  puts "Fatal error, please kill all starfish processes manually and try again"
191
204
  system("ps auxww|grep starfish")
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: starfish
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.1
6
+ version: 1.1.2
7
7
  date: 2006-08-22 00:00:00 -07:00
8
8
  summary: Starfish is a utility to make distributed programming ridiculously easy.
9
9
  require_paths:
@@ -36,6 +36,7 @@ files:
36
36
  - lib/map_reduce/file.rb
37
37
  - bin/starfish
38
38
  - LICENSE
39
+ - NUL
39
40
  - Rakefile
40
41
  - README
41
42
  - doc/classes