Rubyには、正規表現のリテラルと、文字列の作成/補間のための便利な構文ショートカットがたくさんあります。したがって、タスクが主に一致するビットと文字列の部分の混合に関連している場合、Rubyは必要な作業が大幅に少なくなる可能性があります(ただし、短いヘルパースクリプト以外では、これは非常にまれな状況であることがわかりました)。
より適切なのは、Rubyのメタプログラミング機能です。すなわち#eval
、#define_method
と合わせ、友人、open classes
、#include
そして#extend
おそらく非常に大きな金額-あなたはそのコードジェネレータ/ウィザードがあなたと同じ利点のいくつかを与えるが、あなたが生きている、と主張することができます-あなたは、実行時に定型コードのトンを作成することができます-生成されたボイラープレートコードのうち、読んで理解しなければならない比較的少量のメタプログラミングコードと比較します。
これの典型的な使用例は、アプリケーションの外部のある種の動的データプロバイダーとインターフェイスする必要がある場合です。Rails ActiveRecordはその良い例です。
将来的には、UI要素のID、タイプ、入力値などに基づいて実行時にメソッドを作成することにより、ユーザーインターフェイス要素からイベントを処理するメソッドを生成できるため、これはGUIの開発に非常に有益になる可能性があります(ステロイドのObjective-Cなど) MacRubyが成熟すると、この力の一部が見られます)。
この機能の有効利用と恐ろしい乱用の境界線は非常に薄く、私の経験から、大規模なRuby(on Rails)プロジェクトで頭痛の主な原因になる傾向があります。だからジンからそれをボトルから解放することにするときは注意してください:)