KOMATSU Shinichiro
koma2****@ms*****
2004年 12月 6日 (月) 00:50:38 JST
小松です。 From: Kazuhiko <kazuh****@fdiar*****> Subject: [Hiki-dev:00601] Re: repository backend Date: Sun, Dec 05, 2004 at 11:06:53PM JST > > (4) ここまでやると、plugin の cvs.rb と svn.rb は > > 1つにまとめてしまえることがわかったので、 > > これらはまとめた上で plugin/00default.rb に入れてしまった。 > (1)〜(3) については概ね賛成なのですが、(4) はちょっとやりすぎな気もします。 ここはちょっと迷ったところで、 実は最初に書いた時には cvs.rb と svn.rb をまとめたものを repos.rb という別の plugin にしようと思っていました。 http://straycat.ms.u-tokyo.ac.jp/~koma2/daymemo2/?date=20041122#p01 ただ、これだと ・ 今まで cvs.rb や svn.rb を使っていた人が repos.rb を有効にするのを忘れるとハマる。 ・ リポジトリ管理を使いたくない人は repos_type を設定しなければいい。 ということで、後方互換性を確保するには 00default.rb に入れるのがよかろうと思ったわけです。 私も「ここまでやっていいかな?」というのは 迷ったところなので、最終的にはかずひこさんにお任せします。 > add_update_proc { > updating_mail if****@conf*****_on_update > Hiki::Util::create_repos(@conf.repos_type, @conf.repos_root, @conf.data_path).commit(@page) > } > > add_delete_proc { > Hiki::Util::create_repos(@conf.repos_type, @conf.repos_root, @conf.data_path).delete(@page) > } > > ↑このへんで、クラスメソッド (というか module function) が出てくるのが > ちょっと嫌かも... そうなんですよねぇ。 雑多なものは hiki/util.rb に入れてるみたいなんで こうしてみたのですが、 よく考えると hiki/util.rb に入れたからと言って Hiki::Util に入れないといけないというわけではないんですよね。 というわけで、create_repos はこんな感じで Hiki::Util の外に出すというのはどうでしょう? Index: hiki/util.rb =================================================================== RCS file: /cvsroot/hiki/hiki/hiki/util.rb,v retrieving revision 1.17 diff -u -r1.17 util.rb --- hiki/util.rb 15 Nov 2004 14:45:23 -0000 1.17 +++ hiki/util.rb 5 Dec 2004 15:49:43 -0000 @@ -215,3 +215,18 @@ end end end + +# Create repository backend +def create_repos(repos_type, repos_root, data_path) + case repos_type + when 'cvs' + require 'hiki/repos/cvs' + return Hiki::ReposCvs.new(repos_root, data_path) + when 'svn' + require 'hiki/repos/svn' + return Hiki::ReposSvn.new(repos_root, data_path) + else + require 'hiki/repos/default' + return Hiki::ReposDefault.new(repos_root, data_path) + end +end -- ┏━━━━━━━━━━━━━━━━━━━━━━┓ 小松 晋一朗 koma2****@ms***** koma2****@momon***** http://straycat.ms.u-tokyo.ac.jp/~koma2/ ┗━━━━━━━━━━━━━━━━━━━━━━┛