Sha256: b636fbd5909b3b1ffa97b166d35e81d52dc47006d5c6c5a5e042e4a08d6696c7

Contents?: true

Size: 782 Bytes

Versions: 2

Compression:

Stored size: 782 Bytes

Contents

# 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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
link_thumbnailer-3.4.0 lib/link_thumbnailer/video_parser.rb
link_thumbnailer-3.3.2 lib/link_thumbnailer/video_parser.rb