在File,String等核心类中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似于Java安全管理器的方法。
我正在寻找一种重新定义方法的方法,首先看看哪个类/脚本调用了这个方法,并且该类/脚本是否属于某些列入黑名单的类的列表(我跟踪)我想要提高例外,如果调用类属于非黑名单类,则允许该操作。类似的东西:
class String
alias_method :old_length, :length
def length
if(#nowHowDoIGetTheCallingClass)
raise "bad boy"
else
old_length
end
end
我在JRuby中尝试了这个,但这只是替代方案。一次调用新的长度方法,下次调用旧的长度方法。我想alias
在JRuby中无法正常工作! >。<