むしろやりたいが、それが可能かどうかわからないという興味深いアイデアが浮かびました(ただし、不可能に近いと思います)。
スクリプトは次のようなことをしたい:
process_recursively(top_item) do |item|
if item.text =~ /evil/
item.add_tag(evil)
end
end
概念的には、これは次のように機能します。
def process_recursively(item, &block)
block.call(item)
item.children.each { |child| process_recursively(child) }
end
しかし問題は、実際のシステム (Ruby ではなく Java で実装されている) が実際に別の JVM からアイテムを処理するための呼び出しを行うため、JVM のクラッシュによって処理実行全体が破壊されないことです。
RMIがまだ普及していた頃、この種のことが厄介な方法で可能だったことは知っていますが、JRubyのようなものでこのクレイジーなアイデアを機能させる方法はありますか?
理想的には、どの JSR223 スクリプト言語でも動作するようにしたいと考えていますが、それについては息を止めていません。