Sha256: 2fd9e84c6119fa9d999a70b6913a4d2f3eb5d23148a4ab4aa1c97c21d8e72b81

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

require File.expand_path('../../../validators/future_date_validator', __FILE__)
module CurationConcern
  module Embargoable
    module VisibilityOverride
      def set_visibility(value)
        if value == AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO
          super(AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC)
        else
          super(value)
        end
      end
    end
    include VisibilityOverride
    extend ActiveSupport::Concern

    included do
      validates :embargo_release_date, future_date: true
      before_save :write_embargo_release_date, prepend: true
    end


    def write_embargo_release_date
      if defined?(@embargo_release_date)
        embargoable_persistence_container.embargo_release_date = embargo_release_date
      end
      true
    end
    protected :write_embargo_release_date

    def embargo_release_date=(value)
      @embargo_release_date = begin
        value.to_date
      rescue NoMethodError
        value
      end
    end

    def embargo_release_date
      @embargo_release_date || embargoable_persistence_container.embargo_release_date
    end

    if ! included_modules.include?('Morphine')
      require 'morphine'
      include Morphine
    end
    register :embargoable_persistence_container do
      if ! self.class.included_modules.include?('Sufia::GenericFile::Permissions')
        self.class.send(:include, Sufia::GenericFile::Permissions)
      end
      self.datastreams["rightsMetadata"]
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
curate-0.2.0 app/repository_models/curation_concern/embargoable.rb