著作一覧 |
それはぜひとも、読みたいです。
しかし、なぜこういう話のときに訳のわからないトラックバックが打たれているのか、それもおもしろかったり。
それにしても、MSDNの「このインターフェイスは、カスタム サーバー コントロールによって使用されますが、実装されることはありません。ASP.NET は、常にこのインターフェイスを実装します。」という説明は言語明瞭意味不明瞭の最たるものだ。
で、サンプルコードを見るとその型のフィールドが定義されているだけ。で、どうやらフィールドインジェクションされるのだろうな、ということがコードを見てるとわかってくるし、トピックを読むとだんだんに見えてくる。
でも現在はこのあたりの開発してないので実感としてそれがどう役立つのかがわからない。カスタムコントロールを作る場合の難易度を軽減させるために委譲するための受け口を用意しているってことなのか? とか言いながらMSDNを読んでいるうちにだんだんとわかってきたが、COMで言うと自分でTypeLibを拡張していくオートメーションサーバーみたいな感じなのかな? ――やっぱりわかったわけではない。IDispatchExみたいな感じなのかも。あれは読み込んだHTMLによってJavaScript自体の動作が変わる(外部から関数が定義されるからだ)。
本来は内部構造なのだがインターフェイスを切っているために、外部へこういったものが露呈してしまう。そのためMSDNに書くことになる。というやつなのかな。
ばらして見たら意外な事実を発見。Ruby 1.8.4 ノーパッチ。
C:\>type test.txt|ruby -e 'p $stdin.binmode.readline[-2]' 13 C:\>type test.txt|ruby -e '$stdin.eof; p $stdin.binmode.readline[-2]' 116
1文字分戻っている勘定だ。ということは最後の1文字をIO#eofが消費してしまったように見える。でもio.cを見てもそんな様子はないし、そもそもeofの呼び出しは先頭でやっているのだから末尾に影響するとは思えない。
というか、binmodeの位置かな?
C:\>type test.txt|ruby -e '$stdin.binmode.eof; p stdin.readline[-2]' 13
当たり。
#当たりって、これはどういうことなんだ? 一度binmode抜きでIOをかけると、その時点でモードが固定されてしまって後からは変えられないってことなのかな。
setmode 関数をストリームのファイル記述子に対して使用する場合は、ストリームに対して入出力操作を実行する前に、_setmode 関数を呼び出します。
MSDN _setmode
当たり。
>> Inflector.pluralize('leaf') => "leafs" >> Inflector.singularize('leaves') => "leafe" >>
アルバムリーフっていうのを使いたかったがちょっとがっかり。チケット切るほどでも無いし。
#追記:チケット切ったのは良いが、Subjectの綴りミスった(本文しか確認しなかった)。Infectorって、それじゃ病気だよ……orz。ジェズイットを見習え |
environment.rb に、<br>Inflector.inflections do |i|<br> i.irregular 'leaf', 'leaves'<br>end<br>で、どっすか。
eaf -> eaves みたいなが規則性・汎用性があるなら、チケット切ってくれた方が嬉しいでっす。<br><br>activesupport/lib/active_support/inflections.rb:<br>Inflector.inflections do |inflect|<br> ...<br> inflect.plural(/eaf$/, 'eaves')<br> ...<br>end
うむ、最初のbabieさんの指摘通り、environment.rbに書きゃいいじゃんというコメントが付いた。あまり使わない名詞なのかな?