Sha256: bf3ca7f8beee0538e2c51924c023ea94da103cef983ccd2f1a0f8b443d64e841

Contents?: true

Size: 722 Bytes

Versions: 39

Compression:

Stored size: 722 Bytes

Contents

# frozen_string_literal: true

module LinkedRails
  class MediaObject < Resource
    attr_accessor :content_type, :description, :filename, :position_y, :uploaded_at
    attr_writer :type

    %i[content_url embed_url thumbnail_url url cover_url].each do |attr|
      attr_reader attr

      define_method "#{attr}=" do |value|
        instance_variable_set("@#{attr}", value.is_a?(RDF::URI) ? value : RDF::URI(value))
      end
    end

    def rdf_type
      case type&.to_sym
      when :image
        Vocab.schema.ImageObject
      when :video
        Vocab.schema.VideoObject
      else
        Vocab.schema.MediaObject
      end
    end

    def type
      @type ||= content_type&.split('/')&.first
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
linked_rails-0.0.4.pre.g3aeec2263 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gacd5f04d4 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gb0b6aea40 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g792a1b887 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g58af47992 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g0ec6e30ca app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g9e3bcac55 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g222bfeeca app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gb254a2893 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g2c6c26e86 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.ge881247c3 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gfabf7e9f5 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g8c045be3a app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g8d7195543 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gfe77aae19 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.gc866c1806 app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g3e8f5731a app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g58e27be7f app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g96885856b app/models/linked_rails/media_object.rb
linked_rails-0.0.4.pre.g1faca9643 app/models/linked_rails/media_object.rb