問題タブ [alias-method]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - `alias_method` プライベート メソッド
client_options
2 つのインターフェイス メソッドとを公開するクラスがuser_options
あり、この祖先レベルでは、それらは と同等default_options
です。default_options
他の開発者に直接実装してほしくないので、プライベートです。
数行のコードを節約するために、メソッドにエイリアスを設定したいと思いました。
ただし、alias_method
パブリック メソッドのエイリアスのみです。
このブログでプライベート メソッドをエイリアスする方法を見つけました。
しかし、それは少し読みにくいです。
プライベートメソッドをエイリアスするためのより直接的な解決策はありますか?
ruby - モジュールをインクルードするときの __callee__ の予期しない値 – これは Ruby のバグですか?
によって作成されたメソッドを介して呼び出された場合、 は古いメソッドの名前 (ここでは )alias_method
を__callee__
無視し、xxx
次のように新しいメソッドの名前を返します。
xxx
がスーパークラスから継承されている場合でも、この動作は保持されます。
xxx
上記の両方を考えると、モジュールを介して含まれている場合も同じ動作が保持されると予想されます。ただし、そうではありません。
戻り値は:baz
ではなくになると思い:xxx
ます。
上記のコードは、Ruby 2.3.1p112 を使用して実行されました。これは の実装のバグ__callee__
ですか? それとものalias_method
?そうでない場合、モジュールのインクルードが異なる動作をする理由を誰か説明できますか?
更新 1
これをRubyバグトラッカーに投稿して、答えをかき立てようとしました。
更新 2
どうやら、この問題に驚いたのは私だけではないようです。リビジョン 50728 (バグ 11046:__callee__
孤立した proc で不正なメソッド名を返す) を解決するためのものでした) が関連しているのではないかと思います。
ruby - Rails Monkey Patch の alias_method でメソッド エラーが発生しない
RailsRails.cache.fetch/read
メソッドにパッチを適用し、フェッチ/読み取りが発生するたびに追加のログを追加しようとしていますが、答えをグーグルできないという他のエラーが発生しました。
これが私のモンキーパッチコードです
トラヴィスが逮捕された場所
どこかに呼び出しているコードがありますB.cache.each do |x| blablabla end
問題は、私が間違った方法で何をしているのかです。Store の下の 2 つのメソッドにモンキー パッチを適用しただけですが、.cache を呼び出しているすべてのものを上書きしているように見えるのはなぜですか