Module: ArcWeld::Relationships::HasChild
- Defined in:
- lib/arc_weld/relationships/has_child.rb
Instance Method Summary collapse
- #add_child(child) ⇒ Object
- #add_children(*resources) ⇒ Object
- #contains_resource_type ⇒ Object
- #has_child_relationship ⇒ Object
- #related_has_child_references ⇒ Object
- #set_attributes_from(child) ⇒ Object
Instance Method Details
#add_child(child) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/arc_weld/relationships/has_child.rb', line 18 def add_child(child) unless has_child.include?(child) if child.resource_type != 'Group' set_attributes_from(child) if (child.resource_class_id != self.containedResourceType) fail RuntimeError, 'child resource does not match contained types' end end self.has_child.push(child) child.parent_ref=self.ref end end |
#add_children(*resources) ⇒ Object
31 32 33 |
# File 'lib/arc_weld/relationships/has_child.rb', line 31 def add_children(*resources) resources.each {|res| add_child(res) } end |
#contains_resource_type ⇒ Object
35 36 37 38 39 |
# File 'lib/arc_weld/relationships/has_child.rb', line 35 def contains_resource_type unless self.has_child.empty? has_child.first.resource_type end end |
#has_child_relationship ⇒ Object
8 9 10 |
# File 'lib/arc_weld/relationships/has_child.rb', line 8 def has_child_relationship {'hasChild' => { 'list!' => }} end |
#related_has_child_references ⇒ Object
4 5 6 |
# File 'lib/arc_weld/relationships/has_child.rb', line 4 def has_child.map {|res| res.ref.render }.join end |
#set_attributes_from(child) ⇒ Object
12 13 14 15 16 |
# File 'lib/arc_weld/relationships/has_child.rb', line 12 def set_attributes_from(child) self.containedResourceType=child.resource_class_id if containedResourceType.nil? self.parent_ref=child.class.toplevel if parent_ref.nil? end |