Comments (16)
Hi!
When it freezes, can you find out the Ruby stack trace? I.e. where the external process spends the time.
See #121 (comment) for the recipe.
from robe.
So ps aux | grep ruby
only yielded one line: for grep ruby
. Since robe requires pry and robe-start
seems to spawn *pry*
, I tried grep-ing for pry instead of ruby. The rbspy stack trace for pry:
load [c function] - (unknown)
<top (required)> - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/exe/bundle:20
with_friendly_errors - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/friendly_errors.rb:125
block in <top (required)> - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/exe/bundle:29
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/cli.rb:31
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/vendor/thor/lib/thor/base.rb:594
dispatch - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/cli.rb:38
dispatch - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/vendor/thor/lib/thor.rb:528
invoke_command - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:129
run - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/vendor/thor/lib/thor/command.rb:38
exec - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/cli.rb:452
run - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/cli/exec.rb:30
kernel_load - /opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.4/lib/bundler/cli/exec.rb:65
load [c function] - (unknown)
<top (required)> - /opt/homebrew/lib/ruby/gems/3.3.0/bin/pry:28
load [c function] - (unknown)
<top (required)> - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/bin/pry:13
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/cli.rb:113
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/pry_class.rb:198
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:16
start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:41
with_ownership - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/input_lock.rb:79
__with_ownership - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/input_lock.rb:73
block in start - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:38
repl - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:80
loop - unknown:192
block in repl - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:79
read - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:122
read_line - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:193
handle_read_errors - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:164
block in read_line - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:192
input_readline - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:199
interruptible_region - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/input_lock.rb:127
block in input_readline - /opt/homebrew/lib/ruby/gems/3.3.0/gems/pry-0.14.2/lib/pry/repl.rb:198
readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/forwardable.rb:242
readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:298
inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:381
loop - unknown:192
block in inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:364
read_io - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:429
loop - unknown:192
block in read_io - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:428
getc - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline/general_io.rb:53
loop - unknown:192
block in getc - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline/general_io.rb:51
wait_readable [c function] - (unknown)
from robe.
I also tried launching an irf-ruby *ruby*
buffer before robe-start
. When I typed { a:1 }
the inf-ruby buffer began streaming text on the bottom line. I couldn't interrupt the stream long enough to copy some of the text, but here's the output from rbspy for the irb process:
<main> - /opt/homebrew/Cellar/ruby/3.3.0/bin/irb:28
load [c function] - (unknown)
<top (required)> - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.0/exe/irb:9
start - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:904
run - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1009
catch [c function] - (unknown)
block in run - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1003
eval_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1042
each_top_level_statement - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1103
loop - unknown:192
block in each_top_level_statement - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1102
readmultiline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1090
loop - unknown:192
block in readmultiline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1089
read_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1061
signal_status - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1339
block in read_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1060
gets - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb/input-method.rb:69
gets [c function] - (unknown)
from robe.
Finally, I've noticed a similar issue with Emacs hanging and a stream of text in *ruby*
when evaluating show_doc
, then typing anything in that buffer.
show_doc
Enter the method name you want to look up.
You can use tab to autocomplete.
Enter a blank line to exit.
>> >> >> proc {>> proc {>> proc { >> proc { >> proc { |>> proc { |>> proc { |e>> proc { |e>> proc { |ex>> proc { |ex>> proc { |exp>> proc { |exp>> proc { |expr>> proc { |expr>> proc { |expr,>> proc { |expr,>> proc { |expr, >> proc { |expr, >> proc { |expr, l>> proc { |expr, l>> proc { |expr, li>> proc { |expr, li>> proc { |expr, lin>> proc { |expr, lin>> proc { |expr, line>> proc { |expr, line>> proc { |expr, line|>> proc { |expr, line|>> proc { |expr, line| >> proc { |expr, line| >> proc { |expr, line| >> proc { |expr, line| >> proc { |expr, line| r>> proc { |expr, line| r>> proc { |expr, line| re>> proc { |expr, line| re>> proc { |expr, line| req>> proc { |expr, line| req>> proc { |expr, line| requ>> proc { |expr, line| requ>> proc { |expr, line| requi>> proc { |expr, line| requi>> proc { |expr, line| requir>> proc { |expr, line| requir>> proc { |expr, line| require>> proc { |expr, line| require>> proc { |expr, line| require >> proc { |expr, line| require >> proc { |expr, line| require '>> proc { |expr, line| require '>> proc { |expr, line| require 'o>> proc { |expr, line| require 'o>> proc { |expr, line| require 'os>> proc { |expr, line| require 'os>> proc { |expr, line| require 'ost>> proc { |expr, line| require 'ost>> proc { |expr, line| require 'ostr>> proc { |expr, line| require 'ostr>> proc { |expr, line| require 'ostru>> proc { |expr, line| require 'ostru>> proc { |expr, line| require 'ostruc>> proc { |expr, line| require 'ostruc>> proc { |expr, line| require 'ostruct>> proc { |expr, line| require 'ostruct>> proc { |expr, line| require 'ostruct'>> proc { |expr, line| require 'ostruct'>> proc { |expr, line| require 'ostruct';>> proc { |expr, line| require 'ostruct';>> proc { |expr, line| require 'ostruct'; >> proc { |expr, line| require 'ostruct'; >> proc { |expr, line| require 'ostruct'; >> proc { |expr, line| require 'ostruct'; >> proc { |expr, line| require 'ostruct'; o>> proc { |expr, line| require 'ostruct'; o>> proc { |expr, line| require 'ostruct'; ol>> proc { |expr, line| require 'ostruct'; ol>> proc { |expr, line| require 'ostruct'; old>> proc { |expr, line| require 'ostruct'; old>> proc { |expr, line| require 'ostruct'; old_>> proc { |expr, line| require 'ostruct'; old_>> proc { |expr, line| require 'ostruct'; old_w>> proc { |expr, line| require 'ostruct'; old_w>> proc { |expr, line| require 'ostruct'; old_wp>> proc { |expr, line| require 'ostruct'; old_wp>> proc { |expr, line| require 'ostruct'; old_wp >> proc { |expr, line| require 'ostruct'; old_wp >> proc { |expr, line| require 'ostruct'; old_wp =>> proc { |expr, line| require 'ostruct'; old_wp =>> proc { |expr, line| require 'ostruct'; old_wp = >> proc { |expr, line| require 'ostruct'; old_wp = >> proc { |expr, line| require 'ostruct'; old_wp = d>> proc { |expr, line| require 'ostruct'; old_wp = d>> proc { |expr, line| require 'ostruct'; old_wp = de>> proc { |expr, line| require 'ostruct'; old_wp = de>> proc { |expr, line| require 'ostruct'; old_wp = def>> proc { |expr, line| require 'ostruct'; old_wp = def>> proc { |expr, line| require 'ostruct'; old_wp = defi>> proc { |expr, line| require 'ostruct'; old_wp = defi>> proc { |expr, line| require 'ostruct'; old_wp = defin>> proc { |expr, line| require 'ostruct'; old_wp = defin>> proc { |expr, line| require 'ostruct'; old_wp = define>> proc { |expr, line| require 'ostruct'; old_wp = define>> proc { |expr, line| require 'ostruct'; old_wp = defined>> proc { |expr, line| require 'ostruct'; old_wp = defined>> proc { |expr, line| require 'ostruct'; old_wp = defined?>> proc { |expr, line| require 'ostruct'; old_wp = defined?>> proc { |expr, line| require 'ostruct'; old_wp = defined?(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) &>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) &>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) &&>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) &&>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.s>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.s>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.st>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.st>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.sta>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.sta>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.star>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.star>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.start>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.start>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.starte>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.starte>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started?>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started?>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? &>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? &>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? &&>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? &&>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.a>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.a>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.ag>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.ag>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.age>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.age>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agen>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agen>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.we>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.we>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.wea>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.wea>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weap>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weap>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon;>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon;>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; b>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; b>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; be>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; be>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; beg>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; beg>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begi>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begi>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin B>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.a>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.a>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.ag>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.ag>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.age>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.age>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agen>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agen>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.in>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.in>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.ins>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.ins>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.inst>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.inst>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.insta>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.insta>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instan>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instan>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instanc>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instanc>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_v>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_v>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_va>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_va>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_var>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_var>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_vari>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_vari>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_varia>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_varia>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variab>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variab>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variabl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variabl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_s>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_s>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_se>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_se>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@we>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@we>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@wea>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@wea>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weap>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weap>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapo>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon'>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon'>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon',>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon',>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', O>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', O>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Op>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Op>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Ope>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Ope>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Open>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', Open>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenS>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenS>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenSt>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenSt>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStru>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStru>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruc>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruc>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.n>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.n>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.ne>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.ne>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:l>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:l>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:li>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:li>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:lin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:lin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_b>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_b>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_bu>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_bu>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buf>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buf>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buff>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buff>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffe>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffe>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer =>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer =>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer =>>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer =>>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => l>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => l>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => li>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => li>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => lin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => lin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line))>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line))>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if o>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if o>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if ol>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if ol>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_w>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp;>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp;>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; i>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if d>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if d>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if de>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if de>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if def>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if def>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defi>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defi>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defin>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if define>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if define>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.c>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.c>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.co>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.co>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.com>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.com>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.comp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.comp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.compl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.compl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.comple>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.comple>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complet>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complet>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete)>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) t>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) t>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) th>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) th>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) the>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) the>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then pu>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then pu>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then put>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then put>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts >> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _p>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pr>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.c>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.c>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.co>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.co>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.com>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.com>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.comp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.comp>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.compl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.compl>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.comple>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.comple>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complet>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complet>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(e>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(e>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(ex>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(ex>> proc { |expr, line| require 'ostruct'; old_wp = defined?(Bond) && Bond.started? && Bond.agent.weapon; begin Bond.agent.instance_variable_set('@weapon', OpenStruct.new(:line_buffer => line)) if old_wp; if defined?(_pry_.complete) then puts _pry_.complete(exp>> proc { |expr, line| require 'ostruct'; old_wp = de=~ C-c C-c/opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:915:in `raise': abort then interrupt! (IRB::Abort)
The rbspy irb stacktrace:
<main> - /opt/homebrew/Cellar/ruby/3.3.0/bin/irb:28
load [c function] - (unknown)
<top (required)> - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.0/exe/irb:9
start - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:904
run - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1009
catch [c function] - (unknown)
block in run - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1003
eval_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1042
each_top_level_statement - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1103
loop - unknown:192
block in each_top_level_statement - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1102
block in eval_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1041
signal_status - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1339
block (2 levels) in eval_input - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb.rb:1040
evaluate - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb/context.rb:570
evaluate - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb/workspace.rb:118
eval [c function] - (unknown)
<top (required)> - unknown:6
irb_show_doc - unknown:272
execute - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb/cmd/nop.rb:38
execute - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/irb/cmd/show_doc.rb:45
interactive - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rdoc/ri/driver.rb:1108
loop - unknown:192
block in interactive - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rdoc/ri/driver.rb:1104
readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/forwardable.rb:242
readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:298
inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:381
loop - unknown:192
block in inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:364
read_io - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:429
loop - unknown:192
block in read_io - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:428
block (2 levels) in inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:357
each [c function] - (unknown)
block (3 levels) in inner_readline - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline.rb:352
rerender - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline/line_editor.rb:513
render_partial - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline/line_editor.rb:1180
each_with_index [c function] - (unknown)
each [c function] - (unknown)
block in render_partial - /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/reline/line_editor.rb:1163
write [c function] - (unknown)
from robe.
Looks like some collision between Ruby 3.3 and Pry (all versions I've tried) when used inside Emacs.
Does its prompt look good to you? It seems to double over here, like
[24] pry(main)> [24] pry(main)>
You can try removing Pry from the project config, just to verify that things work without it.
from robe.
And in the show_doc
example, is >>
your prompt?
from robe.
I'm having trouble copy-pasting, so I apologize. The main prompt is irb(main):001>
. The prompt after show_doc
is >> >>
.
from robe.
I removed pry from the Gemfile, but now that causes an error if I run robe-start
without first launching an inf-ruby buffer. Not sure what the expected behavior should be there.
from robe.
I'm having trouble copy-pasting, so I apologize. The main prompt is irb(main):001>. The prompt after show_doc is >> >>.
Ah, that sounds right.
I removed pry from the Gemfile, but now that causes an error if I run robe-start without first launching an inf-ruby buffer. Not sure what the expected behavior should be there.
Could you paste the error here?
from robe.
From *pry*
buffer:
bundler: failed to load command: pry (/opt/homebrew/lib/ruby/gems/3.2.0/bin/pry)
/opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/rubygems_integration.rb:308:in `block in replace_bin_path': can't find executable pry for gem pry. pry is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/rubygems_integration.rb:336:in `block in replace_bin_path'
from /opt/homebrew/lib/ruby/gems/3.2.0/bin/pry:25:in `<top (required)>'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in `load'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:58:in `kernel_load'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli/exec.rb:23:in `run'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:492:in `exec'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:34:in `dispatch'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/cli.rb:28:in `start'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.10/exe/bundle:45:in `block in <top (required)>'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/3.2.0/bundler/friendly_errors.rb:117:in `with_friendly_errors'
from /opt/homebrew/Cellar/[email protected]/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.10/exe/bundle:33:in `<top (required)>'
from /opt/homebrew/lib/ruby/gems/3.2.0/bin/bundle:25:in `load'
from /opt/homebrew/lib/ruby/gems/3.2.0/bin/bundle:25:in `<main>'
Process pry exited abnormally with code 1
from robe.
It seems pry
in unavailable (because you uninstalled it?).
But if I understand the situation right, it's still being called - perhaps by inf-ruby-console-default
. Then it's still in Gemfile. You can remove it from there as well - actually, that's the only place it needed to be removed from, the gem could stay in the system.
Anyway, if you are not working on a project with a fixed structure, such as a Rails project, or some gem (library), you're not getting much benefit from the automatic repl launch, and might as well start with the manual M-x inf-ruby
or M-x run-ruby
(they're equivalent when invoked without additional arguments).
from robe.
Eventually I will be using Rails projects, but I just started learning Ruby. pry is still installed. Here's my Gemfile:
# frozen_string_literal: true
source "https://rubygems.org"
# gem "pry"
# gem "pry-doc"
Gemfile.lcok
GEM
remote: https://rubygems.org/
specs:
coderay (1.1.3)
method_source (1.0.0)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
pry-doc (1.5.0)
pry (~> 0.11)
yard (~> 0.9.11)
yard (0.9.34)
PLATFORMS
arm64-darwin-23
ruby
DEPENDENCIES
pry
pry-doc
BUNDLED WITH
2.5.4
from robe.
Ok, I've pushed a change to inf-ruby which will make it behave differently when gem "pry"
is commented out.
Meaning, it won't try to launch pry in this case.
from robe.
Regarding the use of Pry, it looks like you'll need to add readline-ext
to Gemfile as well. Or downgrade to Ruby 3.2 or earlier. Or skip using Pry altogether, since the latest Irb have gained most of its main features anyway.
This seems to be the closest upstream bug report: ruby/reline#616
from robe.
Ok, here's what seems to be working now. I downgraded to Ruby 3.2. I deleted the Gemfile.lock. Now I'm having success with both a blank Gemfile and one listing pry and pry-doc.
- Deleting the Gemfile.lock seemed necessary, but the README only mentions Gemfile. Should the former cause issues?
- The README lists pry and pry-doc as required dependencies, but based on this thread, that doesn't seem to be strictly true.
from robe.
Both Ruby 3.3 + Irb and Ruby 3.2 + Pry should remain supported configurations. Meaning, if you downgraded to Ruby 3.2, you should be able to keep Pry, if you prefer. That is for inf-ruby
to work, that is.
Deleting the Gemfile.lock seemed necessary, but the README only mentions Gemfile. Should the former cause issues?
As a Ruby developer, you normally keep Gemfile.lock
around and even check it into Git. To update its contents, you change Gemfile
and run bundle install
(or, in some cases, bundle update gem1, gem2, ...
). So Gemfile.lock
should be there.
The README lists pry and pry-doc as required dependencies, but based on this thread, that doesn't seem to be strictly true.
Sorry, I kinda forgot what repository we're in. For Robe, Pry remains a requirement, so when one wants to use it with Ruby 3.3, adding readline-ext
to Gemfile
remains the recommended solution. I should look into that more later, given the circumstances.
from robe.
Related Issues (20)
- Robe not working on Ruby 2.7.1 HOT 3
- robe make emacs freeze on 27 on large projects HOT 16
- Non-string path in LOAD_PATH HOT 3
- Emacs freezes when robe is called while byebug is active on console HOT 3
- How to disable robe? HOT 2
- Get search failed message when run robe-jump. HOT 19
- `Can't find the location` when try to search a class defined on current project. (but can in irb) HOT 6
- `find-tag-marker-ring` breaks `robe-jump` on Emacs 28. HOT 2
- Environment variables HOT 1
- Can't jump to the nested module's class in `enh-ruby-mode`, but ruby-mode works HOT 29
- robe-jump returns error file doesnt exists - but it exists HOT 11
- [Help Request] Not robe issue, just need some professional help on crystal-mode. HOT 10
- CPU spikes during rails process buffer completion HOT 7
- Allow for configurable specificity of `robe-jump` entries HOT 9
- Should be possible to change Robe errors buffer from inf-ruby buffer to another buffer HOT 2
- `robe-completing-read` for `Module: ` is excessively interrupting HOT 20
- `*robe-doc*`: optionally show the method source directly HOT 3
- Consider RBS (when available) for local type inference
- `robe-start` hangs HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from robe.