21

チュートリアルのおかげでフリップフロップがどのように機能するかは理解できたと思いますが、そこにある例は教えるためだけに考案されたものです。あなたが実際にどのようにフリップフロップを使用したか、または使用するかについて、誰かが例を挙げてもらえますか?

別のデモンストレーションだけでなく、実際のアプリケーションを探しています。このツールで解決できる問題は何ですか?

リンクは以前http://vision-media.ca/resources/ruby/ruby-flip-flop-or-range-operatorsはでしたが、最近はスパムのようです。

4

3 に答える 3

8

James の回答にいくつかの具体例を追加したいと思います。正規表現に基づいてテキストのセクションを引き出すために、この演算子を使用しました。

Net::SSH を介してリモート サーバーでコマンドを実行するツールを作成していました。この特定のサーバーには、セッションがログイン セッションであるかどうかに関係なく、MOTD を出力するという厄介な習慣がありました。これにより、コマンドを実行して出力を取得すると、大量のガベージが返されました。私はサーバーのセットアップにあまり影響を与えていなかったので、区切り文字を出力する小さなスクリプトを作成し、プログラムを実行してから、別の区切り文字を出力しました。出来上がりはこんな感じでした。

Welcome to Server X!

+----------------------------------------------------------------------+
| Use of this server is restricted to authorized users only. User      |
| activity may be monitored and disclosed to law enforcement personnel |
| if any possible criminal activity is detected.                       |
+----------------------------------------------------------------------+

----------------------------------------------
    Setting up environment for user Adam. 
----------------------------------------------

>>>>>>>>>>>>>>>>>>>>>>>>>
Program Output
<<<<<<<<<<<<<<<<<<<<<<<<<

フリップフロップ演算子は、必要な出力を含むコードのセクションだけを引き出す便利なショートカットでした。25 より大きい ">" に一致する正規表現を使用して一致を開始し、25 よりも小さい "<" に一致して一致を終了しました。

output.each { |line| puts line if line[/^>{25}/] .. line[/^<{25}/] }

出力

>>>>>>>>>>>>>>>>>>>>>>>>>
Program Output
<<<<<<<<<<<<<<<<<<<<<<<<<

私が見たほとんどの例では、正規表現に基づいて、ファイルまたは配列からデータのチャンクを取得していました。頭に浮かぶ他の例としては、git マージの競合、従来のフラット ファイル システムからの特定のレコード (ファイルに書き込まれた構造体など)、およびログ ファイルの抽出があります。

基本的に、個々の行のコンテンツだけでなく、開始データと終了データに基づいてセクションを引き出す必要があるときはいつでも。単純な正規表現よりも少し複雑ですが、パーサーを作成するよりは簡単です。

于 2013-01-30T20:09:08.507 に答える
4

多くの行を含む HTML テーブルでの奇数/偶数行の強調表示は、有効な使用例のようです。

Railsでテーブルをレンダリングするときに、過去に何度か上記ほどエレガントではないものを書きました。

于 2011-07-18T03:16:12.007 に答える