Sha256: 66fabde349431ee72cfe7a08d356b45f355c8948bc0e6ab564441d6f61a9047d

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

module CurationConcern
  class GenericFileActor < CurationConcern::BaseActor

    def create
      super && update_file
    end

    def update
      super && update_file
    end

    def rollback
      update_version
    end

    protected
    def update_file
      file = attributes.delete(:file)
      title = attributes[:title]
      title ||= file.original_filename if file
      curation_concern.label = title
      if file
        CurationConcern.attach_file(curation_concern, user, file)
      else
        true
      end
    end

    def update_version
      version_to_revert = attributes.delete(:version)
      return true if version_to_revert.blank?
      return true if version_to_revert.to_s ==  curation_concern.current_version_id

      revision = curation_concern.content.get_version(version_to_revert)
      mime_type = revision.mimeType.empty? ? "application/octet-stream" : revision.mimeType
      options = { label: revision.label, mimeType: mime_type, dsid: 'content' }
      curation_concern.add_file_datastream(revision.content, options)
      curation_concern.record_version_committer(user)
      curation_concern.save
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
curate-0.6.6 app/services/curation_concern/generic_file_actor.rb
curate-0.6.5 app/services/curation_concern/generic_file_actor.rb
curate-0.6.4 app/services/curation_concern/generic_file_actor.rb
curate-0.6.3 app/services/curation_concern/generic_file_actor.rb
curate-0.6.1 app/services/curation_concern/generic_file_actor.rb
curate-0.6.0 app/services/curation_concern/generic_file_actor.rb
curate-0.5.6 app/services/curation_concern/generic_file_actor.rb
curate-0.5.5 app/services/curation_concern/generic_file_actor.rb
curate-0.5.4 app/services/curation_concern/generic_file_actor.rb
curate-0.5.2 app/services/curation_concern/generic_file_actor.rb
curate-0.5.1 app/services/curation_concern/generic_file_actor.rb
curate-0.5.0 app/services/curation_concern/generic_file_actor.rb
curate-0.4.2 app/services/curation_concern/generic_file_actor.rb