Sha256: 80d3b1e64eebfe8c55603be8e86ec5d9d12f494323af96522836eb8443552b93

Contents?: true

Size: 1.67 KB

Versions: 3

Compression:

Stored size: 1.67 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
          {
            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

3 entries across 3 versions & 1 rubygems

Version Path
dato-0.3.6 lib/dato/local/field_type/video.rb
dato-0.3.5 lib/dato/local/field_type/video.rb
dato-0.3.3 lib/dato/local/field_type/video.rb