iegrip 0.0.4 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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