class Ddr::Models::Base
Constants
- SAVE_NOTIFICATION
Public Class Methods
find_by_unique_id(unique_id)
click to toggle source
# File lib/ddr/models/base.rb, line 30 def self.find_by_unique_id(unique_id) if result = where(Ddr::Index::Fields::UNIQUE_ID => unique_id).first result else raise ActiveFedora::ObjectNotFoundError, "#{self} not found having unique id #{unique_id.inspect}." end end
Public Instance Methods
adminMetadata()
click to toggle source
# File lib/ddr/models/base.rb, line 66 def adminMetadata Deprecation.warn(Base, "`adminMetadata` is deprecated; use `admin_metadata` instead.") admin_metadata end
admin_metadata()
click to toggle source
# File lib/ddr/models/base.rb, line 71 def admin_metadata @admin_metadata ||= AdministrativeMetadata.new(self) end
attached_files_having_content()
click to toggle source
# File lib/ddr/models/base.rb, line 147 def attached_files_having_content Hash.new.tap do |h| attached_files.each do |file_id, file| h[file_id] = file if !file.destroyed? && file.has_content? end end end
attached_files_profile()
click to toggle source
# File lib/ddr/models/base.rb, line 129 def attached_files_profile AttachedFilesProfile.new(self) end
check_fixity()
click to toggle source
# File lib/ddr/models/base.rb, line 159 def check_fixity FixityCheckResults.new.tap do |results| attached_files_having_content.each_with_object(results) do |(file_id, file), memo| results[file_id] = !!file.check_fixity end notify_event(:fixity_check, results: results) end end
Also aliased as: fixity_check
copy_admin_policy_or_roles_from(other)
click to toggle source
# File lib/ddr/models/base.rb, line 133 def copy_admin_policy_or_roles_from(other) copy_admin_policy_from(other) || copy_resource_roles_from(other) end
datastreams_to_validate()
click to toggle source
# File lib/ddr/models/base.rb, line 141 def datastreams_to_validate Deprecation.warn(FixityCheckable, "`datastreams_to_validate` is deprecated." \ " Use `attached_files_having_content` instead.") attached_files_having_content end
descMetadata()
click to toggle source
# File lib/ddr/models/base.rb, line 75 def descMetadata Deprecation.warn(Base, "`descMetadata` is deprecated; use `desc_metadata` instead.") desc_metadata end
desc_metadata()
click to toggle source
# File lib/ddr/models/base.rb, line 80 def desc_metadata @desc_metadata ||= DescriptiveMetadata.new(self) end
desc_metadata_terms(*args)
click to toggle source
# File lib/ddr/models/base.rb, line 84 def desc_metadata_terms(*args) return DescriptiveMetadata.unqualified_names.sort if args.empty? arg = args.pop terms = case arg.to_sym when :empty desc_metadata_terms.select { |t| desc_metadata.values(t).empty? } when :present desc_metadata_terms.select { |t| desc_metadata.values(t).present? } when :defined_attributes desc_metadata_terms & MetadataMapping.dc11.unqualified_names when :required desc_metadata_terms(:defined_attributes).select {|t| required? t} when :dcterms MetadataMapping.dc11.unqualified_names + (MetadataMapping.dcterms.unqualified_names - MetadataMapping.dc11.unqualified_names) when :dcterms_elements11 Ddr::Vocab::Vocabulary.term_names(::RDF::DC11) when :duke Ddr::Vocab::Vocabulary.term_names(Ddr::Vocab::DukeTerms) else raise ArgumentError, "Invalid argument: #{arg.inspect}" end if args.empty? terms else terms | desc_metadata_terms(*args) end end
desc_metadata_values(term)
click to toggle source
# File lib/ddr/models/base.rb, line 113 def desc_metadata_values(term) Deprecation.warn(Base, "`desc_metadata_values` is deprecated; use `desc_metadata.values` instead.") desc_metadata.values(term) end
fixity_checks()
click to toggle source
# File lib/ddr/models/base.rb, line 155 def fixity_checks Ddr::Events::FixityCheckEvent.for_object(self) end
has_extracted_text?()
click to toggle source
# File lib/ddr/models/base.rb, line 137 def has_extracted_text? false end
inspect()
click to toggle source
# File lib/ddr/models/base.rb, line 43 def inspect "#<#{model_and_id}, uri: \"#{uri}\">" end
last_fixity_check()
click to toggle source
# File lib/ddr/models/base.rb, line 170 def last_fixity_check fixity_checks.last end
last_fixity_check_on()
click to toggle source
# File lib/ddr/models/base.rb, line 174 def last_fixity_check_on last_fixity_check && last_fixity_check.event_date_time end
last_fixity_check_outcome()
click to toggle source
# File lib/ddr/models/base.rb, line 178 def last_fixity_check_outcome last_fixity_check && last_fixity_check.outcome end
model_and_id()
click to toggle source
Cf. github.com/duke-libraries/ddr-models/issues/586 @see ActiveModel::Conversion def to_key
(key = permanent_id_suffix) ? [key] : super
end
# File lib/ddr/models/base.rb, line 57 def model_and_id "#{self.class} id: #{id.inspect || '[NEW]'}" end
model_pid()
click to toggle source
# File lib/ddr/models/base.rb, line 61 def model_pid Deprecation.warn(Base, "`model_pid` is deprecated; use `model_and_id` instead.") model_and_id end
permanent_id_suffix()
click to toggle source
# File lib/ddr/models/base.rb, line 47 def permanent_id_suffix permanent_id && permanent_id.sub(/\Aark:\/\d+\//, "") end
publishable?()
click to toggle source
# File lib/ddr/models/base.rb, line 182 def publishable? raise NotImplementedError, "Must be implemented by subclasses" end
set_desc_metadata(term_values_hash)
click to toggle source
Update all desc_metadata
terms with values in hash Note that term not having key in hash will be set to nil!
# File lib/ddr/models/base.rb, line 125 def set_desc_metadata(term_values_hash) desc_metadata_terms.each { |t| desc_metadata.set_values(t, term_values_hash[t]) } end
set_desc_metadata_values(term, values)
click to toggle source
# File lib/ddr/models/base.rb, line 118 def set_desc_metadata_values(term, values) Deprecation.warn(Base, "`set_desc_metadata_values` is deprecated; use `desc_metadata.set_values` instead.") desc_metadata.set_values(term, values) end
unique_ids()
click to toggle source
# File lib/ddr/models/base.rb, line 39 def unique_ids [id, permanent_id, permanent_id_suffix].compact end
version_name()
click to toggle source
Override AF::Versionable @example
=> "version.20160205153424.643252000"
# File lib/ddr/models/base.rb, line 189 def version_name "version.#{Time.now.utc.strftime('%Y%m%d%H%M%S.%N')}" end