# Module NamespacedProject

- app/roles/namespaced_project.rb

Methods

C
  - chief
N
  - name_with_namespace,
  - namespace_owner
P
  - path_with_namespace
T
  - transfer

Instance Public methods
chief() Link

Source: show

    # File app/roles/namespaced_project.rb, line 44
    def chief
      if namespace
        namespace_owner
      else
        owner
      end
    end

name_with_namespace() Link

Source: show

    # File app/roles/namespaced_project.rb, line 30
    def name_with_namespace
      @name_with_namespace ||= begin
                                 if namespace
                                   namespace.human_name + " / " + name
                                 else
                                   name
                                 end
                               end
    end

namespace_owner() Link

Source: show

    # File app/roles/namespaced_project.rb, line 40
    def namespace_owner
      namespace.try(:owner)
    end

path_with_namespace() Link

Source: show

    # File app/roles/namespaced_project.rb, line 52
    def path_with_namespace
      if namespace
        namespace.path + '/' + path
      else
        path
      end
    end

transfer(new_namespace) Link

Source: show

    # File app/roles/namespaced_project.rb, line 2
    def transfer(new_namespace)
      Project.transaction do
        old_namespace = namespace
        self.namespace = new_namespace

        old_dir = old_namespace.try(:path) || ''
        new_dir = new_namespace.try(:path) || ''

        old_repo = if old_dir.present?
                     File.join(old_dir, self.path)
                   else
                     self.path
                   end

        if Project.where(path: self.path, namespace_id: new_namespace.try(:id)).present?
          raise TransferError.new("Project with same path in target namespace already exists")
        end

        Gitlab::ProjectMover.new(self, old_dir, new_dir).execute

        git_host.move_repository(old_repo, self)

        save!
      end
    rescue Gitlab::ProjectMover::ProjectMoveError => ex
      raise Project::TransferError.new(ex.message)
    end