- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*はじめに [#lda23308]
今回はtDiaryのプラグインの仕組みを読んでみたいと思います。といっても今までtDiaryを読んだことがないので1から読んでいきたいと思います。
* index.rb [#hc454ba3]
何はなくともindex.rbを見てみましょう。早速興味深いコードがあります。
#pre{{
if FileTest::symlink?( __FILE__ ) then
org_path = File::dirname( File::readlink( __FILE__ ) )
else
org_path = File::dirname( __FILE__ )
end
$:.unshift( org_path.untaint )
require 'tdiary'
}}
$:はファイルのロードパスです。そこにindex.rb((例えば複数の日記を書く場合に実体はどこかに置いといて各日記のディレクトリにはindex.rbとupdate.rbのシンボリックリンクを置くという運用も考慮されているのがすばらしいところです。))が置かれているディレクトリを登録することでカレントディレクトリがどこから実行されてもindex.rbと同じディレクトリにあるtdiary.rbを読み込めるようにしています。