Sha256: 23b8f7be96a8418a9ec20f2c859a96b9c2bc758e628eecc2f550dfed0db555a0

Contents?: true

Size: 873 Bytes

Versions: 8

Compression:

Stored size: 873 Bytes

Contents

require 'link_thumbnailer/model'
require 'link_thumbnailer/video_parser'

module LinkThumbnailer
  module Models
    class Video < ::LinkThumbnailer::Model

      attr_reader :src, :size, :duration, :provider, :id, :embed_code

      def initialize(src)
        @src        = src
        @id         = parser.id
        @size       = parser.size
        @duration   = parser.duration
        @provider   = parser.provider
        @embed_code = parser.embed_code
      end

      def to_s
        src.to_s
      end

      def as_json(*)
        {
          id:         id,
          src:        src.to_s,
          size:       size,
          duration:   duration,
          provider:   provider,
          embed_code: embed_code
        }
      end

      private

      def parser
        @parser ||= ::LinkThumbnailer::VideoParser.new(self)
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
link_thumbnailer-2.4.0 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.3.2 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.3.1 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.3.0 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.2.3 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.2.2 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.2.1 lib/link_thumbnailer/models/video.rb
link_thumbnailer-2.2.0 lib/link_thumbnailer/models/video.rb