ruined 0.0.6 → 0.0.7
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/ChangeLog +4 -0
- data/lib/ruined/ruinmain.rb +17 -8
- metadata +3 -3
data/ChangeLog
CHANGED
data/lib/ruined/ruinmain.rb
CHANGED
@@ -9,7 +9,7 @@ require 'monitor'
|
|
9
9
|
require 'stringio'
|
10
10
|
|
11
11
|
module Ruined
|
12
|
-
RUINED_VERSION = '0.0.
|
12
|
+
RUINED_VERSION = '0.0.7'
|
13
13
|
|
14
14
|
@queue = [Queue.new, Queue.new]
|
15
15
|
@breakpoints = []
|
@@ -66,7 +66,7 @@ module Ruined
|
|
66
66
|
class DebugServlet < HTTPServlet::AbstractServlet
|
67
67
|
include WEBrick::HTMLUtils
|
68
68
|
def service(req, res)
|
69
|
-
if req.addr
|
69
|
+
if Ruined.local_call?(req.addr)
|
70
70
|
super
|
71
71
|
else
|
72
72
|
bye(res)
|
@@ -183,6 +183,7 @@ module Ruined
|
|
183
183
|
end
|
184
184
|
|
185
185
|
def self.current_context
|
186
|
+
# assert @current
|
186
187
|
@current.to_hash
|
187
188
|
end
|
188
189
|
|
@@ -196,7 +197,7 @@ local_variables.map do |_0|
|
|
196
197
|
(_0 == :_) ? nil : { :name => _0.to_s, :value => eval(_0.to_s) }
|
197
198
|
end - [nil]
|
198
199
|
EOD
|
199
|
-
@current
|
200
|
+
(@current) ? eval(script, @current.binding) : []
|
200
201
|
end
|
201
202
|
|
202
203
|
def self.self_vars
|
@@ -209,7 +210,7 @@ self.class.class_variables.map do |v|
|
|
209
210
|
{ :name => v.to_s, :value => instance_eval(v.to_s) }
|
210
211
|
end
|
211
212
|
EOD
|
212
|
-
@current
|
213
|
+
(@current) ? eval(script, @current.binding) : []
|
213
214
|
end
|
214
215
|
|
215
216
|
def self.global_vars
|
@@ -223,9 +224,11 @@ EOD
|
|
223
224
|
end - [nil]
|
224
225
|
EOD
|
225
226
|
a = eval(script)
|
226
|
-
|
227
|
-
|
228
|
-
|
227
|
+
if @current
|
228
|
+
0.upto(a.size - 1) do |i|
|
229
|
+
if @current.tlses.has_key?(a[i][:name])
|
230
|
+
a[i][:value] = @current.tlses[a[i][:name]]
|
231
|
+
end
|
229
232
|
end
|
230
233
|
end
|
231
234
|
a
|
@@ -236,6 +239,7 @@ EOD
|
|
236
239
|
end
|
237
240
|
|
238
241
|
def self.wait(t)
|
242
|
+
return unless @queue
|
239
243
|
logger.debug("------------wait #{t}")
|
240
244
|
o = @queue[t].pop
|
241
245
|
if t == 1
|
@@ -245,6 +249,7 @@ EOD
|
|
245
249
|
end
|
246
250
|
|
247
251
|
def self.release(t, obj = nil)
|
252
|
+
return unless @queue
|
248
253
|
logger.debug("------------release #{t}")
|
249
254
|
@monitor.synchronize {
|
250
255
|
@queue[t].push obj
|
@@ -281,10 +286,14 @@ EOD
|
|
281
286
|
@unbreakable_threads.include? t
|
282
287
|
}
|
283
288
|
end
|
289
|
+
|
290
|
+
def self.local_call?(addr)
|
291
|
+
['127.0.0.1', '::1'].include?(addr[3])
|
292
|
+
end
|
284
293
|
|
285
294
|
svr.mount('/debug', DebugServlet)
|
286
295
|
svr.mount_proc('/quit') do |req, res|
|
287
|
-
if req.addr
|
296
|
+
if local_call?(req.addr)
|
288
297
|
set_trace_func(nil)
|
289
298
|
c = 0
|
290
299
|
if req.path =~ %r|/(\d+)|
|
metadata
CHANGED