Sha256: 4d4c29be4a23b8978e02fd7f402b0ceab00a4ef09ec1de5c842bd8d3cae6f6d9

Contents?: true

Size: 1.68 KB

Versions: 4

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true
require 'active_support/core_ext/hash/compact'
require 'video_embed'

module Dato
  module Local
    module FieldType
      class Video
        attr_reader :url
        attr_reader :thumbnail_url
        attr_reader :title
        attr_reader :width
        attr_reader :height
        attr_reader :provider
        attr_reader :provider_url
        attr_reader :provider_uid

        def self.parse(value, _repo)
          value && new(
            value[:url],
            value[:thumbnail_url],
            value[:title],
            value[:width],
            value[:height],
            value[:provider],
            value[:provider_url],
            value[:provider_uid]
          )
        end

        def initialize(
          url,
          thumbnail_url,
          title,
          width,
          height,
          provider,
          provider_url,
          provider_uid
        )
          @url            = url
          @thumbnail_url  = thumbnail_url
          @title          = title
          @width          = width
          @height         = height
          @provider       = provider
          @provider_url   = provider_url
          @provider_uid   = provider_uid
        end

        def iframe_embed(width = nil, height = nil)
          VideoEmbed.embed(url, { width: width, height: height }.compact)
        end

        def to_hash(*_args)
          {
            url: url,
            thumbnail_url: thumbnail_url,
            title: title,
            width: width,
            height: height,
            provider: provider,
            provider_url: provider_url,
            provider_uid: provider_uid
          }
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dato-0.3.9.1 lib/dato/local/field_type/video.rb
dato-0.3.10 lib/dato/local/field_type/video.rb
dato-0.3.9 lib/dato/local/field_type/video.rb
dato-0.3.8 lib/dato/local/field_type/video.rb