Class: ActiveFedora::Associations::Builder::Contains
Overview
Constant Summary
Constants inherited
from Association
Association::VALID_OPTIONS
Class Method Summary
collapse
define_accessors, define_constructors
Methods inherited from Association
add_destroy_callbacks, better_name, build, build_scope, check_dependent_options, define_accessors, define_callbacks, define_extensions, define_validations, define_writers, predicate, translate_property_to_predicate, valid_dependent_options, wrap_scope
Class Method Details
.create_reflection(model, name, scope, options, extension = nil) ⇒ Object
11
12
13
14
|
# File 'lib/active_fedora/associations/builder/contains.rb', line 11
def self.create_reflection(model, name, scope, options, extension = nil)
options[:class_name] = 'ActiveFedora::File' if options[:class_name].blank?
super(model, name, scope, options, extension)
end
|
.define_readers(mixin, name) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/active_fedora/associations/builder/contains.rb', line 22
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
|
.macro ⇒ Object
3
4
5
|
# File 'lib/active_fedora/associations/builder/contains.rb', line 3
def self.macro
:contains
end
|
.valid_options(options) ⇒ Object
7
8
9
|
# File 'lib/active_fedora/associations/builder/contains.rb', line 7
def self.valid_options(options)
super + [:autocreate, :block]
end
|
.validate_options(options) ⇒ Object
16
17
18
19
20
|
# File 'lib/active_fedora/associations/builder/contains.rb', line 16
def self.validate_options(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
|