[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

inheriting shimbun-text (was Re: sb-yahoo.el)



>>>>> In [emacs-w3m : No.08099] 山岡 wrote:

> ;; 以前の sb-yahoo.el が html の記事を生成していた件に関連して、
> ;; sb-chalow.el, sb-f1fan.el, sb-japantimes.el, sb-makanai.el,
> ;; sb-msports-nifty.el, sb-pcweb-column.el, sb-tdiary.el および
> ;; sb-yahoo-sports.el も、継承のしかたが間違っているんじゃないで
> ;; しょうか?

やっぱり間違っていると思うですよ。

例えば sb-japantimes.el は

(require 'shimbun)
(require 'sb-text)
(luna-define-class shimbun-japantimes (shimbun shimbun-text) ())

ということを行なっていて、shimbun-japantimes という class のため
の shimbun-make-contents メソッドを定義していません。記事を作る
ときの動作を追いかけると、呼ばれるのは shimbun.el で定義されてい
るデフォルトの shimbun-make-contents メソッドなので、text/html
の記事を作ります。sb-text.el で定義された shimbun-make-contents
メソッドは使われません。

一方 sb-f1fan.el は、japantimes と同様の class 定義を行ないます
が、shimbun-f1fan という class のための shimbun-make-contents メ
ソッドを定義しているので、記事の生成にはそれが使われ、text/plain
の記事が作られます。

さて、

(luna-define-class shimbun-japantimes (shimbun shimbun-text) ())

これは japantimes が使う各種のメソッドとして、もし shimbun で定
義されていたらそれを使い、無かったら shimbun-text で定義されてい
るものを使う、という優先順位が設定されていますよね(?)。ただし、
もし japantimes が独自に定義しているメソッドがあったならば、それ
が最優先で使われますが。

この解釈が正しいならば、sb-japantimes が text/plain の記事を生成
しないのは当然だということになります。shimbun-text は shimbun を
継承しているのだから(?)、shimbun-japantimes の class 定義は

(luna-define-class shimbun-japantimes (shimbun-text) ())

でよいのではないですか?

;; あちこちに (?) というものを置いたのは、自信が無いからです。;-)
;; まあ、luna が効率の良い優れた道具だというのはわかってきました
;; が、動作を追いかけるのが超むずかしいのは変わっていません。^^;;