Commit 29ea8d09 authored by Rémy Coutable's avatar Rémy Coutable

Remove duplication, useless rescue, and avoid using ActionView

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 356b2d2b
# 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?
......
......@@ -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]
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment