win32-autogui 0.5.1 → 0.5.2

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.
@@ -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