Class: Spider::Model::IntegratedElement

Inherits:
Element show all
Defined in:
lib/spiderfw/model/integrated_element.rb

Instance Attribute Summary collapse

Attributes inherited from Element

#name

Instance Method Summary collapse

Methods inherited from Element

#association, #association_type, #autogenerated?, #condition, #embedded?, #extended?, #has_single_reverse?, #hidden?, #inline?, #integrated_from, #integrated_from_element, #junction?, #label, #lazy, #lazy?, #lazy_groups, #mapper, #model, #model?, #multiple?, #owned?, #primary_key?, #read_only?, #required?, #reverse, #storage, #to_s, #unique?

Constructor Details

#initialize(name, owner, integrated_element, integrated_element_element, attributes = {}) ⇒ IntegratedElement

Returns a new instance of IntegratedElement.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/spiderfw/model/integrated_element.rb', line 6

def initialize(name, owner, integrated_element, integrated_element_element, attributes={})
    @name = name
    @owner = owner
    @integrated_element = integrated_element
    @integrated_element_element = integrated_element_element
    @attributes = ({
        :integrated => true,
        :integrated_from => @owner.elements[@integrated_element],
        :integrated_from_element => @integrated_element_element
    }).merge(attributes)
end

Instance Attribute Details

#ownerObject

Returns the value of attribute owner.



4
5
6
# File 'lib/spiderfw/model/integrated_element.rb', line 4

def owner
  @owner
end

Instance Method Details

#attributesObject



30
31
32
# File 'lib/spiderfw/model/integrated_element.rb', line 30

def attributes
    target_element.attributes.merge(@attributes)
end

#cloneObject



35
36
37
# File 'lib/spiderfw/model/integrated_element.rb', line 35

def clone
    self.class.new(@name, @owner, @integrated_element, @integrated_element_element, @attributes.clone)
end

#integrated?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/spiderfw/model/integrated_element.rb', line 18

def integrated?
    true
end

#target_elementObject



22
23
24
# File 'lib/spiderfw/model/integrated_element.rb', line 22

def target_element
    @target_element ||= @owner.elements[@integrated_element].type.elements[@integrated_element_element]
end

#typeObject



26
27
28
# File 'lib/spiderfw/model/integrated_element.rb', line 26

def type
    target_element.type
end