0

私の質問が正しいかどうかはわかりませんが、一般的には次のようにします。

次のようなコードスニペットを指定します。

[{ <some events>, "close"}, { <some other events>, "close"}].each do |events|
    it "should handle events" do
        ...
    end
    ...
end

イベントの配列を拡張したいと思います。閉じるには2つの方法があるとしましょう:("close"同じ)と"stop"。つまり、4つのシーケンスをチェックするコードを書きたいと思います[{<some events>, "close"}, {<some other events>, "close"}, {<some events>, "stop"}, {<some other events>, "stop"}]

それをコーディングするための適切な(Rubyで適切なスタイルの)方法は何でしょうか?

更新<some events>および<some other events>は文字列のシーケンスです(これは明確にするためです)。

N2 stopを更新closeします。より一般的なケースでは、シーケンスの途中にも表示される可能性があります。

N3を更新します。最後のシーケンスが1つある方が便利な場合があります。do私はここで間違っているかもしれません。

アップデートN4:例(すべてを明確にするため):

初期メッセージ: "open"、 "click_btn1"、 "click_btn2"、 "open"、 "click_btn2"、 "click_btn3"、

目的の結果: "open"、 "click_btn1"、 "click_btn2"、 "close" "open"、 "click_btn1"、 "click_btn2"、 "close" "open"、 "click_btn2"、 "click_btn3"、 "stop" "open "、" click_btn2 "、" click_btn3 "、"停止 "

4

1 に答える 1

2

ネストされた反復があるだけです。

[some_events, some_other_events].each do |event|
  ["close", "stop"].each do |close_or_stop|
    ...
  end
end

または多分

[some_events, some_other_events].product(
["close", "stop"]) do |event, close_or_stop|
  ...
end
于 2012-11-01T15:16:22.767 に答える