gottfrois/link_thumbnailer

View on GitHub
lib/link_thumbnailer/video_parser.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'video_info'

module LinkThumbnailer
  class VideoParser

    attr_reader :parser

    def initialize(video)
      @parser = ::VideoInfo.new(video.src.dup.to_s)
    rescue ::VideoInfo::UrlError
      @parser = nil
    end

    def id
      parser.video_id
    rescue NoMethodError
      nil
    end

    def size
      [parser.width, parser.height]
    rescue NoMethodError, ::OpenURI::HTTPError
      []
    end

    def duration
      parser.duration
    rescue NoMethodError, ::OpenURI::HTTPError
      nil
    end

    def provider
      parser.provider
    rescue NoMethodError, ::OpenURI::HTTPError
      nil
    end

    def embed_code
      parser.embed_code
    rescue NoMethodError, ::OpenURI::HTTPError
      nil
    end

  end
end