は、私が(http://ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.htmlを参照)RubyでCSVクラスは、いくつかのショートカットのインタフェースを持っていることに気付きました:Ruby:ブロックを受け入れるクラス?
CSV { |csv_out| csv_out << %w{my data here} } # to $stdout
CSV(csv = "") { |csv_str| csv_str << %w{my data here} } # to a String
CSV($stderr) { |csv_err| csv_err << %w{my data here} } # to $stderr
CSV($stdin) { |csv_in| csv_in.each { |row| p row } } # from $stdin
自分のクラスのためにこれを行う方法はありますか?私はDSLを実装しているので、コードをもっときれいにすることができます。
「リファインメント」リンクありがとうございます。 –
'refine'の全目的は、monkey-patchが見える範囲を制御することです。これらの 'CSV'メソッドがどこからでも見えるようにしたいので、洗練を使う必要はありません。 –