3
是否可以攔截IRB輸入?特別是對於#Fixnum類?如何攔截IRB輸入?
例子:
5
=> 5
我需要做的是:(僞代碼)
if IRB.input.is_a?(Fixnum)
some_method(IRB.input) # some_method(5)
end
是否可以攔截IRB輸入?特別是對於#Fixnum類?如何攔截IRB輸入?
例子:
5
=> 5
我需要做的是:(僞代碼)
if IRB.input.is_a?(Fixnum)
some_method(IRB.input) # some_method(5)
end
看這個file。 你可以找到厄貝沙坦#eval_input方法和補一補:
# code before
@scanner.set_input(@context.io) do
signal_status(:IN_INPUT) do
if l = @context.io.gets
if l.match(/^\d+$/)
puts 'Integer found!'
end
print l if @context.verbose?
else
if @context.ignore_eof? and @context.io.readable_after_eof?
l = "\n"
if @context.verbose?
printf "Use \"exit\" to leave %s\n", @context.ap_name
end
else
print "\n"
end
end
l
end
end
# code after
厄貝沙坦輸出例如:
[email protected]:~$ irb
2.1.5 :001 > 123
Integer found!
=> 123
2.1.5 :002 > "string"
=> "string"