summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-04-24 16:27:43 -0500
committerDouwe Maan <douwe@selenight.nl>2017-04-27 12:23:26 -0500
commitb73b16798dd0fe402df42a1e706f3b1034c22270 (patch)
tree4e57f7dad65d7a530d32481e6f6aa5810dc901db /app
parent0b3ff9c80494307746f79c05f85cfbedc0efe3f6 (diff)
downloadgitlab-ce-b73b16798dd0fe402df42a1e706f3b1034c22270.tar.gz
Small code tweaks
Diffstat (limited to 'app')
-rw-r--r--app/models/blob.rb30
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