ruby_parser と Ruby2Ruby の gem を使用して、どの条件が評価され、その結果とパラメーターがどのようなものであったかを追跡するコードを作成しています。これをできるだけ単純にするために、AST を少し書き直すことがあります。もちろん、結果がオリジナルとまったく同じように機能することが確実な場合にのみ、それを行うことができます。
次の 3 つの Ruby スニペットは、3 つのドットが有効な Ruby 式に置き換えられていると仮定して、機能が同等であると主張するのは正しいでしょうか? エッジケースを見落としていませんか?
case var
when foo
something
when ...
another_thing
else
something_else
end
if foo === var
something
elsif ... === var
another_thing
else
something_else
end
case
when foo === var
something
when ... === var
another_thing
else
something_else
end