Webアプリケーションのテストに使う端末を決定するために、最初はruby -e 'p %w(iPad Firefox Android).sample'
とランダムで値を返していました。
使っていると、ランダムよりは順番がよいと感じました。
また、順番も前回使った端末を覚えていて、その次から実行できると嬉しいです。
そして作ったのが、このスクリプトです。
script = File.read(__FILE__).split("__END__\n").first value = DATA.gets puts value File.open(__FILE__, 'w') do _1.write script _1.write "__END__\n" _1.write DATA.read _1.write value end __END__ iPad Firefox Android
実行すると次のように、一定の順番で値を返します。
~ ruby userAcceptanceTest/choice_test_devices.rb iPad ~ ruby userAcceptanceTest/choice_test_devices.rb Firefox ~ ruby userAcceptanceTest/choice_test_devices.rb Android
実行すると実行したスクリプトが変更されるのは、見ていてなかなか気持ちが悪いものがあります。
見た目は__END__
以降が変わっているようですが、実際はファイル全体を書き直しています。