Module: IEgrip::ElementChild

Includes:
Retry
Included in:
Document, HTMLElement
Defined in:
lib/iegrip.rb

Constant Summary

Constants included from Retry

Retry::RETRY_INTERVAL

Instance Method Summary collapse

Methods included from Retry

#retryCheck, #retryGetTarget

Instance Method Details

#childElementsObject



126
127
128
129
130
131
# File 'lib/iegrip.rb', line 126

def childElements
  retryGetTarget {
    raw_childNodes = @raw_object.childNodes
    raw_childNodes ? HTMLElementCollection.new(raw_childNodes, @ie_obj) : nil
  }
end

#childNodesObject



119
120
121
122
123
124
# File 'lib/iegrip.rb', line 119

def childNodes
  retryGetTarget {
    raw_childNodes = @raw_object.childNodes
    raw_childNodes ? NodeList.new(raw_childNodes, @ie_obj) : nil
  }
end

#contains(node) ⇒ Object



174
175
176
# File 'lib/iegrip.rb', line 174

def contains(node)
  retryCheck { @raw_object.contains(toRaw(node)) }
end

#firstChildObject



147
148
149
150
151
152
# File 'lib/iegrip.rb', line 147

def firstChild
  retryGetTarget {
    raw_node = @raw_object.firstChild()
    raw_node ? switch_node_and_element(raw_node) : nil
  }
end

#hasChildElementsObject



166
167
168
169
170
171
172
# File 'lib/iegrip.rb', line 166

def hasChildElements()
  chileNodes = retryGetTarget {@raw_object.childNodes}
  chileNodes.each {|subnode|
    return true if (subnode.nodeType != 3) and (subnode.nodeType != 8)
  }
  false
end

#hasChildNodesObject



161
162
163
164
# File 'lib/iegrip.rb', line 161

def hasChildNodes()
  chileNodes = retryGetTarget {@raw_object.childNodes}
  chileNodes.length > 0
end

#isEqualNode(node) ⇒ Object



178
179
180
# File 'lib/iegrip.rb', line 178

def isEqualNode(node)
  retryCheck { @raw_object.isEqualNode(toRaw(node)) }
end

#lastChildObject



154
155
156
157
158
159
# File 'lib/iegrip.rb', line 154

def lastChild
  retryGetTarget {
    raw_node = @raw_object.lastChild()
    raw_node ? switch_node_and_element(raw_node) : nil
  }
end

#nextSiblingObject



140
141
142
143
144
145
# File 'lib/iegrip.rb', line 140

def nextSibling
  retryGetTarget {
    raw_node = @raw_object.nextSibling()
    raw_node ? switch_node_and_element(raw_node) : nil
  }
end

#previousSiblingObject



133
134
135
136
137
138
# File 'lib/iegrip.rb', line 133

def previousSibling
  retryGetTarget {
    raw_node = @raw_object.previousSibling()
    raw_node ? switch_node_and_element(raw_node) : nil
  }
end

#struct(level = 0) ⇒ Object



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
# File 'lib/iegrip.rb', line 182

def struct(level=0)
  struct = []
  self.childElements.each {|subelement|
    inner,outer = get_inner(subelement)
    if subelement.hasChildElements()
      sub_struct = subelement.struct(level+1)
      if sub_struct.size > 0
        struct.push ("  " * level) + "<#{inner}>"
        struct += sub_struct
        struct.push ("  " * level) + "</#{subelement.tagName}>"
      else
        struct.push ("  " * level) + "<#{inner} />"
      end
    else
      if outer
        struct.push ("  " * level) + "<#{inner}>#{outer}</#{subelement.tagName}>"
      else
        struct.push ("  " * level) + "<#{inner} />"
      end
    end
  }
  return struct
end