diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-04-24 16:27:43 -0500 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-04-27 12:23:26 -0500 |
commit | b73b16798dd0fe402df42a1e706f3b1034c22270 (patch) | |
tree | 4e57f7dad65d7a530d32481e6f6aa5810dc901db /app | |
parent | 0b3ff9c80494307746f79c05f85cfbedc0efe3f6 (diff) | |
download | gitlab-ce-b73b16798dd0fe402df42a1e706f3b1034c22270.tar.gz |
Small code tweaks
Diffstat (limited to 'app')
-rw-r--r-- | app/models/blob.rb | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/app/models/blob.rb b/app/models/blob.rb index 2225de631bf..0df220b4983 100644 --- a/app/models/blob.rb +++ b/app/models/blob.rb @@ -60,6 +60,9 @@ class Blob < SimpleDelegator size && truncated? end + # Returns the size of the file that this blob represents. If this blob is an + # LFS pointer, this is the size of the file stored in LFS. Otherwise, this is + # the size of the blob itself. def raw_size if valid_lfs_pointer? lfs_size @@ -68,6 +71,10 @@ class Blob < SimpleDelegator end end + # Returns whether the file that this blob represents is binary. If this blob is + # an LFS pointer, we assume the file stored in LFS is binary, unless a + # text-based rich blob viewer matched on the file's extension. Otherwise, this + # depends on the type of the blob itself. def raw_binary? if valid_lfs_pointer? if rich_viewer @@ -107,7 +114,7 @@ class Blob < SimpleDelegator def rich_viewer return @rich_viewer if defined?(@rich_viewer) - @rich_viewer ||= rich_viewer_class&.new(self) + @rich_viewer = rich_viewer_class&.new(self) end def rendered_as_text?(ignore_errors: true) @@ -135,19 +142,18 @@ class Blob < SimpleDelegator end end - def rich_viewers_classes - if valid_lfs_pointer? - RICH_VIEWERS - elsif binary? - RICH_VIEWERS.select(&:binary?) - else # text - RICH_VIEWERS.select(&:text?) - end - end - def rich_viewer_class return if invalid_lfs_pointer? || empty? - rich_viewers_classes.find { |viewer_class| viewer_class.can_render?(self) } + classes = + if valid_lfs_pointer? + RICH_VIEWERS + elsif binary? + RICH_VIEWERS.select(&:binary?) + else # text + RICH_VIEWERS.select(&:text?) + end + + classes.find { |viewer_class| viewer_class.can_render?(self) } end end |