oats 0.0.1

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 (181) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +15 -0
  3. data/README.txt +165 -0
  4. data/Rakefile +2 -0
  5. data/bin/agent +204 -0
  6. data/bin/oats +10 -0
  7. data/bin/occ +29 -0
  8. data/bin/results_cleanup +6 -0
  9. data/doc/COPYING +55 -0
  10. data/doc/LICENSE +55 -0
  11. data/doc/OATS_Framework.doc +0 -0
  12. data/doc/classes/ApplicationLogs.html +239 -0
  13. data/doc/classes/Campaign.html +843 -0
  14. data/doc/classes/CommandlineOptions.html +131 -0
  15. data/doc/classes/Driver.html +182 -0
  16. data/doc/classes/Hash.html +137 -0
  17. data/doc/classes/Ide.html +194 -0
  18. data/doc/classes/MapSelenium.html +197 -0
  19. data/doc/classes/Net.html +107 -0
  20. data/doc/classes/Oats/OatsFilterError.html +119 -0
  21. data/doc/classes/Oats.html +998 -0
  22. data/doc/classes/OatsAssertError.html +119 -0
  23. data/doc/classes/OatsBadInput.html +119 -0
  24. data/doc/classes/OatsData.html +290 -0
  25. data/doc/classes/OatsError.html +117 -0
  26. data/doc/classes/OatsExit.html +117 -0
  27. data/doc/classes/OatsLock.html +254 -0
  28. data/doc/classes/OatsMain.html +182 -0
  29. data/doc/classes/OatsMysqlError.html +113 -0
  30. data/doc/classes/OatsMysqlMissingInput.html +113 -0
  31. data/doc/classes/OatsReportError.html +113 -0
  32. data/doc/classes/OatsSetupError.html +119 -0
  33. data/doc/classes/OatsTestError.html +119 -0
  34. data/doc/classes/OatsTestExit.html +119 -0
  35. data/doc/classes/OatsTestLocateError.html +120 -0
  36. data/doc/classes/OatsVerifyError.html +119 -0
  37. data/doc/classes/Ragent.html +397 -0
  38. data/doc/classes/Rclient.html +236 -0
  39. data/doc/classes/Report.html +368 -0
  40. data/doc/classes/Reports.html +244 -0
  41. data/doc/classes/RestApi.html +333 -0
  42. data/doc/classes/RhttpClient.html +236 -0
  43. data/doc/classes/Rimap.html +170 -0
  44. data/doc/classes/Rmysql.html +176 -0
  45. data/doc/classes/Roptions.html +131 -0
  46. data/doc/classes/Rselenium.html +233 -0
  47. data/doc/classes/Rssh.html +138 -0
  48. data/doc/classes/Runnable.html +174 -0
  49. data/doc/classes/SFTriggers.html +206 -0
  50. data/doc/classes/Selenium/Client/Driver.html +211 -0
  51. data/doc/classes/Selenium/Client.html +107 -0
  52. data/doc/classes/Selenium.html +107 -0
  53. data/doc/classes/SystemCapture.html +304 -0
  54. data/doc/classes/TestCase.html +418 -0
  55. data/doc/classes/TestData.html +235 -0
  56. data/doc/classes/TestList.html +264 -0
  57. data/doc/classes/Tools.html +244 -0
  58. data/doc/classes/Util.html +201 -0
  59. data/doc/classes/Variation.html +206 -0
  60. data/doc/fr_class_index.html +92 -0
  61. data/doc/fr_method_index.html +465 -0
  62. data/doc/index.html +23 -0
  63. data/doc/oats_httpd.conf +32 -0
  64. data/doc/oats_user.yml +25 -0
  65. data/doc/rdoc-style.css +208 -0
  66. data/lib/deep_merge/.gitignore +2 -0
  67. data/lib/deep_merge/core.rb +195 -0
  68. data/lib/deep_merge/deep_merge.rb +1 -0
  69. data/lib/deep_merge/deep_merge_hash.rb +28 -0
  70. data/lib/deep_merge/rails_compat.rb +27 -0
  71. data/lib/oats/application_logs.rb +163 -0
  72. data/lib/oats/build_id.rb +58 -0
  73. data/lib/oats/commandline_options.rb +128 -0
  74. data/lib/oats/diff.rb +278 -0
  75. data/lib/oats/driver.rb +492 -0
  76. data/lib/oats/ide.rb +227 -0
  77. data/lib/oats/keywords.rb +67 -0
  78. data/lib/oats/log4r_init.rb +14 -0
  79. data/lib/oats/mysql.rb +97 -0
  80. data/lib/oats/oats.rb +637 -0
  81. data/lib/oats/oats_data.rb +400 -0
  82. data/lib/oats/oats_exceptions.rb +25 -0
  83. data/lib/oats/oats_lock.rb +261 -0
  84. data/lib/oats/oats_selenium_api.rb +639 -0
  85. data/lib/oats/oselenium.rb +189 -0
  86. data/lib/oats/ossh.rb +36 -0
  87. data/lib/oats/patches_for_eventmachine_12.10.rb +66 -0
  88. data/lib/oats/ragent.rb +321 -0
  89. data/lib/oats/rclient.rb +42 -0
  90. data/lib/oats/report.rb +207 -0
  91. data/lib/oats/roptions.rb +88 -0
  92. data/lib/oats/test_case.rb +510 -0
  93. data/lib/oats/test_data.rb +98 -0
  94. data/lib/oats/test_list.rb +141 -0
  95. data/lib/oats/unixdiff.rb +75 -0
  96. data/lib/oats/util.rb +125 -0
  97. data/lib/oats/version.rb +3 -0
  98. data/lib/oats.rb +36 -0
  99. data/nbproject/configs/agent.properties +0 -0
  100. data/nbproject/configs/gr.properties +0 -0
  101. data/nbproject/project.properties +10 -0
  102. data/nbproject/project.xml +17 -0
  103. data/oats.gemspec +42 -0
  104. data/oats_ini.yml +258 -0
  105. data/oats_tests/Gemfile +18 -0
  106. data/oats_tests/aut_ini.yml +30 -0
  107. data/oats_tests/bin/oats +8 -0
  108. data/oats_tests/environments/qa.yml +4 -0
  109. data/oats_tests/environments/qa_chrome.yml +4 -0
  110. data/oats_tests/examples/core/coreExamples.yml +8 -0
  111. data/oats_tests/examples/core/expectedException.rb +39 -0
  112. data/oats_tests/examples/core/ok_verify.rb +2 -0
  113. data/oats_tests/examples/core/ok_verify.rb_ok/out/myfile.txt +1 -0
  114. data/oats_tests/examples/core/ok_verify.rb_ok/out/myfile2.txt +1 -0
  115. data/oats_tests/examples/core/ok_verify.rb_ok/rats_test.log +2 -0
  116. data/oats_tests/examples/core/unexpectedException.rb +30 -0
  117. data/oats_tests/examples/examples.yml +13 -0
  118. data/oats_tests/examples/gui/guiExamples.yml +7 -0
  119. data/oats_tests/examples/gui/seleniumGoogle.rb +10 -0
  120. data/oats_tests/examples/gui/webdriverGoogle.rb +9 -0
  121. data/oats_tests/examples/keywords/SampleXlList-1.xls +0 -0
  122. data/oats_tests/examples/keywords/SampleXlList-2.xls +0 -0
  123. data/oats_tests/examples/keywords/SampleXlLists.xls +0 -0
  124. data/oats_tests/examples/keywords/keywordsDriver.rb +1 -0
  125. data/oats_tests/examples/keywords/keywordsExamples.yml +8 -0
  126. data/oats_tests/examples/keywords/keywordsTC1.yml +5 -0
  127. data/oats_tests/examples/keywords/keywordsTestlist.yml +16 -0
  128. data/oats_tests/examples/needsWork/addTestDynamically.rb +4 -0
  129. data/oats_tests/examples/needsWork/emailVerify.rb +34 -0
  130. data/oats_tests/examples/needsWork/testSql/rtest.sql +6 -0
  131. data/oats_tests/examples/needsWork/testSql/rtest.yml +11 -0
  132. data/oats_tests/examples/occTest/occTest.rb +13 -0
  133. data/oats_tests/examples/occTest/occTest_1.rb +1 -0
  134. data/oats_tests/examples/occTest/occTest_1_1.rb +1 -0
  135. data/oats_tests/examples/occTest/occTest_1_2.rb +1 -0
  136. data/oats_tests/examples/occTest/occTest_1_3.rb +1 -0
  137. data/oats_tests/examples/occTest/occTest_1_4.rb +1 -0
  138. data/oats_tests/examples/occTest/occTest_2.rb +1 -0
  139. data/oats_tests/examples/occTest/occTest_2_1.rb +1 -0
  140. data/oats_tests/examples/occTest/occTest_2_2.rb +1 -0
  141. data/oats_tests/examples/occTest/occTest_2_3.rb +1 -0
  142. data/oats_tests/examples/occTest/occTest_2_4.rb +1 -0
  143. data/oats_tests/examples/occTest/occTest_3.rb +1 -0
  144. data/oats_tests/examples/occTest/occTest_3_1.rb +1 -0
  145. data/oats_tests/examples/occTest/occTest_3_2.rb +1 -0
  146. data/oats_tests/examples/occTest/occTest_3_3.rb +1 -0
  147. data/oats_tests/examples/occTest/occTest_3_4.rb +1 -0
  148. data/oats_tests/examples/occTest/occTest_4.rb +1 -0
  149. data/oats_tests/examples/occTest/occTestlist.yml +9 -0
  150. data/oats_tests/examples/occTest/occTestlist_1.yml +9 -0
  151. data/oats_tests/examples/occTest/occTestlist_2.yml +9 -0
  152. data/oats_tests/examples/occTest/occTestlist_3.yml +9 -0
  153. data/oats_tests/examples/occTest/variation1.yml +4 -0
  154. data/oats_tests/examples/occTest/variation2.yml +4 -0
  155. data/oats_tests/examples/testFileLocationUnitTests/extn_driver.rb +4 -0
  156. data/oats_tests/examples/testFileLocationUnitTests/folder/oats.yml +3 -0
  157. data/oats_tests/examples/testFileLocationUnitTests/folder/t1.rb +2 -0
  158. data/oats_tests/examples/testFileLocationUnitTests/folder1/t1.yml +2 -0
  159. data/oats_tests/examples/testFileLocationUnitTests/folder1/t1_1.yml +3 -0
  160. data/oats_tests/examples/testFileLocationUnitTests/folder2/oats.yml +3 -0
  161. data/oats_tests/examples/testFileLocationUnitTests/folder2/t1.rb +2 -0
  162. data/oats_tests/examples/testFileLocationUnitTests/folder2/t1.yml +2 -0
  163. data/oats_tests/examples/testFileLocationUnitTests/no_yaml.rb +3 -0
  164. data/oats_tests/examples/testFileLocationUnitTests/post_yaml.rb +1 -0
  165. data/oats_tests/examples/testFileLocationUnitTests/t1.rb +4 -0
  166. data/oats_tests/examples/testFileLocationUnitTests/t1.yml +2 -0
  167. data/oats_tests/examples/testFileLocationUnitTests/t1_1.yml +3 -0
  168. data/oats_tests/examples/testFileLocationUnitTests/testDir/oats.yml +3 -0
  169. data/oats_tests/examples/testFileLocationUnitTests/testDir/t1.rb +2 -0
  170. data/oats_tests/examples/testFileLocationUnitTests/testDir/t1.yml +2 -0
  171. data/oats_tests/examples/testFileLocationUnitTests/testDir2/t1.rb +2 -0
  172. data/oats_tests/examples/testFileLocationUnitTests/testDir2/t1.yml +2 -0
  173. data/oats_tests/examples/testFileLocationUnitTests/unitTestList.yml +36 -0
  174. data/oats_tests/examples/testFileLocationUnitTests/yml_driver.rb +2 -0
  175. data/oats_tests/lib/business.rb +28 -0
  176. data/oats_tests/lib/sample_xl_lists.rb +37 -0
  177. data/test/common_test_unit_setup.rb +21 -0
  178. data/test/test_basic.rb +16 -0
  179. data/test/test_selenium.rb +16 -0
  180. data/test/test_xl_lists.rb +16 -0
  181. metadata +291 -0
@@ -0,0 +1,264 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: TestList</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">TestList</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/test_list_rb.html">
59
+ lib/test_list.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ <a href="TestList.html">TestList</a> has array of variations
84
+ </p>
85
+
86
+ </div>
87
+
88
+
89
+ </div>
90
+
91
+ <div id="method-list">
92
+ <h3 class="section-bar">Methods</h3>
93
+
94
+ <div class="name-list">
95
+ <a href="#M000217">add_variation</a>&nbsp;&nbsp;
96
+ <a href="#M000214">current</a>&nbsp;&nbsp;
97
+ <a href="#M000215">current=</a>&nbsp;&nbsp;
98
+ <a href="#M000218">new</a>&nbsp;&nbsp;
99
+ <a href="#M000216">txt_tests</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <!-- if includes -->
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+ <div id="attribute-list">
115
+ <h3 class="section-bar">Attributes</h3>
116
+
117
+ <div class="name-list">
118
+ <table>
119
+ <tr class="top-aligned-row context-row">
120
+ <td class="context-item-name">end_time</td>
121
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
122
+ <td class="context-item-desc">
123
+ Parent variation, start and end times
124
+
125
+ </td>
126
+ </tr>
127
+ <tr class="top-aligned-row context-row">
128
+ <td class="context-item-name">id</td>
129
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
130
+ <td class="context-item-desc">
131
+ Path of test relative to the dir_tests library
132
+
133
+ </td>
134
+ </tr>
135
+ <tr class="top-aligned-row context-row">
136
+ <td class="context-item-name">parent_variation</td>
137
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
138
+ <td class="context-item-desc">
139
+ Parent variation, start and end times
140
+
141
+ </td>
142
+ </tr>
143
+ <tr class="top-aligned-row context-row">
144
+ <td class="context-item-name">path</td>
145
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
146
+ <td class="context-item-desc">
147
+ Absolute path to the test.yml
148
+
149
+ </td>
150
+ </tr>
151
+ <tr class="top-aligned-row context-row">
152
+ <td class="context-item-name">start_time</td>
153
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
154
+ <td class="context-item-desc">
155
+ Parent variation, start and end times
156
+
157
+ </td>
158
+ </tr>
159
+ <tr class="top-aligned-row context-row">
160
+ <td class="context-item-name">variations</td>
161
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
162
+ <td class="context-item-desc">
163
+ Array of <a href="Variation.html">Variation</a> structures
164
+
165
+ </td>
166
+ </tr>
167
+ </table>
168
+ </div>
169
+ </div>
170
+
171
+
172
+
173
+ <!-- if method_list -->
174
+ <div id="methods">
175
+ <h3 class="section-bar">Public Class methods</h3>
176
+
177
+ <div id="method-M000214" class="method-detail">
178
+ <a name="M000214"></a>
179
+
180
+ <div class="method-heading">
181
+ <a href="TestList.src/M000214.html" target="Code" class="method-signature"
182
+ onclick="popupCode('TestList.src/M000214.html');return false;">
183
+ <span class="method-name">current</span><span class="method-args">()</span>
184
+ </a>
185
+ </div>
186
+
187
+ <div class="method-description">
188
+ <p>
189
+ Currently active test list
190
+ </p>
191
+ </div>
192
+ </div>
193
+
194
+ <div id="method-M000215" class="method-detail">
195
+ <a name="M000215"></a>
196
+
197
+ <div class="method-heading">
198
+ <a href="TestList.src/M000215.html" target="Code" class="method-signature"
199
+ onclick="popupCode('TestList.src/M000215.html');return false;">
200
+ <span class="method-name">current=</span><span class="method-args">(list)</span>
201
+ </a>
202
+ </div>
203
+
204
+ <div class="method-description">
205
+ </div>
206
+ </div>
207
+
208
+ <div id="method-M000218" class="method-detail">
209
+ <a name="M000218"></a>
210
+
211
+ <div class="method-heading">
212
+ <a href="TestList.src/M000218.html" target="Code" class="method-signature"
213
+ onclick="popupCode('TestList.src/M000218.html');return false;">
214
+ <span class="method-name">new</span><span class="method-args">(id, path)</span>
215
+ </a>
216
+ </div>
217
+
218
+ <div class="method-description">
219
+ </div>
220
+ </div>
221
+
222
+ <div id="method-M000216" class="method-detail">
223
+ <a name="M000216"></a>
224
+
225
+ <div class="method-heading">
226
+ <a href="TestList.src/M000216.html" target="Code" class="method-signature"
227
+ onclick="popupCode('TestList.src/M000216.html');return false;">
228
+ <span class="method-name">txt_tests</span><span class="method-args">(pth)</span>
229
+ </a>
230
+ </div>
231
+
232
+ <div class="method-description">
233
+ </div>
234
+ </div>
235
+
236
+ <h3 class="section-bar">Public Instance methods</h3>
237
+
238
+ <div id="method-M000217" class="method-detail">
239
+ <a name="M000217"></a>
240
+
241
+ <div class="method-heading">
242
+ <a href="TestList.src/M000217.html" target="Code" class="method-signature"
243
+ onclick="popupCode('TestList.src/M000217.html');return false;">
244
+ <span class="method-name">add_variation</span><span class="method-args">(var)</span>
245
+ </a>
246
+ </div>
247
+
248
+ <div class="method-description">
249
+ </div>
250
+ </div>
251
+
252
+
253
+ </div>
254
+
255
+
256
+ </div>
257
+
258
+
259
+ <div id="validator-badges">
260
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
261
+ </div>
262
+
263
+ </body>
264
+ </html>
@@ -0,0 +1,244 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Tools</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Tools</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/tests/lib/campaign_tools_rb.html">
59
+ tests/lib/campaign_tools.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000162">budget_recommendation_tool</a>&nbsp;&nbsp;
90
+ <a href="#M000163">category_metrics</a>&nbsp;&nbsp;
91
+ <a href="#M000164">invoice_generator</a>&nbsp;&nbsp;
92
+ <a href="#M000165">keyword_traffic_estimator</a>&nbsp;&nbsp;
93
+ <a href="#M000161">master_sales_tool</a>&nbsp;&nbsp;
94
+ <a href="#M000160">new</a>&nbsp;&nbsp;
95
+ <a href="#M000166">proposal_generator</a>&nbsp;&nbsp;
96
+ <a href="#M000167">proxy_review_tool</a>&nbsp;&nbsp;
97
+ </div>
98
+ </div>
99
+
100
+ </div>
101
+
102
+
103
+ <!-- if includes -->
104
+
105
+ <div id="section">
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ <!-- if method_list -->
115
+ <div id="methods">
116
+ <h3 class="section-bar">Public Class methods</h3>
117
+
118
+ <div id="method-M000160" class="method-detail">
119
+ <a name="M000160"></a>
120
+
121
+ <div class="method-heading">
122
+ <a href="Tools.src/M000160.html" target="Code" class="method-signature"
123
+ onclick="popupCode('Tools.src/M000160.html');return false;">
124
+ <span class="method-name">new</span><span class="method-args">(env_name, category = nil, subcategory = nil, target_area = nil, keyword = nil, invoice_type = nil, product = nil, url = nil, phone_number = nil)</span>
125
+ </a>
126
+ </div>
127
+
128
+ <div class="method-description">
129
+ </div>
130
+ </div>
131
+
132
+ <h3 class="section-bar">Public Instance methods</h3>
133
+
134
+ <div id="method-M000162" class="method-detail">
135
+ <a name="M000162"></a>
136
+
137
+ <div class="method-heading">
138
+ <a href="Tools.src/M000162.html" target="Code" class="method-signature"
139
+ onclick="popupCode('Tools.src/M000162.html');return false;">
140
+ <span class="method-name">budget_recommendation_tool</span><span class="method-args">()</span>
141
+ </a>
142
+ </div>
143
+
144
+ <div class="method-description">
145
+ </div>
146
+ </div>
147
+
148
+ <div id="method-M000163" class="method-detail">
149
+ <a name="M000163"></a>
150
+
151
+ <div class="method-heading">
152
+ <a href="Tools.src/M000163.html" target="Code" class="method-signature"
153
+ onclick="popupCode('Tools.src/M000163.html');return false;">
154
+ <span class="method-name">category_metrics</span><span class="method-args">()</span>
155
+ </a>
156
+ </div>
157
+
158
+ <div class="method-description">
159
+ </div>
160
+ </div>
161
+
162
+ <div id="method-M000164" class="method-detail">
163
+ <a name="M000164"></a>
164
+
165
+ <div class="method-heading">
166
+ <a href="Tools.src/M000164.html" target="Code" class="method-signature"
167
+ onclick="popupCode('Tools.src/M000164.html');return false;">
168
+ <span class="method-name">invoice_generator</span><span class="method-args">()</span>
169
+ </a>
170
+ </div>
171
+
172
+ <div class="method-description">
173
+ </div>
174
+ </div>
175
+
176
+ <div id="method-M000165" class="method-detail">
177
+ <a name="M000165"></a>
178
+
179
+ <div class="method-heading">
180
+ <a href="Tools.src/M000165.html" target="Code" class="method-signature"
181
+ onclick="popupCode('Tools.src/M000165.html');return false;">
182
+ <span class="method-name">keyword_traffic_estimator</span><span class="method-args">()</span>
183
+ </a>
184
+ </div>
185
+
186
+ <div class="method-description">
187
+ </div>
188
+ </div>
189
+
190
+ <div id="method-M000161" class="method-detail">
191
+ <a name="M000161"></a>
192
+
193
+ <div class="method-heading">
194
+ <a href="Tools.src/M000161.html" target="Code" class="method-signature"
195
+ onclick="popupCode('Tools.src/M000161.html');return false;">
196
+ <span class="method-name">master_sales_tool</span><span class="method-args">()</span>
197
+ </a>
198
+ </div>
199
+
200
+ <div class="method-description">
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000166" class="method-detail">
205
+ <a name="M000166"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="Tools.src/M000166.html" target="Code" class="method-signature"
209
+ onclick="popupCode('Tools.src/M000166.html');return false;">
210
+ <span class="method-name">proposal_generator</span><span class="method-args">()</span>
211
+ </a>
212
+ </div>
213
+
214
+ <div class="method-description">
215
+ </div>
216
+ </div>
217
+
218
+ <div id="method-M000167" class="method-detail">
219
+ <a name="M000167"></a>
220
+
221
+ <div class="method-heading">
222
+ <a href="Tools.src/M000167.html" target="Code" class="method-signature"
223
+ onclick="popupCode('Tools.src/M000167.html');return false;">
224
+ <span class="method-name">proxy_review_tool</span><span class="method-args">()</span>
225
+ </a>
226
+ </div>
227
+
228
+ <div class="method-description">
229
+ </div>
230
+ </div>
231
+
232
+
233
+ </div>
234
+
235
+
236
+ </div>
237
+
238
+
239
+ <div id="validator-badges">
240
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
241
+ </div>
242
+
243
+ </body>
244
+ </html>