Module: FRBR::Item
Instance Attribute Summary collapse
Attributes included from Group3
#related_subjects, #subject_of
Attributes included from Group1
#relationships
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Group3
#add_related_subject, #add_subject_of, check_frbr_validity, #remove_related_subject, #remove_subject_of
Methods included from Group1
check_frbr_validity, #related
Instance Attribute Details
#exemplar_of ⇒ Object
Also known as:
manifestation
Returns the value of attribute exemplar_of.
5
6
7
|
# File 'lib/frbr/item.rb', line 5
def exemplar_of
@exemplar_of
end
|
Returns the value of attribute owners.
5
6
7
|
# File 'lib/frbr/item.rb', line 5
def owners
@owners
end
|
Class Method Details
.valid_relationships ⇒ Object
65
66
67
|
# File 'lib/frbr/item.rb', line 65
def self.valid_relationships
{:reconfiguration=>:reconfiguration_of, :accompanied_by=>:accompanies, :described_in=>:describes, :contains=>:contained_in, :reproduction=>:reproduction_of, :related=>:related}
end
|
Instance Method Details
#add_owner(owner) ⇒ Object
43
44
45
46
47
48
|
# File 'lib/frbr/item.rb', line 43
def add_owner(owner)
raise ArgumentError, "Owner must be a Group 2 entity" unless owner.is_a?(FRBR::Group2)
@owners ||= []
@owners << owner unless @owners.index(owner)
owner.add_ownership(self) unless owner.owner_of?(self)
end
|
55
56
57
58
|
# File 'lib/frbr/item.rb', line 55
def add_related(expression)
(action, relationship) = this_method.split("_")
self.add_relationship_to_entity(expression, relationship.to_sym, FRBR::Item, true)
end
|
#clear_exemplar_of ⇒ Object
Also known as:
clear_item_of
27
28
29
30
31
32
33
34
|
# File 'lib/frbr/item.rb', line 27
def clear_exemplar_of
if @exemplar_of && !@exemplar_of.nil?
if @exemplar_of.exemplars && @exemplar_of.exemplars.index(self)
@exemplar_of.remove_exemplar(self)
end
@exemplar_of = nil
end
end
|
#equivalents ⇒ Object
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/frbr/item.rb', line 8
def equivalents
equivalents = []
if self.exemplar_of
self.exemplar_of.exemplars.each do | item |
next if item == self
equivalents << item
end
end
equivalents
end
|
#has_owner?(agent) ⇒ Boolean
36
37
38
39
|
# File 'lib/frbr/item.rb', line 36
def has_owner?(agent)
return true if @owners && @owners.index(agent)
return false
end
|
#is_exemplar_of(manifestation) ⇒ Object
Also known as:
is_item_of
19
20
21
22
23
|
# File 'lib/frbr/item.rb', line 19
def is_exemplar_of(manifestation)
raise ArgumentError, "Must be the exemplar of a manifestation" unless manifestation.is_a?(FRBR::Manifestation)
@exemplar_of = manifestation
manifestation.add_exemplar(self) unless manifestation.exemplars && manifestation.exemplars.index(self)
end
|
#remove_owner(owner) ⇒ Object
50
51
52
53
|
# File 'lib/frbr/item.rb', line 50
def remove_owner(owner)
@owners.delete(owner)
owner.remove_ownership(self) if owner.owner_of?(self)
end
|
60
61
62
63
|
# File 'lib/frbr/item.rb', line 60
def remove_related(expression)
(action, relationship) = this_method.split("_")
self.remove_relationship_from_entity(expression, relationship.to_sym, FRBR::Item, true)
end
|