win32-autogui 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- win32-autogui (0.5.1)
4
+ win32-autogui (0.5.2)
5
5
  log4r (>= 1.1.9)
6
6
  win32-clipboard (~> 0.5.2)
7
7
  win32-process (~> 0.6.5)
@@ -5,6 +5,10 @@ Most recent changes are at the top
5
5
  Changes
6
6
  -------
7
7
 
8
+ ### 0.5.2 - 06/01/2012 ###
9
+
10
+ * Retrieving the text of windows and controls is now more robust. Issue #5. (ebertech)
11
+
8
12
  ### 0.5.1 - 08/20/2011 ###
9
13
 
10
14
  * Rebuild gem without psych to work-around the 'invalid gemspec date' issue
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2011 GearheadForHire, LLC
1
+ Copyright (c) 2010-2012 GearheadForHire, LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -34,6 +34,7 @@ Run Win32-autogui's internal specs and example programs from the system gem loca
34
34
 
35
35
  # run the example quicknote specs
36
36
  cd examples\quicknote
37
+ bundle install
37
38
  bundle exec rake
38
39
 
39
40
 
@@ -327,4 +328,4 @@ Cucumber, as appropriate.
327
328
  Copyright
328
329
  ---------
329
330
 
330
- Copyright (c) 2010-2011 GearheadForHire, LLC. See [LICENSE](LICENSE) for details.
331
+ Copyright (c) 2010-2012 GearheadForHire, LLC. See [LICENSE](LICENSE) for details.
@@ -4,6 +4,8 @@ TODO
4
4
  general
5
5
  -------
6
6
 
7
+ * refactor application.running? to make sure the pid even exists before
8
+ looping
7
9
  * (1.0) stop changing $LOAD_PATH in specs and features, modify ENV[] in before
8
10
  and afters
9
11
  * (1.0) implement Application.find and add option to not start application
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.5.2
@@ -36,4 +36,4 @@ lib/quicknote.rb
36
36
  Copyright
37
37
  ---------
38
38
 
39
- Copyright (c) 2010-2011 GearheadForHire, LLC. See [LICENSE](LICENSE) for details.
39
+ Copyright (c) 2010-2012 GearheadForHire, LLC. See [LICENSE](LICENSE) for details.
@@ -15,6 +15,11 @@ def initialize(options = {})
15
15
  super defaults.merge(options)
16
16
  end
17
17
 
18
+ # timeout in seconds to wait for desktop windows to appear
19
+ def default_window_timeout
20
+ 1
21
+ end
22
+
18
23
  def edit_window
19
24
  main_window.children.find {|w| w.window_class == 'TMemo'}
20
25
  end
@@ -24,18 +29,21 @@ def status_bar
24
29
  end
25
30
 
26
31
  def dialog_about(options={})
32
+ options[:timeout] = default_window_timeout unless options[:timeout]
27
33
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
28
34
  w.title.match(/^About QuickNote/) && (w.pid == pid)
29
35
  end
30
36
  end
31
37
 
32
38
  def splash(options={})
39
+ options[:timeout] = default_window_timeout unless options[:timeout]
33
40
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
34
41
  w.title.match(/^FormSplash/) && (w.pid == pid)
35
42
  end
36
43
  end
37
44
 
38
45
  def message_dialog_confirm(options={})
46
+ options[:timeout] = default_window_timeout unless options[:timeout]
39
47
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
40
48
  w.title.match(/^Confirm/) && (w.pid == pid)
41
49
  end
@@ -44,6 +52,7 @@ def message_dialog_confirm(options={})
44
52
  # Title and class are the same as dialog_overwrite_confirm
45
53
  # Use child windows to differentiate
46
54
  def dialog_overwrite_confirm(options={})
55
+ options[:timeout] = default_window_timeout unless options[:timeout]
47
56
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
48
57
  w.title.match(/^Text File Save$/) &&
49
58
  (w.pid == pid) &&
@@ -54,6 +63,7 @@ def dialog_overwrite_confirm(options={})
54
63
 
55
64
  # Title and class are the same as dialog_overwrite_confirm
56
65
  def file_save_as_dialog(options={})
66
+ options[:timeout] = default_window_timeout unless options[:timeout]
57
67
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
58
68
  w.title.match(/^Text File Save/) &&
59
69
  (w.pid == pid) &&
@@ -63,12 +73,14 @@ def file_save_as_dialog(options={})
63
73
  end
64
74
 
65
75
  def file_open_dialog(options={})
76
+ options[:timeout] = default_window_timeout unless options[:timeout]
66
77
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
67
78
  w.title.match(/^Text File Open/) && (w.pid == pid)
68
79
  end
69
80
  end
70
81
 
71
82
  def error_dialog(options={})
83
+ options[:timeout] = default_window_timeout unless options[:timeout]
72
84
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
73
85
  w.title.match(/^QuickNote$/) && (w.pid == pid) && (w.window_class == "#32770")
74
86
  end
@@ -78,22 +90,22 @@ def error_dialog(options={})
78
90
  def file_new(options={})
79
91
  set_focus
80
92
  keystroke(VK_MENU, VK_F, VK_N)
81
- if message_dialog_confirm
93
+ if message_dialog_confirm(:timeout => 0)
82
94
  options[:save] == true ? keystroke(VK_Y) : keystroke(VK_N)
83
95
  end
84
96
  # sanity check
85
- raise "confirm dialog is still here" if message_dialog_confirm
97
+ raise "confirm dialog is still here" if message_dialog_confirm(:timeout => 0)
86
98
  end
87
99
 
88
100
  # menu action File, New
89
101
  def file_open(filename, options={})
90
102
  set_focus
91
103
  keystroke(VK_MENU, VK_F, VK_O)
92
- if message_dialog_confirm
104
+ if message_dialog_confirm(:timeout => 0)
93
105
  options[:save] == true ? keystroke(VK_Y) : keystroke(VK_N)
94
106
  end
95
107
 
96
- raise "sanity check, confirm dialog is still here" if message_dialog_confirm
108
+ raise "sanity check, confirm dialog is still here" if message_dialog_confirm(:timeout => 0)
97
109
  raise "sanity check, file_open_dialog not found" unless file_open_dialog
98
110
 
99
111
  # Paste in filename for speed, much faster than 'type_in(filename)'
@@ -106,10 +118,10 @@ def file_open(filename, options={})
106
118
  # menu action File, Exit
107
119
  def file_exit
108
120
  set_focus
109
- keystroke(VK_N) if message_dialog_confirm
110
- keystroke(VK_ESCAPE) if file_open_dialog
121
+ keystroke(VK_N) if message_dialog_confirm(:timeout => 0)
122
+ keystroke(VK_ESCAPE) if file_open_dialog(:timeout => 0)
111
123
  keystroke(VK_MENU, VK_F, VK_X)
112
- keystroke(VK_N) if message_dialog_confirm
124
+ keystroke(VK_N) if message_dialog_confirm(:timeout => 0)
113
125
  end
114
126
 
115
127
  # menu action File, Save
@@ -132,7 +144,7 @@ def file_save_as(filename, options={})
132
144
  if dialog_overwrite_confirm
133
145
  options[:overwrite] == true ? keystroke(VK_Y) : keystroke(VK_N)
134
146
  end
135
- raise "sanity check, overwrite confirm dialog is still here" if dialog_overwrite_confirm
147
+ raise "sanity check, overwrite confirm dialog is still here" if dialog_overwrite_confirm(:timeout => 0)
136
148
 
137
149
  end
138
150
 
@@ -14,7 +14,7 @@
14
14
  end
15
15
 
16
16
  before(:each) do
17
- @application.dialog_about.should be_nil
17
+ @application.dialog_about(:timeout => 0).should be_nil
18
18
  @application.set_focus
19
19
  keystroke(VK_MENU, VK_H, VK_A)
20
20
  @dialog_about = @application.dialog_about
@@ -34,7 +34,7 @@
34
34
  it "should close by hitting return" do
35
35
  @dialog_about.set_focus
36
36
  keystroke(VK_RETURN)
37
- @application.dialog_about.should be_nil
37
+ @application.dialog_about(:timeout => 0).should be_nil
38
38
  end
39
39
 
40
40
  it "should have the title 'About QuickNote'" do
@@ -28,8 +28,8 @@
28
28
  end
29
29
  after(:each) do
30
30
  if @application.running?
31
- keystroke(VK_N) if @application.message_dialog_confirm || @application.dialog_overwrite_confirm
32
- keystroke(VK_ESCAPE) if @application.error_dialog
31
+ keystroke(VK_N) if @application.message_dialog_confirm(:timeout => 0) || @application.dialog_overwrite_confirm(:timeout => 0)
32
+ keystroke(VK_ESCAPE) if @application.error_dialog(:timeout => 0)
33
33
  end
34
34
  puts "FormMain after(:each)" if @debug
35
35
  end
@@ -67,8 +67,14 @@
67
67
  @application.file_new(:save => false)
68
68
  end
69
69
  after(:each) do
70
- keystroke(VK_N) if @application.message_dialog_confirm
71
- keystroke(VK_ESCAPE) if @application.file_open_dialog
70
+ if @application.message_dialog_confirm(:timeout => 0)
71
+ @application.message_dialog_confirm.set_focus
72
+ keystroke(VK_N)
73
+ end
74
+ if @application.file_open_dialog(:timeout => 0)
75
+ @application.file_open_dialog.set_focus
76
+ keystroke(VK_ESCAPE)
77
+ end
72
78
  end
73
79
 
74
80
  it "should prompt to save with modified text" do
@@ -80,7 +86,7 @@
80
86
  it "should not prompt to save with unmodified text" do
81
87
  @application.main_window.title.should_not match(/\+/)
82
88
  keystroke(VK_MENU, VK_F, VK_O)
83
- @application.message_dialog_confirm.should be_nil
89
+ @application.message_dialog_confirm(:timeout => 0).should be_nil
84
90
  end
85
91
 
86
92
  describe "succeeding" do
@@ -122,7 +128,7 @@
122
128
  @application.file_new(:save => false)
123
129
  @application.main_window.title.should_not match(/\+/)
124
130
  keystroke(VK_MENU, VK_F, VK_N)
125
- @application.message_dialog_confirm.should be_nil
131
+ @application.message_dialog_confirm(:timeout => 0).should be_nil
126
132
  end
127
133
  it "should add the filename 'untitled.txt' to the title" do
128
134
  filename = "input_file.txt"
@@ -222,8 +228,8 @@
222
228
  @application.file_open(fullpath(@filename), :save => false)
223
229
  end
224
230
  after(:each) do
225
- keystroke(VK_N) if @application.dialog_overwrite_confirm
226
- keystroke(VK_ESCAPE) if @application.file_save_as_dialog
231
+ keystroke(VK_N) if @application.dialog_overwrite_confirm(:timeout => 0)
232
+ keystroke(VK_ESCAPE) if @application.file_save_as_dialog(:timeout => 0)
227
233
  end
228
234
 
229
235
  it "should prompt for filename" do
@@ -266,7 +272,7 @@
266
272
  end
267
273
  it "should not prompt to save with unmodified text" do
268
274
  keystroke(VK_MENU, VK_F, VK_X)
269
- @application.message_dialog_confirm.should be_nil
275
+ @application.message_dialog_confirm(:timeout => 0).should be_nil
270
276
  @application.main_window.is_window?.should == false
271
277
  @application.should_not be_running
272
278
  end
@@ -6,7 +6,7 @@
6
6
  describe "FormSplash" do
7
7
  after(:each) do
8
8
  if @application && @application.running?
9
- @application.splash.wait_for_close if @application.splash
9
+ @application.splash.wait_for_close if @application.splash(:timeout => 0)
10
10
  @application.file_exit
11
11
  # still running? force it to close
12
12
  @application.close(:wait_for_close => true)
@@ -30,7 +30,7 @@
30
30
  timeout(seconds) do
31
31
  @application.splash.wait_for_close
32
32
  end
33
- @application.splash.should be_nil
33
+ @application.splash(:timeout => 0).should be_nil
34
34
  end
35
35
  end
36
36
 
@@ -38,7 +38,7 @@
38
38
  it "should not show" do
39
39
  @application = Quicknote.new :parameters => '--nosplash'
40
40
  @application.should be_running
41
- @application.splash.should be_nil
41
+ @application.splash(:timeout => 0).should be_nil
42
42
  end
43
43
  end
44
44
 
@@ -141,7 +141,7 @@ def window_class
141
141
  length == 0 ? '' : buffer[0..length - 1]
142
142
  end
143
143
 
144
- # Window text (WM_GETTEXT)
144
+ # Window text (GetWindowText or WM_GETTEXT)
145
145
  #
146
146
  # @param [Number] max_length (2048)
147
147
  #
@@ -149,11 +149,24 @@ def window_class
149
149
  #
150
150
  def text(max_length = 2048)
151
151
  buffer = "\0" * max_length
152
- length = SendMessageA(handle, WM_GETTEXT, buffer.length, buffer)
152
+ length = if is_control?
153
+ SendMessageA(handle, WM_GETTEXT, buffer.length, buffer)
154
+ else
155
+ GetWindowText(handle, buffer, buffer.length)
156
+ end
157
+
153
158
  length == 0 ? '' : buffer[0..length - 1]
154
159
  end
155
160
  alias :title :text
156
161
 
162
+ # Determines whether the specified window handle identifies a window or a control
163
+ #
164
+ # @return [Boolean]
165
+ #
166
+ def is_control?
167
+ (handle != 0) && (GetDlgCtrlID(handle) != 0)
168
+ end
169
+
157
170
  # Determines whether the specified window handle identifies an existing window
158
171
  #
159
172
  # @return [Boolean]
@@ -17,6 +17,7 @@ module Window
17
17
  API.new('SetForegroundWindow', 'L', 'I', 'user32')
18
18
  API.new('SendMessageA', 'LIIP', 'I', 'user32')
19
19
  API.new('IsWindowVisible', 'L', 'I', 'user32')
20
+ API.new('GetDlgCtrlID', 'L', 'I', 'user32')
20
21
 
21
22
  end
22
23
  end
@@ -19,8 +19,14 @@ def edit_window
19
19
  main_window.children.find {|w| w.window_class == 'Edit'}
20
20
  end
21
21
 
22
+ # timeout in seconds to wait for desktop windows to appear
23
+ def default_window_timeout
24
+ 1
25
+ end
26
+
22
27
  # About dialog, hotkey (VK_MENU, VK_H, VK_A)
23
28
  def dialog_about(options = {})
29
+ options[:timeout] = default_window_timeout unless options[:timeout]
24
30
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
25
31
  w.title.match(/About Calculator/) && (w.pid == pid)
26
32
  end
@@ -14,6 +14,11 @@ def initialize(options = {})
14
14
  super defaults.merge(options)
15
15
  end
16
16
 
17
+ # timeout in seconds to wait for desktop windows to appear
18
+ def default_window_timeout
19
+ 1
20
+ end
21
+
17
22
  # the notepad's results window
18
23
  def edit_window
19
24
  main_window.children.find {|w| w.window_class == 'Edit'}
@@ -21,12 +26,14 @@ def edit_window
21
26
 
22
27
  # About dialog, hotkey (VK_MENU, VK_H, VK_A)
23
28
  def dialog_about(options = {})
29
+ options[:timeout] = default_window_timeout unless options[:timeout]
24
30
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
25
31
  w.title.match(/About Notepad/) && (w.pid == pid)
26
32
  end
27
33
  end
28
34
 
29
35
  def message_dialog_confirm(options={})
36
+ options[:timeout] = default_window_timeout unless options[:timeout]
30
37
  Autogui::EnumerateDesktopWindows.new(options).find do |w|
31
38
  w.title.match(/Notepad/) && (w.pid == pid) && (w.window_class == "#32770")
32
39
  end
@@ -36,8 +43,8 @@ def message_dialog_confirm(options={})
36
43
  def file_exit
37
44
  set_focus
38
45
  keystroke(VK_MENU, VK_F, VK_X)
39
- if message_dialog_confirm
40
- keystroke(VK_N) if message_dialog_confirm
46
+ if message_dialog_confirm(:timeout => 0)
47
+ keystroke(VK_N)
41
48
  end
42
49
  end
43
50
 
@@ -71,13 +71,13 @@
71
71
 
72
72
  it "should open and close the 'About Calculator' dialog via (VK_MENU, VK_H, VK_A)" do
73
73
  @calculator.set_focus
74
- dialog_about = @calculator.dialog_about
74
+ dialog_about = @calculator.dialog_about(:timeout => 0)
75
75
  dialog_about.should be_nil
76
76
  keystroke(VK_MENU, VK_H, VK_A)
77
77
  dialog_about = @calculator.dialog_about
78
78
  dialog_about.title.should == "About Calculator"
79
79
  dialog_about.close
80
- @calculator.dialog_about.should be_nil
80
+ @calculator.dialog_about(:timeout => 0).should be_nil
81
81
  end
82
82
 
83
83
  describe "calculations" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32-autogui
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 1
10
- version: 0.5.1
9
+ - 2
10
+ version: 0.5.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Robert Wahler
@@ -15,11 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-20 00:00:00 -04:00
19
- default_executable:
18
+ date: 2012-06-05 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ requirement: &id001 !ruby/object:Gem::Requirement
23
22
  none: false
24
23
  requirements:
25
24
  - - ~>
@@ -30,12 +29,12 @@ dependencies:
30
29
  - 4
31
30
  - 0
32
31
  version: 0.4.0
33
- requirement: *id001
34
- type: :runtime
35
- name: windows-api
32
+ version_requirements: *id001
36
33
  prerelease: false
34
+ name: windows-api
35
+ type: :runtime
37
36
  - !ruby/object:Gem::Dependency
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ requirement: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
41
40
  - - ~>
@@ -46,12 +45,12 @@ dependencies:
46
45
  - 2
47
46
  - 0
48
47
  version: 1.2.0
49
- requirement: *id002
50
- type: :runtime
51
- name: windows-pr
48
+ version_requirements: *id002
52
49
  prerelease: false
50
+ name: windows-pr
51
+ type: :runtime
53
52
  - !ruby/object:Gem::Dependency
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ requirement: &id003 !ruby/object:Gem::Requirement
55
54
  none: false
56
55
  requirements:
57
56
  - - ~>
@@ -62,12 +61,12 @@ dependencies:
62
61
  - 6
63
62
  - 5
64
63
  version: 0.6.5
65
- requirement: *id003
66
- type: :runtime
67
- name: win32-process
64
+ version_requirements: *id003
68
65
  prerelease: false
66
+ name: win32-process
67
+ type: :runtime
69
68
  - !ruby/object:Gem::Dependency
70
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ requirement: &id004 !ruby/object:Gem::Requirement
71
70
  none: false
72
71
  requirements:
73
72
  - - ~>
@@ -78,12 +77,12 @@ dependencies:
78
77
  - 5
79
78
  - 2
80
79
  version: 0.5.2
81
- requirement: *id004
82
- type: :runtime
83
- name: win32-clipboard
80
+ version_requirements: *id004
84
81
  prerelease: false
82
+ name: win32-clipboard
83
+ type: :runtime
85
84
  - !ruby/object:Gem::Dependency
86
- version_requirements: &id005 !ruby/object:Gem::Requirement
85
+ requirement: &id005 !ruby/object:Gem::Requirement
87
86
  none: false
88
87
  requirements:
89
88
  - - ">="
@@ -94,12 +93,12 @@ dependencies:
94
93
  - 1
95
94
  - 9
96
95
  version: 1.1.9
97
- requirement: *id005
98
- type: :runtime
99
- name: log4r
96
+ version_requirements: *id005
100
97
  prerelease: false
98
+ name: log4r
99
+ type: :runtime
101
100
  - !ruby/object:Gem::Dependency
102
- version_requirements: &id006 !ruby/object:Gem::Requirement
101
+ requirement: &id006 !ruby/object:Gem::Requirement
103
102
  none: false
104
103
  requirements:
105
104
  - - ">="
@@ -110,12 +109,12 @@ dependencies:
110
109
  - 0
111
110
  - 14
112
111
  version: 1.0.14
113
- requirement: *id006
114
- type: :development
115
- name: bundler
112
+ version_requirements: *id006
116
113
  prerelease: false
114
+ name: bundler
115
+ type: :development
117
116
  - !ruby/object:Gem::Dependency
118
- version_requirements: &id007 !ruby/object:Gem::Requirement
117
+ requirement: &id007 !ruby/object:Gem::Requirement
119
118
  none: false
120
119
  requirements:
121
120
  - - ">="
@@ -126,12 +125,12 @@ dependencies:
126
125
  - 6
127
126
  - 0
128
127
  version: 2.6.0
129
- requirement: *id007
130
- type: :development
131
- name: rspec
128
+ version_requirements: *id007
132
129
  prerelease: false
130
+ name: rspec
131
+ type: :development
133
132
  - !ruby/object:Gem::Dependency
134
- version_requirements: &id008 !ruby/object:Gem::Requirement
133
+ requirement: &id008 !ruby/object:Gem::Requirement
135
134
  none: false
136
135
  requirements:
137
136
  - - ~>
@@ -141,12 +140,12 @@ dependencies:
141
140
  - 1
142
141
  - 0
143
142
  version: "1.0"
144
- requirement: *id008
145
- type: :development
146
- name: cucumber
143
+ version_requirements: *id008
147
144
  prerelease: false
145
+ name: cucumber
146
+ type: :development
148
147
  - !ruby/object:Gem::Dependency
149
- version_requirements: &id009 !ruby/object:Gem::Requirement
148
+ requirement: &id009 !ruby/object:Gem::Requirement
150
149
  none: false
151
150
  requirements:
152
151
  - - ~>
@@ -157,12 +156,12 @@ dependencies:
157
156
  - 4
158
157
  - 2
159
158
  version: 0.4.2
160
- requirement: *id009
161
- type: :development
162
- name: aruba
159
+ version_requirements: *id009
163
160
  prerelease: false
161
+ name: aruba
162
+ type: :development
164
163
  - !ruby/object:Gem::Dependency
165
- version_requirements: &id010 !ruby/object:Gem::Requirement
164
+ requirement: &id010 !ruby/object:Gem::Requirement
166
165
  none: false
167
166
  requirements:
168
167
  - - ">="
@@ -173,12 +172,12 @@ dependencies:
173
172
  - 9
174
173
  - 2
175
174
  version: 0.9.2
176
- requirement: *id010
177
- type: :development
178
- name: rake
175
+ version_requirements: *id010
179
176
  prerelease: false
177
+ name: rake
178
+ type: :development
180
179
  - !ruby/object:Gem::Dependency
181
- version_requirements: &id011 !ruby/object:Gem::Requirement
180
+ requirement: &id011 !ruby/object:Gem::Requirement
182
181
  none: false
183
182
  requirements:
184
183
  - - ">="
@@ -189,12 +188,12 @@ dependencies:
189
188
  - 7
190
189
  - 2
191
190
  version: 0.7.2
192
- requirement: *id011
193
- type: :development
194
- name: yard
191
+ version_requirements: *id011
195
192
  prerelease: false
193
+ name: yard
194
+ type: :development
196
195
  - !ruby/object:Gem::Dependency
197
- version_requirements: &id012 !ruby/object:Gem::Requirement
196
+ requirement: &id012 !ruby/object:Gem::Requirement
198
197
  none: false
199
198
  requirements:
200
199
  - - ">="
@@ -205,12 +204,12 @@ dependencies:
205
204
  - 17
206
205
  - 2
207
206
  version: 1.17.2
208
- requirement: *id012
209
- type: :development
210
- name: redcarpet
207
+ version_requirements: *id012
211
208
  prerelease: false
209
+ name: redcarpet
210
+ type: :development
212
211
  - !ruby/object:Gem::Dependency
213
- version_requirements: &id013 !ruby/object:Gem::Requirement
212
+ requirement: &id013 !ruby/object:Gem::Requirement
214
213
  none: false
215
214
  requirements:
216
215
  - - ">="
@@ -221,10 +220,10 @@ dependencies:
221
220
  - 2
222
221
  - 0
223
222
  version: 1.2.0
224
- requirement: *id013
225
- type: :development
226
- name: win32console
223
+ version_requirements: *id013
227
224
  prerelease: false
225
+ name: win32console
226
+ type: :development
228
227
  description: Win32 GUI testing framework
229
228
  email:
230
229
  - robert@gearheadforhire.com
@@ -318,7 +317,6 @@ files:
318
317
  - spec/spec_helper.rb
319
318
  - spec/watchr.rb
320
319
  - win32-autogui.gemspec
321
- has_rdoc: true
322
320
  homepage: http://rubygems.org/gems/win32-autogui
323
321
  licenses: []
324
322
 
@@ -355,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
355
353
  requirements: []
356
354
 
357
355
  rubyforge_project: win32-autogui
358
- rubygems_version: 1.3.7
356
+ rubygems_version: 1.8.12
359
357
  signing_key:
360
358
  specification_version: 3
361
359
  summary: Win32 GUI testing framework