0
システムを使用してシステムコールを行う前にチェックするか、 ``が実行されて特定のモジュールからコールが行われたことを確認します。システムコールが実行される前にイベントをトリガーする
私はそれを使用してコマンドのサニタイズや検証を行うのではなく、1つのモジュールだけがこれらの呼び出しを行うことができるようにします。
ありがとうございました。
module BacktickURI
alias_method :standard_back_tick_call, :` #` #Comment for fixing Notepad++ highlighting, needs even back ticks
alias_method :standard_system_call, :system
def `(uri)#`
standard_back_tick_call(uri)
end
def system uri
standard_system_call uri
end
end
編集:解決策が見つかりました
「システム」のエイリアシングのポイントは何ですか? 'system'メソッド定義に循環参照があるようです。また、ラッパーメソッドを作成し、バックティックの代わりにコードから呼び出す方が簡単だと思います。 –
alias_methodは実行時にスコープをシフトするので、includeを使用すると4つのメソッドが別々のエンティティとして導入されます(私はこれが起こっていると思います)。これは、私と他の人が埋め込まれているプロジェクトと一緒に作業したり、間違ってシステムコールをしたりするのを防ぐためです。私は管理のためのホワイトリストに入れたアプローチを使用しました。ユーザーが何かをする必要がある場合、モジュールに追加されたスイッチを使用して手動で機能をオフにすることができます。 – CBusBus