Sha256: 67316791db04b977eb12611ed1754ea9484326d883d423dd6cc573066c5883ab
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
module ActiveFedora::Associations::Builder class Contains < SingularAssociation #:nodoc: def self.macro :contains end def self.valid_options(options) super + [:autocreate, :block] end def initialize(model, name, options) super options[:class_name] = 'ActiveFedora::File' if options[:class_name].blank? end def validate_options super return unless options[:class_name] && !options[:class_name].is_a?(String) raise ArgumentError, ":class_name must be a string for contains '#{name}'" end def self.define_readers(mixin, name) mixin.send(:define_method, name) do |*params| association(name).reader(*params).tap do |file| set_uri = uri.is_a?(RDF::URI) ? uri.value.present? : uri.present? if set_uri file_uri = "#{uri}/#{name}" begin file.uri = file_uri rescue ActiveFedora::AlreadyPersistedError end end if file.respond_to?(:exists!) file.exists! if contains_assertions.include?(file_uri) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active-fedora-9.10.0.pre2 | lib/active_fedora/associations/builder/contains.rb |
active-fedora-9.10.0.pre1 | lib/active_fedora/associations/builder/contains.rb |