summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-05-08 18:52:05 -0500
committerDouwe Maan <douwe@selenight.nl>2017-05-10 08:21:58 -0500
commit00fc9f260706cfd6d6f4261eea24eb3ff455b3e0 (patch)
treec09dc1e2fccd2a4b5e0cce613465ec367133a5dd /app/models
parentecc6cc8be75b5c66fdf7f5595b71aabf9366a5e1 (diff)
downloadgitlab-ce-00fc9f260706cfd6d6f4261eea24eb3ff455b3e0.tar.gz
Load tree readme asynchronouslydm-async-tree-readme
Diffstat (limited to 'app/models')
-rw-r--r--app/models/readme_blob.rb13
-rw-r--r--app/models/repository.rb2
-rw-r--r--app/models/tree.rb5
3 files changed, 15 insertions, 5 deletions
diff --git a/app/models/readme_blob.rb b/app/models/readme_blob.rb
new file mode 100644
index 00000000000..1863a08f1de
--- /dev/null
+++ b/app/models/readme_blob.rb
@@ -0,0 +1,13 @@
+class ReadmeBlob < SimpleDelegator
+ attr_reader :repository
+
+ def initialize(blob, repository)
+ @repository = repository
+
+ super(blob)
+ end
+
+ def rendered_markup
+ repository.rendered_readme
+ end
+end
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 0c797dd5814..0c36a9e8762 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -518,7 +518,7 @@ class Repository
def readme
if head = tree(:head)
- head.readme
+ ReadmeBlob.new(head.readme, self)
end
end
diff --git a/app/models/tree.rb b/app/models/tree.rb
index fe148b0ec65..c89b8eca9be 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -40,10 +40,7 @@ class Tree
readme_path = path == '/' ? readme_tree.name : File.join(path, readme_tree.name)
- git_repo = repository.raw_repository
- @readme = Gitlab::Git::Blob.find(git_repo, sha, readme_path)
- @readme.load_all_data!(git_repo)
- @readme
+ @readme = repository.blob_at(sha, readme_path)
end
def trees