diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb index 60f9d4e..dd7d327 100644 --- a/app/helpers/gitlab_markdown_helper.rb +++ b/app/helpers/gitlab_markdown_helper.rb @@ -166,18 +166,18 @@ module GitlabMarkdownHelper def file_exists?(path) return false if path.nil? || path.empty? - File.exists?(path_on_fs(path)) + return @repository.blob_at(current_ref, path).present? || Tree.new(@repository, current_ref, path).entries.any? end # Check if the path is pointing to a directory(tree) or a file(blob) # eg. doc/api is directory and doc/README.md is file def local_path(path) - File.directory?(path_on_fs(path)) ? "tree" : "blob" + return "tree" if Tree.new(@repository, current_ref, path).entries.any? + return "blob" end - # Path to the file in the satellites repository on the filesystem - def path_on_fs(path) - [@path_to_satellite, path].join("/") + def current_ref + @commit.nil? ? "master" : @commit.id end # We will assume that if no ref exists we can point to master diff --git a/spec/helpers/gitlab_markdown_helper_spec.rb b/spec/helpers/gitlab_markdown_helper_spec.rb index 427ac0f..59abfb3 100644 --- a/spec/helpers/gitlab_markdown_helper_spec.rb +++ b/spec/helpers/gitlab_markdown_helper_spec.rb @@ -16,6 +16,7 @@ describe GitlabMarkdownHelper do before do # Helper expects a @project instance variable @project = project + @repository = project.repository end describe "#gfm" do -- libgit2 0.21.2