puts(puts
、p
)のすべての反復に対してコールバックを行い、警告しています。例えばputsのコールバックとRubyへの警告
:
puts "test" -> def callback() -> "test"
どのように私はこれを達成することができるだろうか?
puts(puts
、p
)のすべての反復に対してコールバックを行い、警告しています。例えばputsのコールバックとRubyへの警告
:
puts "test" -> def callback() -> "test"
どのように私はこれを達成することができるだろうか?
これは可能ですが、実行するたびにRubyランタイム全体に適用されるため、実際に実行しても構いません。他の人と一緒にプロジェクトに取り組んでいる場合は、必ずバイインを受けてください。
これを行うには、元のメソッドを別のメソッド名にエイリアスします。次に、独自の処理を行うメソッドを再定義します。これは、元のメソッドを呼び出すことで終了します。たとえば、puts
の場合:
#!/usr/bin/env ruby
module Kernel
alias original_puts puts
def puts(object)
# Do my own processing here, e.g.
original_puts "This is coming from my overrided puts:"
original_puts(object)
end
end
puts 'hi'
=begin
Outputs:
This is coming from my overrided puts:
hi
=end
コールバックとは? – sawa
** putsの**反復**とはどういう意味ですか? putsが**呼ばれるたびに**を意味しますか? – sawa
はい、基本的にすべてのstdoutとstderrを関数に取り込みます。ラッパーのように。 – KNgu