ie_handler 0.0.5 → 0.0.6

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.
Files changed (3) hide show
  1. data/lib/ie_handler.rb +144 -1
  2. metadata +7 -8
  3. data/lib/ie_handler/ie_page.rb +0 -147
data/lib/ie_handler.rb CHANGED
@@ -2,5 +2,148 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module IeHandler
5
- VERSION = '0.0.5'
5
+ VERSION = '0.0.6'
6
+
7
+ class IePage
8
+ IE_APP = "InternetExplorer.Application"
9
+
10
+ attr_accessor :doc, :ie
11
+
12
+ #instance methods
13
+ def initialize url
14
+ @ie = WIN32OLE.new(IE_APP)
15
+ go url
16
+ @doc = @ie.document
17
+ end
18
+
19
+ #wait during loading
20
+ def wait
21
+ while @ie.Busy == true
22
+ sleep 1
23
+ end
24
+ end
25
+
26
+ #move to the specified url
27
+ def go url, visible = true
28
+ @ie.Navigate(url)
29
+ @ie.Visible=visible
30
+ wait
31
+ end
32
+
33
+ def back
34
+ @ie.GoBack
35
+ wait
36
+ end
37
+
38
+ def close
39
+ @ie.Quit
40
+ end
41
+
42
+ #initalization. this is configulation which you should ie.find
43
+ #when you access DOM.
44
+ def find
45
+ @doc = @ie.document
46
+ @start = nil
47
+ self
48
+ end
49
+
50
+ #Saved Access
51
+ #Save ie object
52
+ #ex) save tr and use td using saved tr object.
53
+ def sa
54
+ unless @start
55
+ @start = @doc
56
+ else
57
+ @doc = @start
58
+ end
59
+ self
60
+ end
61
+
62
+ def each
63
+ yield self unless @doc.respond_to?(:each)
64
+ @doc.each do |d|
65
+ obj = self.clone
66
+ obj.ie = @ie
67
+ obj.doc = d
68
+ yield obj
69
+ end
70
+ end
71
+
72
+ #accessor methods map
73
+ @accessor = {
74
+ :id => :getElementById,
75
+ :tag => :getElementsByTagName,
76
+ :name => :getElementsByName,
77
+ :clazz => :getElementsByClassName
78
+ }
79
+ #id,tag,name,clazz method dinamic definition
80
+ @accessor.each do |name, method|
81
+ define_method name do |elem, item_num=nil|
82
+ return nil if @doc.nil?
83
+ items = @doc.send(method, elem)
84
+ @doc = (!! item_num) ? items.item(item_num) : items
85
+ self
86
+ end
87
+ end
88
+
89
+ def click
90
+ @doc.click nil
91
+ wait
92
+ end
93
+
94
+ def html content=nil
95
+ if content
96
+ @doc.appendChild(@ie.document.createTextNode(content))
97
+ else
98
+ @doc.innerHTML
99
+ end
100
+ end
101
+
102
+ #DOM new element addition
103
+ def add obj
104
+ @doc.appendChild(obj.doc)
105
+ end
106
+
107
+ def attr name, value=nil
108
+ unless value
109
+ @doc.getAttribute(name)
110
+ else
111
+ @doc.setAttribute(name, value)
112
+ end
113
+ end
114
+
115
+ #for inspect methods
116
+ def methods search_word=nil
117
+ mtds = @doc.ole_methods.map{|mtd| mtd.to_s}.sort
118
+ mtds = mtds.grep search_word if search_word
119
+ mtds
120
+ end
121
+
122
+ def method name
123
+ @ie.ole_method_help(name).params.each do |param|
124
+ str = ""
125
+ str.concat "[in] " if param.input?
126
+ str.concat "[out] " if param.output?
127
+ str.concat "[optional] " if param.optional?
128
+ str.concat "[retval] " if param.retval?
129
+ str.concat param.name
130
+ str.concat " = #{param.default}" if param.default
131
+ str.concat " As #{param.ole_type}"
132
+ puts str
133
+ end
134
+ end
135
+
136
+ def method_missing(method_name, *args)
137
+ @doc.send(method_name, *args)
138
+ end
139
+
140
+ #class methods
141
+ class << self
142
+ def make_elem ie_obj, elem_name
143
+ obj = ie_obj.clone
144
+ obj.doc = ie_obj.ie.document.createElement(elem_name)
145
+ obj
146
+ end
147
+ end
148
+ end
6
149
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ie_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &83809270 !ruby/object:Gem::Requirement
16
+ requirement: &73980100 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.10'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *83809270
24
+ version_requirements: *73980100
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: newgem
27
- requirement: &83809030 !ruby/object:Gem::Requirement
27
+ requirement: &73979860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.5.3
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *83809030
35
+ version_requirements: *73979860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hoe
38
- requirement: &83808790 !ruby/object:Gem::Requirement
38
+ requirement: &73979620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '3.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *83808790
46
+ version_requirements: *73979620
47
47
  description: ! 'IE Handler enable you to handle IE using Ruby.
48
48
 
49
49
  It has simple syntax and strong methods.
@@ -67,7 +67,6 @@ files:
67
67
  - README.rdoc
68
68
  - Rakefile
69
69
  - lib/ie_handler.rb
70
- - lib/ie_handler/ie_page.rb
71
70
  - script/console
72
71
  - script/destroy
73
72
  - script/generate
@@ -1,147 +0,0 @@
1
- # -*- encoding: UTF-8 -*-
2
- require 'win32OLE'
3
-
4
- module IeHandler
5
- class IePage
6
- IE_APP = "InternetExplorer.Application"
7
-
8
- attr_accessor :doc, :ie
9
-
10
- #instance methods
11
- def initialize url
12
- @ie = WIN32OLE.new(IE_APP)
13
- go url
14
- @doc = @ie.document
15
- end
16
-
17
- #wait during loading
18
- def wait
19
- while @ie.Busy == true
20
- sleep 1
21
- end
22
- end
23
-
24
- #move to the specified url
25
- def go url, visible = true
26
- @ie.Navigate(url)
27
- @ie.Visible=visible
28
- wait
29
- end
30
-
31
- def back
32
- @ie.GoBack
33
- wait
34
- end
35
-
36
- def close
37
- @ie.Quit
38
- end
39
-
40
- #initalization. this is configulation which you should ie.find
41
- #when you access DOM.
42
- def find
43
- @doc = @ie.document
44
- @start = nil
45
- self
46
- end
47
-
48
- #Saved Access
49
- #Save ie object
50
- #ex) save tr and use td using saved tr object.
51
- def sa
52
- unless @start
53
- @start = @doc
54
- else
55
- @doc = @start
56
- end
57
- self
58
- end
59
-
60
- def each
61
- yield self unless @doc.respond_to?(:each)
62
- @doc.each do |d|
63
- obj = self.clone
64
- obj.ie = @ie
65
- obj.doc = d
66
- yield obj
67
- end
68
- end
69
-
70
- #accessor methods map
71
- @accessor = {
72
- :id => :getElementById,
73
- :tag => :getElementsByTagName,
74
- :name => :getElementsByName,
75
- :clazz => :getElementsByClassName
76
- }
77
- #id,tag,name,clazz method dinamic definition
78
- @accessor.each do |name, method|
79
- define_method name do |elem, item_num=nil|
80
- return nil if @doc.nil?
81
- items = @doc.send(method, elem)
82
- @doc = (!! item_num) ? items.item(item_num) : items
83
- self
84
- end
85
- end
86
-
87
- def click
88
- @doc.click nil
89
- wait
90
- end
91
-
92
- def html content=nil
93
- if content
94
- @doc.appendChild(@ie.document.createTextNode(content))
95
- else
96
- @doc.innerHTML
97
- end
98
- end
99
-
100
- #DOM new element addition
101
- def add obj
102
- @doc.appendChild(obj.doc)
103
- end
104
-
105
- def attr name, value=nil
106
- unless value
107
- @doc.getAttribute(name)
108
- else
109
- @doc.setAttribute(name, value)
110
- end
111
- end
112
-
113
- #for inspect methods
114
- def methods search_word=nil
115
- mtds = @doc.ole_methods.map{|mtd| mtd.to_s}.sort
116
- mtds = mtds.grep search_word if search_word
117
- mtds
118
- end
119
-
120
- def method name
121
- @ie.ole_method_help(name).params.each do |param|
122
- str = ""
123
- str.concat "[in] " if param.input?
124
- str.concat "[out] " if param.output?
125
- str.concat "[optional] " if param.optional?
126
- str.concat "[retval] " if param.retval?
127
- str.concat param.name
128
- str.concat " = #{param.default}" if param.default
129
- str.concat " As #{param.ole_type}"
130
- puts str
131
- end
132
- end
133
-
134
- def method_missing(method_name, *args)
135
- @doc.send(method_name, *args)
136
- end
137
-
138
- #class methods
139
- class << self
140
- def make_elem ie_obj, elem_name
141
- obj = ie_obj.clone
142
- obj.doc = ie_obj.ie.document.createElement(elem_name)
143
- obj
144
- end
145
- end
146
- end
147
- end