Sha256: 0b791bdc2b9c06d59bf5aa4b1d10fe528839b815e842fb747334f8f4fa751f01

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

class LinkedResource < ActiveFedora::Base
  include Hydra::AccessControls::Permissions
  include Curate::ActiveModelAdaptor
  include Sufia::ModelMethods

  has_file_datastream "content", control_group: 'E'
  belongs_to :batch, property: :is_part_of, class_name: 'ActiveFedora::Base'
  has_metadata "descMetadata", type: GenericFileRdfDatastream

  delegate_to :descMetadata, [:date_uploaded, :date_modified, :creator], multiple: false

  has_metadata 'properties', type: Curate::PropertiesDatastream
  delegate_to :properties, [:relative_path, :depositor, :owner], multiple: false

  validates :batch, presence: true
  validates :url, presence: true

  class_attribute :human_readable_short_description
  self.human_readable_short_description = "An arbitrary single file."
  include ActionView::Helpers::SanitizeHelper

  def url= url
    u = URI::Parser.new.parse(url)
    return unless [URI::HTTP, URI::HTTPS, URI::FTP].include?(u.class)
    content.dsLocation = u.to_s
  end

  def url
    content.dsLocation
  end

  def to_s
    url
  end

  def human_readable_type
    self.class.to_s.demodulize.titleize
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
curate-0.5.1 app/repository_models/linked_resource.rb
curate-0.5.0 app/repository_models/linked_resource.rb
curate-0.4.2 app/repository_models/linked_resource.rb