iegrip 0.0.4 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c45c0f0882cc76475e1140bc1ee21e6a3ba6d66
4
- data.tar.gz: 451d53a837b9b8611e494d9bb0e2e0c808a5e6ca
3
+ metadata.gz: 15dce6f879811dec94442752a9906a53fc3f05fa
4
+ data.tar.gz: b4f8c46ffd91c844363c31509e2bc3b4cdb78545
5
5
  SHA512:
6
- metadata.gz: 40c1f957bb348752a61130da1fb2c88c10e45a2422a1a0dfc63f73e066feb742f3a89ce54ebd6bb4e256262ea0393a2526716b555ce1bdd4dbab547e2d19bde9
7
- data.tar.gz: e67222c69f2785c7b83ed7e261ed3516fbe0b8d700ed35965b2382735daa4e97a474d2a3153e6aeeaf5303568d0603ba20c89ead072b904479722568636699a6
6
+ metadata.gz: 15a2e3754833a7ae5c7ac9c9f9cd7b14a247fee7f89c56747115fd888289c6af93e65e45a996a78b11ae2cf0f68cc485bdfc3e12254f7a7d48eaa4c89eede9dc
7
+ data.tar.gz: 6194b8b6541ab78cf42daf2237018f57d18110ec7dd92c27a0a112b5b5da3ef5e798ce2f704759e9853e678e3b2d378a38fcbf9ba6cf2151ee89acf17cf42f2f
@@ -27,7 +27,7 @@ module IEgrip
27
27
 
28
28
  private
29
29
 
30
- OLE_METHODS = [:Type, :Initialize]
30
+ OLE_METHODS = [:Type, :Initialize, :Name, :ID, :Method]
31
31
  def method_missing(m_id, *params)
32
32
  unless OLE_METHODS.include?(m_id)
33
33
  missing_method_name = m_id.to_s.downcase
@@ -1,3 +1,3 @@
1
1
  module IEgrip
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/iegrip.rb CHANGED
@@ -39,12 +39,15 @@ module IEgrip
39
39
 
40
40
  COMPLETE_STATE = 4
41
41
  def wait_stable()
42
- while @raw_object.Busy == true
43
- sleep 0.5
44
- end
42
+ stable_counter = 0
45
43
  loop do
46
- break if @raw_object.ReadyState == COMPLETE_STATE
47
- sleep 0.5
44
+ break if stable_counter >= 3
45
+ if (@raw_object.Busy != true) and (@raw_object.ReadyState == COMPLETE_STATE)
46
+ stable_counter += 1
47
+ else
48
+ sleep 0.5
49
+ stable_counter = 0
50
+ end
48
51
  end
49
52
  end
50
53
 
@@ -53,81 +56,73 @@ module IEgrip
53
56
  end
54
57
  end
55
58
 
56
- # ========================
57
- # Node
58
- # ========================
59
- class Node < GripWrapper
60
- NODETYPE_DIC = {
61
- 1 => :ELEMENT_NODE,
62
- 2 => :ATTRIBUTE_NODE,
63
- 3 => :TEXT_NODE,
64
- 4 => :CDATA_SECTION_NODE,
65
- 5 => :ENTITY_REFERENCE_NODE,
66
- 6 => :ENTITY_NODE,
67
- 7 => :PROCESSING_INSTRUCTION_NODE,
68
- 8 => :COMMENT_NODE,
69
- 9 => :DOCUMENT_NODE,
70
- 10 => :DOCUMENT_TYPE_NODE,
71
- 11 => :DOCUMENT_FRAGMENT_NODE,
72
- 12 => :NOTATION_NODE,
73
- }
74
- def tagName
75
- case self.nodeType
76
- when 3
77
- @raw_object.nodeName
78
- else
79
- @raw_object.tagName.downcase
80
- end
81
- end
82
-
83
- def nodeName
84
- @raw_object.nodeName
59
+ module ElementParent
60
+ def parentNode
61
+ raw_element = @raw_object.parentNode()
62
+ raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
85
63
  end
86
64
 
87
- def nodeTypeName
88
- nodetype = @raw_object.nodetype
89
- NODETYPE_DIC[nodetype] || :UNKNOWN
65
+ def parentElement
66
+ raw_parent = @raw_object.parentElement
67
+ raw_parent ? HTMLElement.new(raw_parent, @ie_obj) : nil
90
68
  end
91
69
 
92
- def inspect
93
- "<#{self.class}, Name:#{self.nodeName}>"
70
+ def getParentForm()
71
+ parent_element = self.parentElement
72
+ loop do
73
+ if parent_element == nil
74
+ return nil
75
+ elsif parent_element.tagName == "form"
76
+ return parent_element
77
+ else
78
+ parent_element = parent_element.parentElement
79
+ end
80
+ end
94
81
  end
95
-
82
+ end
83
+
84
+ module ElementChild
96
85
  def childNodes
97
86
  raw_childNodes = @raw_object.childNodes
98
87
  raw_childNodes ? NodeList.new(raw_childNodes, @ie_obj) : nil
99
88
  end
100
89
 
101
- def parentNode
102
- raw_element = @raw_object.parentNode()
103
- raw_element ? TagElement.new(raw_element, @ie_obj) : nil
90
+ def childElements
91
+ raw_childNodes = @raw_object.childNodes
92
+ raw_childNodes ? HTMLElementCollection.new(raw_childNodes, @ie_obj) : nil
104
93
  end
105
94
 
106
95
  def previousSibling
107
96
  raw_node = @raw_object.previousSibling()
108
- raw_node ? Node.new(raw_node, @ie_obj) : nil
97
+ raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
109
98
  end
110
99
 
111
100
  def nextSibling
112
101
  raw_node = @raw_object.nextSibling()
113
- raw_node ? Node.new(raw_node, @ie_obj) : nil
102
+ raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
114
103
  end
115
104
 
116
105
  def firstChild
117
106
  raw_node = @raw_object.firstChild()
118
- raw_node ? Node.new(raw_node, @ie_obj) : nil
107
+ raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
119
108
  end
120
109
 
121
110
  def lastChild
122
111
  raw_node = @raw_object.lastChild()
123
- raw_node ? Node.new(raw_node, @ie_obj) : nil
112
+ raw_node ? HTMLElement.new(raw_node, @ie_obj) : nil
124
113
  end
125
114
 
126
115
  def hasChildNodes()
127
- #@raw_object.hasChildNodes() # This method return WIN32OLE object. not boolean
128
116
  @raw_object.childNodes.length > 0
129
117
  end
130
118
 
119
+ def hasChildElements()
120
+ @raw_object.childNodes.each {|subnode|
121
+ return true if (subnode.nodeType != 3) and (subnode.nodeType != 8)
122
+ }
123
+ false
124
+ end
125
+
131
126
  def contains(node)
132
127
  @raw_object.contains(toRaw(node))
133
128
  end
@@ -136,81 +131,225 @@ module IEgrip
136
131
  @raw_object.isEqualNode(toRaw(node))
137
132
  end
138
133
 
139
- def getElementById(tag_id)
140
- raw_element = @raw_object.getElementById(tag_id)
141
- raw_element ? TagElement.new(raw_element, @ie_obj) : nil
134
+ def struct(level=0)
135
+ struct = []
136
+ self.childElements.each {|subelement|
137
+ inner,outer = get_inner(subelement)
138
+ if subelement.hasChildElements()
139
+ sub_struct = subelement.struct(level+1)
140
+ if sub_struct.size > 0
141
+ struct.push (" " * level) + "<#{inner}>"
142
+ struct += sub_struct
143
+ struct.push (" " * level) + "</#{subelement.tagName}>"
144
+ else
145
+ struct.push (" " * level) + "<#{inner} />"
146
+ end
147
+ else
148
+ if outer
149
+ struct.push (" " * level) + "<#{inner}>#{outer}</#{subelement.tagName}>"
150
+ else
151
+ struct.push (" " * level) + "<#{inner} />"
152
+ end
153
+ end
154
+ }
155
+ return struct
142
156
  end
143
157
 
158
+ private
159
+
160
+ def get_inner(tag)
161
+ inner = [tag.tagName]
162
+ outer = nil
163
+ inner.push "id='#{tag.ID}'" if tag.ID != ""
164
+ case tag.tagName
165
+ when "a"
166
+ href = tag.href
167
+ if href.size > 20
168
+ href = href[0,19] + "..."
169
+ end
170
+ inner.push "href='#{href}'"
171
+ when "img"
172
+ inner.push "src='#{tag.src}'"
173
+ when "input"
174
+ inner.push "type='#{tag.Type}'"
175
+ when "form"
176
+ inner.push "action='#{tag.action}' method='#{tag.Method}'"
177
+ when "option"
178
+ inner.push "value='#{tag.value}'"
179
+ when "style"
180
+ inner.push "type='#{tag.Type}'"
181
+ end
182
+ unless tag.hasChildElements
183
+ innerText = tag.innerText
184
+ if innerText =~ /^<!--(.+)-->$/
185
+ if $1.size > 20
186
+ outer = "<!--#{$1[0,19]}...-->"
187
+ else
188
+ outer = innerText
189
+ end
190
+ innerText = ""
191
+ end
192
+ if innerText.size > 20
193
+ innerText = innerText[0,19] + "..."
194
+ end
195
+ inner.push "text='#{innerText}'" if innerText != ""
196
+ end
197
+ return [inner.join(' '), outer]
198
+ end
199
+ end
200
+
201
+ module GetElements
144
202
  def getElementsByName(name)
145
203
  raw_col = @raw_object.getElementsByName(name)
146
- raw_col ? TagElementCollection.new(raw_col, @ie_obj) : nil
204
+ raw_col ? HTMLElementCollection.new(raw_col, @ie_obj) : nil
147
205
  end
148
206
 
207
+
149
208
  def getElementsByTagName(tag_name)
150
209
  raw_col = @raw_object.getElementsByTagName(tag_name)
151
- raw_col ? TagElementCollection.new(raw_col, @ie_obj) : nil
210
+ raw_col ? HTMLElementCollection.new(raw_col, @ie_obj) : nil
152
211
  end
153
- alias tags getElementsByTagName
212
+ alias elements getElementsByTagName
154
213
 
155
- def getStructure(level=0)
156
- structure = []
157
- self.childNodes.each {|subnode|
158
- next if (subnode.nodeType == 3) or (subnode.nodeType == 8)
159
- if subnode.hasChildNodes()
160
- sub_struct = subnode.getStructure(level+1)
161
- if sub_struct.size > 0
162
- structure.push (" " * level) + "<#{subnode.tagName}>"
163
- structure += sub_struct
164
- structure.push (" " * level) + "</#{subnode.tagName}>"
165
- else
166
- structure.push (" " * level) + "<#{subnode.tagName}/>"
167
- end
214
+ def getElementsByTitle(target_str)
215
+ get_elements_by_key(target_str, "VALUE")
216
+ end
217
+ def getElementsByValue(target_str)
218
+ get_elements_by_key(target_str, "VALUE")
219
+ end
220
+ def getElementsByText(target_str)
221
+ get_elements_by_key(target_str, "INNERTEXT")
222
+ end
223
+
224
+ def getElementByTitle(target_str)
225
+ taglist = get_elements_by_key(target_str, "VALUE")
226
+ taglist[0]
227
+ end
228
+ def getElementByValue(target_str)
229
+ taglist = get_elements_by_key(target_str, "VALUE")
230
+ taglist[0]
231
+ end
232
+ def getElementByText(target_str)
233
+ taglist = get_elements_by_key(target_str, "INNERTEXT")
234
+ taglist[0]
235
+ end
236
+ def getElementByName(target_str)
237
+ taglist = get_elements_by_key(target_str, "NAME")
238
+ taglist[0]
239
+ end
240
+
241
+ private
242
+
243
+ def get_elements_by_key(target_str, key_type)
244
+ tag_list = []
245
+ @raw_object.all.each {|tag_element|
246
+ case key_type
247
+ when "INNERTEXT"
248
+ key_string = tag_element.innerText
249
+ when "VALUE"
250
+ key_string = tag_element.value
251
+ when "NAME"
252
+ key_string = tag_element.name
253
+ when "ID"
254
+ key_string = tag_element.ID
168
255
  else
169
- structure.push (" " * level) + "<#{subnode.tagName}/>"
256
+ return nil
257
+ end
258
+ if key_string == target_str
259
+ tag_list.push HTMLElement.new(tag_element, @ie_obj)
170
260
  end
171
261
  }
172
- return structure
262
+
263
+ return tag_list
173
264
  end
174
265
  end
175
266
 
176
267
  # ========================
177
- # IE.Document
268
+ # Node
178
269
  # ========================
179
- class Document < Node
180
- def frames(index=nil)
181
- if index
182
- return(nil) if index >= @raw_object.Frames.length
183
- Frames.new(@raw_object.frames, @ie_obj)[index]
270
+ class Node < GripWrapper
271
+ NODETYPE_DIC = {
272
+ 1 => :ELEMENT_NODE,
273
+ 2 => :ATTRIBUTE_NODE,
274
+ 3 => :TEXT_NODE,
275
+ 4 => :CDATA_SECTION_NODE,
276
+ 5 => :ENTITY_REFERENCE_NODE,
277
+ 6 => :ENTITY_NODE,
278
+ 7 => :PROCESSING_INSTRUCTION_NODE,
279
+ 8 => :COMMENT_NODE,
280
+ 9 => :DOCUMENT_NODE,
281
+ 10 => :DOCUMENT_TYPE_NODE,
282
+ 11 => :DOCUMENT_FRAGMENT_NODE,
283
+ 12 => :NOTATION_NODE,
284
+ }
285
+
286
+ def nodeName
287
+ @raw_object.nodeName
288
+ end
289
+
290
+ def nodeType
291
+ @raw_object.nodetype
292
+ end
293
+
294
+ def nodeTypeName
295
+ nodetype = @raw_object.nodetype
296
+ NODETYPE_DIC[nodetype] || :UNKNOWN
297
+ end
298
+
299
+ def inspect
300
+ case self.nodeType
301
+ when 3
302
+ "<#{self.class}, Name:#{self.nodeName}, Text:#{self.wholeText.inspect}>"
184
303
  else
185
- Frames.new(@raw_object.frames, @ie_obj)
304
+ "<#{self.class}, Name:#{self.nodeName}>"
186
305
  end
187
306
  end
188
307
 
308
+ end
309
+
310
+ # ========================
311
+ # IE.Document
312
+ # ========================
313
+ class Document < Node
314
+ include ElementChild
315
+ include GetElements
316
+
189
317
  def head()
190
318
  raw_head = @raw_object.head
191
- raw_head ? TagElement.new(raw_head, @ie_obj) : nil
319
+ raw_head ? HTMLElement.new(raw_head, @ie_obj) : nil
192
320
  end
193
321
 
194
322
  def body()
195
- #raw_body = @raw_object.getElementsByTagName("BODY")
196
- #raw_body ? TagElementCollection.new(raw_body, @ie_obj)[0] : nil
197
- TagElement.new(@raw_object.body, @ie_obj)
323
+ HTMLElement.new(@raw_object.body, @ie_obj)
198
324
  end
199
325
 
200
326
  def all
201
327
  raw_all = @raw_object.all
202
- raw_all ? TagElementCollection.new(raw_all, @ie_obj) : nil
328
+ raw_all ? HTMLElementCollection.new(raw_all, @ie_obj) : nil
203
329
  end
204
330
 
331
+ def frames(index=nil)
332
+ if index
333
+ return(nil) if index >= @raw_object.Frames.length
334
+ Frames.new(@raw_object.frames, @ie_obj)[index]
335
+ else
336
+ Frames.new(@raw_object.frames, @ie_obj)
337
+ end
338
+ end
339
+
340
+ def getElementById(element_id)
341
+ raw_element = @raw_object.getElementById(element_id)
342
+ raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
343
+ end
205
344
 
206
345
  def documentElement
207
346
  raw_element = @raw_object.documentElement()
208
- raw_element ? TagElement.new(raw_element, @ie_obj) : nil
347
+ raw_element ? HTMLElement.new(raw_element, @ie_obj) : nil
209
348
  end
210
349
 
211
350
  def createElement(tag_name)
212
351
  raw_element = @raw_object.createElement(tag_name)
213
- TagElement.new(raw_element, @ie_obj)
352
+ HTMLElement.new(raw_element, @ie_obj)
214
353
  end
215
354
 
216
355
  def createAttribute(attr_name)
@@ -221,17 +360,24 @@ module IEgrip
221
360
  end
222
361
 
223
362
  # ========================
224
- # TAG Element
363
+ # HTML Element
225
364
  # ========================
226
- class TagElement < Node
365
+ class HTMLElement < Node
366
+ include ElementParent
367
+ include ElementChild
368
+ include GetElements
227
369
  def tagname
228
- @raw_object.tagName.downcase
370
+ if self.nodeType == 8
371
+ "comment"
372
+ else
373
+ @raw_object.tagName.downcase
374
+ end
229
375
  end
230
376
 
231
377
  def text=(set_text)
232
- case tagName
233
- when "SELECT"
234
- option_list = tags("OPTION")
378
+ case self.tagname
379
+ when "select"
380
+ option_list = elements("OPTION")
235
381
  option_list.each {|option_element|
236
382
  if option_element.innerText == set_text
237
383
  option_element.selected = true
@@ -243,6 +389,7 @@ module IEgrip
243
389
  end
244
390
  end
245
391
 
392
+
246
393
  def inspect()
247
394
  case tagName
248
395
  when "SELECT"
@@ -262,6 +409,10 @@ module IEgrip
262
409
  def to_s
263
410
  @raw_object.value
264
411
  end
412
+ def value
413
+ @raw_object.value
414
+ end
415
+ alias text value
265
416
 
266
417
  def click
267
418
  if @ie_obj.version >= 10
@@ -296,35 +447,10 @@ module IEgrip
296
447
  @ie_obj.wait_stable()
297
448
  end
298
449
 
299
- def getElementsByTagName(tag_name)
300
- raw_collection = @raw_object.getElementsByTagName(tag_name)
301
- raw_collection ? TagElementCollection.new(raw_collection, @ie_obj) : nil
302
- end
303
- alias tags getElementsByTagName
304
-
305
450
  def all
306
- TagElementCollection.new(@raw_object.all, @ie_obj)
451
+ HTMLElementCollection.new(@raw_object.all, @ie_obj)
307
452
  end
308
453
 
309
- def parentElement
310
- raw_parent = @raw_object.parentElement
311
- raw_parent ? TagElement.new(raw_parent, @ie_obj) : nil
312
- end
313
-
314
- def getParentForm()
315
- puts "getParentForm() is called."
316
- parent_tag = self.parentElement
317
- loop do
318
- puts "parent_tag = #{parent_tag.inspect}"
319
- if parent_tag == nil
320
- return nil
321
- elsif parent_tag.tagName == "form"
322
- return parent_tag
323
- else
324
- parent_tag = parent_tag.parentElement
325
- end
326
- end
327
- end
328
454
 
329
455
  def export(filename)
330
456
  case self.tagName.downcase
@@ -359,6 +485,32 @@ module IEgrip
359
485
  raw_attr ? Attr.new(raw_attr, @ie_obj) : nil
360
486
  end
361
487
 
488
+ def insertBefore(newElement, anchor_element=nil)
489
+ @raw_object.insertBefore(toRaw(newElement), toRaw(anchor_element))
490
+ end
491
+
492
+ def appendChild(newElement)
493
+ @raw_object.appendChild(toRaw(newElement))
494
+ end
495
+
496
+ def removeChild(element)
497
+ @raw_object.removeChild(toRaw(element))
498
+ end
499
+
500
+ def replaceChild(newElement, oldElement)
501
+ @raw_object.replaceChild(toRaw(newElement), toRaw(oldElement))
502
+ end
503
+
504
+ def addElement(new_element)
505
+ parent = self.parentElement
506
+ next_element = self.nextSibling
507
+ if next_element
508
+ parent.insertBefore(new_element, next_element)
509
+ else
510
+ parent.appendChild(new_element)
511
+ end
512
+ end
513
+
362
514
  private
363
515
 
364
516
  def replace_cr_code(text)
@@ -368,74 +520,90 @@ module IEgrip
368
520
  end
369
521
  end
370
522
 
523
+
371
524
  # ========================
372
- # TAG Element Collection
525
+ # Node Collection
373
526
  # ========================
374
- class TagElementCollection < GripWrapper
527
+ class NodeList < GripWrapper
375
528
  def [](index)
376
529
  return(nil) if index >= @raw_object.length
377
- TagElement.new(@raw_object.item(index), @ie_obj)
530
+ raw_node = @raw_object.item(index)
531
+ if raw_node.nodeType == 1
532
+ HTMLElement.new(raw_node, @ie_obj)
533
+ else
534
+ Node.new(raw_node, @ie_obj)
535
+ end
378
536
  end
379
537
 
380
538
  def size
381
539
  @raw_object.length
382
540
  end
383
541
 
542
+ def each
543
+ @raw_object.each {|raw_node|
544
+ if raw_node.nodeType == 1
545
+ yield HTMLElement.new(raw_node, @ie_obj)
546
+ else
547
+ yield Node.new(raw_node, @ie_obj)
548
+ end
549
+ }
550
+ end
551
+
552
+ def inspect()
553
+ "<#{self.class}>"
554
+ end
555
+ end
556
+
557
+ # ========================
558
+ # TAG Element Collection
559
+ # ========================
560
+ class HTMLElementCollection < NodeList
561
+ def [](index)
562
+ return(nil) if index >= @raw_object.length
563
+ raw_node = @raw_object.item(index)
564
+ HTMLElement.new(raw_node, @ie_obj)
565
+ end
566
+
384
567
  def each
385
568
  @raw_object.each {|tag_element|
386
- yield TagElement.new(tag_element, @ie_obj)
569
+ next if (tag_element.nodeType == 3) or (tag_element.nodeType == 8)
570
+ yield HTMLElement.new(tag_element, @ie_obj)
387
571
  }
388
572
  end
389
573
 
390
- def getTagsByTitle(target_str)
391
- get_tags_by_key(target_str, "VALUE")
574
+ def getElementsByTitle(target_str)
575
+ get_elements_by_key(target_str, "VALUE")
392
576
  end
393
- def getTagsByValue(target_str)
394
- get_tags_by_key(target_str, "VALUE")
577
+ def getElementsByValue(target_str)
578
+ get_elements_by_key(target_str, "VALUE")
395
579
  end
396
- def getTagsByText(target_str)
397
- get_tags_by_key(target_str, "INNERTEXT")
580
+ def getElementsByText(target_str)
581
+ get_elements_by_key(target_str, "INNERTEXT")
398
582
  end
399
- def getTagsByName(target_str)
400
- get_tags_by_key(target_str, "NAME")
583
+ def getElementsByName(target_str)
584
+ get_elements_by_key(target_str, "NAME")
401
585
  end
402
586
 
403
- def getTagByTitle(target_str)
404
- taglist = get_tags_by_key(target_str, "VALUE")
405
- taglist ? taglist[0]: nil
406
- end
407
- def getTagByValue(target_str)
408
- taglist = get_tags_by_key(target_str, "VALUE")
587
+ def getElementByTitle(target_str)
588
+ taglist = get_elements_by_key(target_str, "VALUE")
409
589
  taglist ? taglist[0]: nil
410
590
  end
411
- def getTagByText(target_str)
412
- taglist = get_tags_by_key(target_str, "INNERTEXT")
591
+ def getElementByValue(target_str)
592
+ taglist = get_elements_by_key(target_str, "VALUE")
413
593
  taglist ? taglist[0]: nil
414
594
  end
415
- def getTagByName(target_str)
416
- taglist = get_tags_by_key(target_str, "NAME")
595
+ def getElementByText(target_str)
596
+ taglist = get_elements_by_key(target_str, "INNERTEXT")
417
597
  taglist ? taglist[0]: nil
418
598
  end
419
- def getTagByID(target_id)
420
- taglist = get_tags_by_key(target_id, "ID")
599
+ def getElementByName(target_str)
600
+ taglist = get_elements_by_key(target_str, "NAME")
421
601
  taglist ? taglist[0]: nil
422
602
  end
423
603
 
424
- def inspect()
425
- tagname_list = []
426
- self.each {|tag_element|
427
- tagname_list.push "<#{tag_element.tagName}>"
428
- }
429
- if tagname_list.size > 3
430
- "<#{self.class}: [#{tagname_list[0,3].join(', ')},...]"
431
- else
432
- "<#{self.class}: [#{tagname_list.join(', ')}]>"
433
- end
434
- end
435
-
436
604
  private
437
605
 
438
- def get_tags_by_key(target_str, key_type)
606
+ def get_elements_by_key(target_str, key_type)
439
607
  tag_list = []
440
608
  @raw_object.each {|tag_element|
441
609
  case key_type
@@ -451,7 +619,7 @@ module IEgrip
451
619
  return nil
452
620
  end
453
621
  if key_string == target_str
454
- tag_list.push TagElement.new(tag_element, @ie_obj)
622
+ tag_list.push HTMLElement.new(tag_element, @ie_obj)
455
623
  end
456
624
  }
457
625
  case tag_list.size
@@ -461,10 +629,8 @@ module IEgrip
461
629
  return tag_list
462
630
  end
463
631
  end
464
-
465
632
  end
466
633
 
467
-
468
634
 
469
635
  # ========================
470
636
  # IE.Document.Frames
@@ -498,31 +664,6 @@ module IEgrip
498
664
  end
499
665
  end
500
666
 
501
- # ========================
502
- # NodeList
503
- # ========================
504
- class NodeList < GripWrapper
505
- def [](index)
506
- return(nil) if index >= @raw_object.length
507
- Node.new(@raw_object.item(index), @ie_obj)
508
- end
509
-
510
- def size
511
- @raw_object.length
512
- end
513
-
514
- def each
515
- index = 0
516
- loop do
517
- break if index >= @raw_object.length
518
- raw_node = @raw_object.item(index)
519
- yield Node.new(raw_node, @ie_obj)
520
- index += 1
521
- end
522
- end
523
- end
524
-
525
-
526
667
  class Attr < GripWrapper
527
668
  def value=(value_str)
528
669
  @raw_object.value = value_str
@@ -532,7 +673,7 @@ module IEgrip
532
673
  end
533
674
 
534
675
  def ownerElement()
535
- TagElement.new(@raw_object.ownerElement, @ie_obj)
676
+ HTMLElement.new(@raw_object.ownerElement, @ie_obj)
536
677
  end
537
678
  end
538
679
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iegrip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - yac4423
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-12 00:00:00.000000000 Z
11
+ date: 2014-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler