From 750d35c45d8b557de9fdb5bd7287561a48cfcc21 Mon Sep 17 00:00:00 2001 From: James Lopez Date: Mon, 6 Nov 2017 15:13:52 +0100 Subject: some refactoring based on feedback --- .../bare_repository_import/bare_repository.rb | 30 ------------------- lib/gitlab/bare_repository_import/importer.rb | 2 +- lib/gitlab/bare_repository_import/repository.rb | 30 +++++++++++++++++++ .../bare_repository_import/bare_repository_spec.rb | 35 ---------------------- .../gitlab/bare_repository_import/importer_spec.rb | 4 +-- .../bare_repository_import/repository_spec.rb | 35 ++++++++++++++++++++++ 6 files changed, 68 insertions(+), 68 deletions(-) delete mode 100644 lib/gitlab/bare_repository_import/bare_repository.rb create mode 100644 lib/gitlab/bare_repository_import/repository.rb delete mode 100644 spec/lib/gitlab/bare_repository_import/bare_repository_spec.rb create mode 100644 spec/lib/gitlab/bare_repository_import/repository_spec.rb diff --git a/lib/gitlab/bare_repository_import/bare_repository.rb b/lib/gitlab/bare_repository_import/bare_repository.rb deleted file mode 100644 index edaba157b18..00000000000 --- a/lib/gitlab/bare_repository_import/bare_repository.rb +++ /dev/null @@ -1,30 +0,0 @@ -module Gitlab - module BareRepositoryImport - class BareRepository - attr_reader :group_path, :project_name, :repo_path - - def initialize(root_path, repo_path) - @root_path = root_path - @repo_path = repo_path - - # Split path into 'all/the/namespaces' and 'project_name' - @group_path, _sep, @project_name = repo_relative_path.rpartition('/') - end - - def wiki? - @wiki ||= @repo_path.end_with?('.wiki.git') - end - - def project_full_path - @project_full_path ||= "#{group_path}/#{project_name}" - end - - private - - def repo_relative_path - # Remove root path and `.git` at the end - repo_path.sub(/\A#{@root_path}/, '').sub(/\.git$/, '') - end - end - end -end diff --git a/lib/gitlab/bare_repository_import/importer.rb b/lib/gitlab/bare_repository_import/importer.rb index 1a17cc4bf9e..1b1ca49bab7 100644 --- a/lib/gitlab/bare_repository_import/importer.rb +++ b/lib/gitlab/bare_repository_import/importer.rb @@ -10,7 +10,7 @@ module Gitlab repos_to_import = Dir.glob(import_path + '**/*.git') repos_to_import.each do |repo_path| - bare_repo = Gitlab::BareRepositoryImport::BareRepository.new(import_path, repo_path) + bare_repo = Gitlab::BareRepositoryImport::Repository.new(import_path, repo_path) if bare_repo.wiki? log " * Skipping wiki repo" diff --git a/lib/gitlab/bare_repository_import/repository.rb b/lib/gitlab/bare_repository_import/repository.rb new file mode 100644 index 00000000000..57908908be6 --- /dev/null +++ b/lib/gitlab/bare_repository_import/repository.rb @@ -0,0 +1,30 @@ +module Gitlab + module BareRepositoryImport + class Repository + attr_reader :group_path, :project_name, :repo_path + + def initialize(root_path, repo_path) + @root_path = root_path + @repo_path = repo_path + + # Split path into 'all/the/namespaces' and 'project_name' + @group_path, _, @project_name = repo_relative_path.rpartition('/') + end + + def wiki? + @wiki ||= @repo_path.end_with?('.wiki.git') + end + + def project_full_path + @project_full_path ||= "#{group_path}/#{project_name}" + end + + private + + def repo_relative_path + # Remove root path and `.git` at the end + repo_path.sub(/\A#{@root_path}/, '').sub(/\.git$/, '') + end + end + end +end diff --git a/spec/lib/gitlab/bare_repository_import/bare_repository_spec.rb b/spec/lib/gitlab/bare_repository_import/bare_repository_spec.rb deleted file mode 100644 index 1bbbb64a8c7..00000000000 --- a/spec/lib/gitlab/bare_repository_import/bare_repository_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'spec_helper' - -describe ::Gitlab::BareRepositoryImport::BareRepository do - let(:project_repo_path) { described_class.new('/full/path/', '/full/path/to/repo.git') } - - it 'stores the repo path' do - expect(project_repo_path.repo_path).to eq('/full/path/to/repo.git') - end - - it 'stores the group path' do - expect(project_repo_path.group_path).to eq('to') - end - - it 'stores the project name' do - expect(project_repo_path.project_name).to eq('repo') - end - - describe '#wiki?' do - it 'returns true if it is a wiki' do - wiki_path = described_class.new('/full/path', '/full/path/to/my.wiki.git') - - expect(wiki_path.wiki?).to eq(true) - end - - it 'returns false if it is not a wiki' do - expect(project_repo_path.wiki?).to eq(false) - end - end - - describe '#project_full_path' do - it 'returns the project full path' do - expect(project_repo_path.repo_path).to eq('/full/path/to/repo.git') - end - end -end diff --git a/spec/lib/gitlab/bare_repository_import/importer_spec.rb b/spec/lib/gitlab/bare_repository_import/importer_spec.rb index f4dd36f6080..1efb76d0255 100644 --- a/spec/lib/gitlab/bare_repository_import/importer_spec.rb +++ b/spec/lib/gitlab/bare_repository_import/importer_spec.rb @@ -2,9 +2,9 @@ require 'spec_helper' describe Gitlab::BareRepositoryImport::Importer, repository: true do let!(:admin) { create(:admin) } - let(:project_repo_path) { Gitlab::BareRepositoryImport::BareRepository.new(TestEnv.repos_path, File.join(TestEnv.repos_path, "#{project_path}.git")) } + let(:bare_repository) { Gitlab::BareRepositoryImport::Repository.new(TestEnv.repos_path, File.join(TestEnv.repos_path, "#{project_path}.git")) } - subject(:importer) { described_class.new(project_repo_path) } + subject(:importer) { described_class.new(bare_repository) } before do allow(described_class).to receive(:log) diff --git a/spec/lib/gitlab/bare_repository_import/repository_spec.rb b/spec/lib/gitlab/bare_repository_import/repository_spec.rb new file mode 100644 index 00000000000..b42ef7b9aa4 --- /dev/null +++ b/spec/lib/gitlab/bare_repository_import/repository_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe ::Gitlab::BareRepositoryImport::Repository do + let(:project_repo_path) { described_class.new('/full/path/', '/full/path/to/repo.git') } + + it 'stores the repo path' do + expect(project_repo_path.repo_path).to eq('/full/path/to/repo.git') + end + + it 'stores the group path' do + expect(project_repo_path.group_path).to eq('to') + end + + it 'stores the project name' do + expect(project_repo_path.project_name).to eq('repo') + end + + describe '#wiki?' do + it 'returns true if it is a wiki' do + wiki_path = described_class.new('/full/path', '/full/path/to/my.wiki.git') + + expect(wiki_path.wiki?).to eq(true) + end + + it 'returns false if it is not a wiki' do + expect(project_repo_path.wiki?).to eq(false) + end + end + + describe '#project_full_path' do + it 'returns the project full path' do + expect(project_repo_path.repo_path).to eq('/full/path/to/repo.git') + end + end +end -- cgit v1.2.1