From 80a71576ba27d84b3406a8b929328359e2edc9da Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Fri, 18 Dec 2015 12:55:50 +0100
Subject: [PATCH] Use `Gitlab::StringPath` in CI build artifacts controller

---
 app/controllers/projects/artifacts_controller.rb |  9 ++++++++-
 lib/gitlab/string_path.rb                        | 12 ++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/app/controllers/projects/artifacts_controller.rb b/app/controllers/projects/artifacts_controller.rb
index ff04e144884..c1f406e3ba5 100644
--- a/app/controllers/projects/artifacts_controller.rb
+++ b/app/controllers/projects/artifacts_controller.rb
@@ -15,7 +15,10 @@ class Projects::ArtifactsController < Projects::ApplicationController
   end
 
   def browse
-    @metadata = build.artifacts_metadata
+    path = params[:path].to_s
+    @paths = artifacts_metadata.map do |_artifact_file|
+      Gitlab::StringPath.new(path, artifacts_metadata)
+    end
   end
 
   private
@@ -28,6 +31,10 @@ class Projects::ArtifactsController < Projects::ApplicationController
     @artifacts_file ||= build.artifacts_file
   end
 
+  def artifacts_metadata
+    @artifacts_metadata ||= build.artifacts_metadata
+  end
+
   def authorize_download_build_artifacts!
     unless can?(current_user, :download_build_artifacts, @project)
       if current_user.nil?
diff --git a/lib/gitlab/string_path.rb b/lib/gitlab/string_path.rb
index 9ccf54bd62f..3aa6200b572 100644
--- a/lib/gitlab/string_path.rb
+++ b/lib/gitlab/string_path.rb
@@ -34,6 +34,18 @@ module Gitlab
       !directory?
     end
 
+    def has_parent?
+      raise NotImplementedError
+    end
+
+    def parent
+      raise NotImplementedError
+    end
+
+    def directories
+      raise NotImplementedError
+    end
+
     def files
       raise NotImplementedError
     end
-- 
2.30.9