История изменений
Исправление KennyMinigun, (текущая версия) :
Так а что делать с методом list_files
, как в нём определить кто должен файлы листить: git или svn?
Т.е.:
package MyApp::Model::Repository;
sub list_files {
my ($self, $repo) = @_;
my $vcs = $repo->vcs; # тут может быть что угодно: git, hg, ...
# а тут надо получить список файлов из репозитория
# git -> `git ls-files`
# hg -> `hg locate`
# svn -> `svn list`
}
Но вообще желательно, чтоб метод list_files проксировался из соответствующего хелпера: MyApp::*::Git
, MyApp::*::Mercurial
, ... В зависимости от $repo->vcs.
Кроме list_files
будут еще контрактные методы, внутренняя логика которых тоже зависит от типа VCS.
P.S. Кажется мне, что это неправильный подход и я где-то перемудрил
Исправление KennyMinigun, :
Так а что делать с методом list_files
, как в нём определить кто должен файлы листить: git или svn?
Т.е.:
package MyApp::Model::Repository;
sub list_files {
my ($self, $repo) = @_;
my $vcs = $repo->vcs; # тут может быть что угодно: git, hg, ...
# а тут надо получить список файлов из репозитория
# git -> `git ls-files`
# hg -> `hg locate`
# svn -> `svn list`
}
Но вообще желательно, чтоб метод list_files проксировался из соответствующего хелпера: MyApp::*::Git
, MyApp::*::Mercurial
, ... В зависимости от $repo->vcs.
Кроме list_files
будут еще контрактные методы, внутренняя логика которых зависит от типа VCS.
P.S. Кажется мне, что это неправильный подход и я где-то перемудрил
Исправление KennyMinigun, :
Так а что делать с методом list_files
, как в нём определить кто должен файлы листить: git или svn?
Т.е.:
package MyApp::Model::Repository;
sub list_files {
my ($self, $repo) = @_;
my $vcs = $repo->vcs; # тут может быть что угодно: git, hg, ...
# а тут надо получить список файлов из репозитория
# git -> `git ls-files`
# hg -> `hg locate`
# svn -> `svn list`
}
Но вообще желательно, чтоб метод list_files проксировался из соответствующего хелпера: MyApp::*::Git
, MyApp::*::Mercurial, ... В зависимости от $repo->vcs.
Кроме list_files
будут еще контрактные методы, внутренняя логика которых зависит от типа VCS.
P.S. Кажется мне, что это неправильный подход и я где-то перемудрил
Исходная версия KennyMinigun, :
Так а что делать с методом list_files
, как в нём определить кто должен файлы листить git или svn?
Т.е.:
package MyApp::Model::Repository;
sub list_files {
my ($self, $repo) = @_;
my $vcs = $repo->vcs; # тут может быть что угодно: git, hg, ...
# а тут надо получить список файлов из репозитория
# git -> `git ls-files`
# hg -> `hg locate`
# svn -> `svn list`
}
Но вообще желательно, чтоб метод list_files проксировался из соответствующего хелпера: MyApp::*::Git
, MyApp::*::Mercurial, ... В зависимости от $repo->vcs.
Кроме list_files
будут еще контрактные методы, внутренняя логика которых зависит от типа VCS.
P.S. Кажется мне, что это неправильный подход и я где-то перемудрил