summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-04-24 09:27:19 -0500
committerDouwe Maan <douwe@selenight.nl>2017-04-27 12:23:26 -0500
commita2f4650fc7e5407bbed1f73771306d12823f47da (patch)
treeb7b26d75f4f5b8286df07a4240c3dcfcb0a6fea4
parentec19703a44aaf427de2b83cec31b72be9a024a42 (diff)
downloadgitlab-ce-a2f4650fc7e5407bbed1f73771306d12823f47da.tar.gz
Add BlobViewer::Base#binary? method
-rw-r--r--app/models/blob.rb44
-rw-r--r--app/models/blob_viewer/base.rb8
2 files changed, 30 insertions, 22 deletions
diff --git a/app/models/blob.rb b/app/models/blob.rb
index dedf60ca14a..2225de631bf 100644
--- a/app/models/blob.rb
+++ b/app/models/blob.rb
@@ -70,7 +70,11 @@ class Blob < SimpleDelegator
def raw_binary?
if valid_lfs_pointer?
- !rich_viewer&.text_based?
+ if rich_viewer
+ rich_viewer.binary?
+ else
+ true
+ end
else
binary?
end
@@ -96,22 +100,6 @@ class Blob < SimpleDelegator
lfs_pointer? && !project.lfs_enabled?
end
- def simple_viewer_class
- if empty?
- BlobViewer::Empty
- elsif raw_binary?
- BlobViewer::Download
- else # text
- BlobViewer::Text
- end
- end
-
- def rich_viewer_class
- return if invalid_lfs_pointer? || empty?
-
- rich_viewers_classes.find { |viewer_class| viewer_class.can_render?(self) }
- end
-
def simple_viewer
@simple_viewer ||= simple_viewer_class.new(self)
end
@@ -123,7 +111,7 @@ class Blob < SimpleDelegator
end
def rendered_as_text?(ignore_errors: true)
- simple_viewer.is_a?(BlobViewer::Text) && (ignore_errors || simple_viewer.render_error.nil?)
+ simple_viewer.text? && (ignore_errors || simple_viewer.render_error.nil?)
end
def show_viewer_switcher?
@@ -137,13 +125,29 @@ class Blob < SimpleDelegator
private
+ def simple_viewer_class
+ if empty?
+ BlobViewer::Empty
+ elsif raw_binary?
+ BlobViewer::Download
+ else # text
+ BlobViewer::Text
+ end
+ end
+
def rich_viewers_classes
if valid_lfs_pointer?
RICH_VIEWERS
elsif binary?
- RICH_VIEWERS.reject(&:text_based?)
+ RICH_VIEWERS.select(&:binary?)
else # text
- RICH_VIEWERS.select(&:text_based?)
+ 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) }
+ end
end
diff --git a/app/models/blob_viewer/base.rb b/app/models/blob_viewer/base.rb
index 714a063933b..ae90d977f03 100644
--- a/app/models/blob_viewer/base.rb
+++ b/app/models/blob_viewer/base.rb
@@ -2,7 +2,7 @@ module BlobViewer
class Base
class_attribute :partial_name, :type, :extensions, :client_side, :text_based, :switcher_icon, :switcher_title, :max_size, :absolute_max_size
- delegate :partial_path, :rich?, :simple?, :client_side?, :server_side?, :text_based?, to: :class
+ delegate :partial_path, :rich?, :simple?, :client_side?, :server_side?, :text?, :binary?, to: :class
attr_reader :blob
attr_accessor :override_max_size
@@ -31,10 +31,14 @@ module BlobViewer
!client_side?
end
- def self.text_based?
+ def self.text?
text_based
end
+ def self.binary?
+ !text?
+ end
+
def self.can_render?(blob)
!extensions || extensions.include?(blob.extension)
end