diff options
author | Rémy Coutable <remy@rymai.me> | 2016-07-08 18:55:49 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-07-19 18:51:09 +0200 |
commit | 29ea8d09e05d749f0b6a784311aea942f7d2d0f1 (patch) | |
tree | 9326f19dc1a67b3345f2c128f0b1118760fdb094 | |
parent | 356b2d2bd782289b6130a22531523562514aa7f6 (diff) | |
download | gitlab-ce-29ea8d09e05d749f0b6a784311aea942f7d2d0f1.tar.gz |
Remove duplication, useless rescue, and avoid using ActionView
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | app/uploaders/uploader_helper.rb | 29 | ||||
-rw-r--r-- | config/initializers/mime_types.rb | 6 | ||||
-rw-r--r-- | lib/banzai/filter/video_link_filter.rb | 23 |
3 files changed, 27 insertions, 31 deletions
diff --git a/app/uploaders/uploader_helper.rb b/app/uploaders/uploader_helper.rb index 6d510fe7dde..703f7820913 100644 --- a/app/uploaders/uploader_helper.rb +++ b/app/uploaders/uploader_helper.rb @@ -1,18 +1,19 @@ # Extra methods for uploader module UploaderHelper - IMAGE_EXT = %w(png jpg jpeg gif bmp tiff) - VIDEO_EXT = %w(mov mp4 ogg webm flv) + IMAGE_EXT = %w[png jpg jpeg gif bmp tiff] + # We recommend using the .mp4 format over .mov. Videos in .mov format can + # still be used but you really need to make sure they are served with the + # proper MIME type video/mp4 and not video/quicktime or your videos won’t play + # on IE ≥ 9. + # http://archive.sublimevideo.info/20150912/docs.sublimevideo.net/troubleshooting.html + VIDEO_EXT = %w[mp4 m4v mov webm ogv] def image? extension_match?(IMAGE_EXT) - rescue - false end def video? extension_match?(VIDEO_EXT) - rescue - false end def image_or_video? @@ -20,13 +21,15 @@ module UploaderHelper end def extension_match?(extensions) - if file.respond_to?(:extension) - extensions.include?(file.extension.downcase) - else - # Not all CarrierWave storages respond to :extension - ext = file.path.split('.').last.downcase - extensions.include?(ext) - end + extension = + if file.respond_to?(:extension) + file.extension + else + # Not all CarrierWave storages respond to :extension + File.extname(file.path).delete('.') + end + + extensions.include?(extension.downcase) end def file_storage? diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb index 4c6de622f17..cd449b65818 100644 --- a/config/initializers/mime_types.rb +++ b/config/initializers/mime_types.rb @@ -9,8 +9,6 @@ Mime::Type.register_alias "text/plain", :patch Mime::Type.register_alias "text/html", :markdown Mime::Type.register_alias "text/html", :md +Mime::Type.register "video/mp4", :mp4, [], [:m4v, :mov] Mime::Type.register "video/webm", :webm -Mime::Type.register "video/ogg", :ogg -Mime::Type.register "video/ogg", :ogv -Mime::Type.register "video/mp4", :mp4 -Mime::Type.register "video/mp4", :m4v +Mime::Type.register "video/ogg", :ogv, [], [:ogg] diff --git a/lib/banzai/filter/video_link_filter.rb b/lib/banzai/filter/video_link_filter.rb index 0ae885708f7..a8316e72a68 100644 --- a/lib/banzai/filter/video_link_filter.rb +++ b/lib/banzai/filter/video_link_filter.rb @@ -7,13 +7,9 @@ module Banzai include ActionView::Helpers::TagHelper include ActionView::Context - EXTENSIONS = %w(.mov .mp4 .ogg .webm .flv) - def call doc.search('img').each do |el| - if video?(el) - el.replace video_node(el) - end + el.replace(video_tag(doc, el)) if video?(el) end doc @@ -22,19 +18,18 @@ module Banzai private def video?(element) - EXTENSIONS.include? File.extname(element.attribute('src').value) + extension = File.extname(element.attribute('src').value).delete('.') + UploaderHelper::VIDEO_EXT.include?(extension) end # Return a video tag Nokogiri node # - def video_node(element) - vtag = content_tag(:video, "", { - src: element.attribute('src').value, - class: 'video-js', preload: 'auto', - controls: true - }) - - Nokogiri::HTML::DocumentFragment.parse(vtag) + def video_node(doc, element) + doc.document.create_element( + 'video', + src: element.attribute('src').value, + class: 'video-js', + controls: true) end end |