1 つの関数で 2 つの条件を反転する
概要
これが私が達成したいことを説明するのに最適なタイトルかどうかはわかりませんが、基本的に 2 つの条件があります。
if current_file.early? && !required_file.early? do
...
end
if !current_file.early? && required_file.early? do
...
end
これを長く見すぎたように思いますが、これらは本質的に互いに逆であるため、これを単純化する簡単な方法があるかどうか知りたいだけです。ネストされた if を実行できることはわかっていますが、
current_file.early?
!required_file.early? && do_something
required_file.early? && do_something_else
でもそれは私が探しているものでもありません。もう少しエレガントなものがあれば探しています。
解決策
おそらく case ステートメント:
case [current_file.early?, required_file.early?]
when [true, false]
"do something"
when [false, true]
"do anything"
end