bauxite 0.6.18 → 0.6.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +21 -21
- data/README.md +293 -293
- data/Rakefile +128 -128
- data/bin/bauxite +27 -27
- data/doc/Bauxite.html +6 -9
- data/doc/Bauxite/Action.html +298 -315
- data/doc/Bauxite/ActionModule.html +23 -26
- data/doc/Bauxite/Application.html +36 -38
- data/doc/Bauxite/Context.html +303 -303
- data/doc/Bauxite/Errors.html +6 -9
- data/doc/Bauxite/Errors/AssertionError.html +6 -9
- data/doc/Bauxite/Errors/FileNotFoundError.html +6 -9
- data/doc/Bauxite/Errors/FormatError.html +6 -9
- data/doc/Bauxite/Loggers.html +6 -9
- data/doc/Bauxite/Loggers/CompositeLogger.html +29 -32
- data/doc/Bauxite/Loggers/EchoLogger.html +10 -13
- data/doc/Bauxite/Loggers/FileLogger.html +25 -28
- data/doc/Bauxite/Loggers/HtmlLogger.html +99 -102
- data/doc/Bauxite/Loggers/NullLogger.html +16 -19
- data/doc/Bauxite/Loggers/ReportLogger.html +43 -46
- data/doc/Bauxite/Loggers/TerminalLogger.html +76 -79
- data/doc/Bauxite/Loggers/XtermLogger.html +28 -31
- data/doc/Bauxite/Parser.html +87 -89
- data/doc/Bauxite/ParserModule.html +19 -22
- data/doc/Bauxite/Selector.html +99 -105
- data/doc/Bauxite/SelectorModule.html +27 -30
- data/doc/README_md.html +117 -103
- data/doc/created.rid +58 -58
- data/doc/fonts.css +167 -167
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +117 -103
- data/doc/js/darkfish.js +32 -11
- data/doc/js/jquery.js +0 -0
- data/doc/js/navigation.js +0 -0
- data/doc/js/search.js +0 -0
- data/doc/js/search_index.js +1 -1
- data/doc/js/searcher.js +0 -0
- data/doc/rdoc.css +580 -580
- data/doc/table_of_contents.html +69 -72
- data/lib/bauxite.rb +28 -28
- data/lib/bauxite/actions/alias.rb +51 -51
- data/lib/bauxite/actions/assert.rb +49 -49
- data/lib/bauxite/actions/asserth.rb +60 -60
- data/lib/bauxite/actions/assertm.rb +49 -49
- data/lib/bauxite/actions/assertv.rb +40 -40
- data/lib/bauxite/actions/assertw.rb +47 -47
- data/lib/bauxite/actions/break.rb +39 -39
- data/lib/bauxite/actions/capture.rb +61 -61
- data/lib/bauxite/actions/click.rb +36 -36
- data/lib/bauxite/actions/debug.rb +103 -103
- data/lib/bauxite/actions/doif.rb +43 -43
- data/lib/bauxite/actions/dounless.rb +43 -43
- data/lib/bauxite/actions/echo.rb +36 -36
- data/lib/bauxite/actions/exec.rb +46 -46
- data/lib/bauxite/actions/exit.rb +35 -35
- data/lib/bauxite/actions/failif.rb +52 -52
- data/lib/bauxite/actions/js.rb +41 -41
- data/lib/bauxite/actions/load.rb +49 -49
- data/lib/bauxite/actions/open.rb +35 -35
- data/lib/bauxite/actions/params.rb +40 -40
- data/lib/bauxite/actions/replace.rb +37 -37
- data/lib/bauxite/actions/reset.rb +38 -38
- data/lib/bauxite/actions/return.rb +68 -68
- data/lib/bauxite/actions/ruby.rb +58 -58
- data/lib/bauxite/actions/select.rb +48 -48
- data/lib/bauxite/actions/set.rb +39 -39
- data/lib/bauxite/actions/setif.rb +44 -44
- data/lib/bauxite/actions/source.rb +44 -44
- data/lib/bauxite/actions/store.rb +38 -38
- data/lib/bauxite/actions/submit.rb +37 -37
- data/lib/bauxite/actions/test.rb +67 -67
- data/lib/bauxite/actions/tryload.rb +71 -71
- data/lib/bauxite/actions/wait.rb +38 -38
- data/lib/bauxite/actions/write.rb +44 -44
- data/lib/bauxite/application.rb +349 -349
- data/lib/bauxite/core/action.rb +199 -199
- data/lib/bauxite/core/context.rb +791 -791
- data/lib/bauxite/core/errors.rb +41 -41
- data/lib/bauxite/core/logger.rb +169 -169
- data/lib/bauxite/core/parser.rb +85 -85
- data/lib/bauxite/core/selector.rb +152 -152
- data/lib/bauxite/loggers/composite.rb +91 -91
- data/lib/bauxite/loggers/echo.rb +36 -36
- data/lib/bauxite/loggers/file.rb +68 -68
- data/lib/bauxite/loggers/html.rb +154 -154
- data/lib/bauxite/loggers/terminal.rb +134 -134
- data/lib/bauxite/loggers/xterm.rb +101 -101
- data/lib/bauxite/parsers/csv.rb +43 -43
- data/lib/bauxite/parsers/default.rb +42 -42
- data/lib/bauxite/parsers/html.rb +79 -79
- data/lib/bauxite/selectors/attr.rb +39 -39
- data/lib/bauxite/selectors/frame.rb +60 -60
- data/lib/bauxite/selectors/json.rb +88 -88
- data/lib/bauxite/selectors/sid.rb +38 -38
- data/lib/bauxite/selectors/smart.rb +80 -80
- data/lib/bauxite/selectors/window.rb +77 -77
- data/test/alert.bxt +3 -3
- data/test/alert/page.html +4 -4
- data/test/alias.bxt +9 -9
- data/test/asserth.bxt +2 -2
- data/test/assertv.bxt +1 -1
- data/test/assertw.bxt +7 -7
- data/test/broken.bxt.manual +0 -0
- data/test/bug_load_path.bxt.manual +0 -0
- data/test/bug_load_path/broken.bxt.manual +0 -0
- data/test/bug_load_path/test.bxt +0 -0
- data/test/capture.bxt.manual +20 -20
- data/test/capture/my_test.bxt +1 -1
- data/test/capture/page.html +6 -6
- data/test/capture_on_error.bxt.manual +3 -3
- data/test/capture_on_error/my_test.bxt +1 -1
- data/test/capture_on_error/page.html +2 -2
- data/test/debug.bxt.manual +0 -0
- data/test/default_selector.bxt.manual +7 -7
- data/test/default_selector/page.html +10 -10
- data/test/default_selector_var.bxt +1 -1
- data/test/delay.bxt +2 -2
- data/test/delay/page.html +4 -4
- data/test/doif.bxt +6 -6
- data/test/dounless.bxt +6 -6
- data/test/exec.bxt +6 -6
- data/test/exit.bxt +3 -3
- data/test/exit/test.bxt +3 -3
- data/test/extension.bxt.manual +4 -4
- data/test/extension/custom.rb +12 -12
- data/test/extension/page.html +4 -4
- data/test/failif.bxt +7 -7
- data/test/failif/page.html +5 -5
- data/test/format.bxt +17 -17
- data/test/format/page.html +6 -6
- data/test/frame.bxt +6 -6
- data/test/frame/child_frame.html +6 -6
- data/test/frame/grandchild_frame.html +4 -4
- data/test/frame/page.html +4 -4
- data/test/js.bxt +4 -4
- data/test/json.bxt +19 -19
- data/test/json/array.json +3 -3
- data/test/json/object.json +13 -13
- data/test/load.bxt +18 -18
- data/test/load/child.bxt +12 -12
- data/test/parsers.bxt +1 -1
- data/test/parsers.csv +7 -7
- data/test/parsers.html +32 -32
- data/test/parsers/page.html +6 -6
- data/test/return.bxt +1 -1
- data/test/return/f1.bxt +1 -1
- data/test/return/f2.bxt +1 -1
- data/test/return/f3.bxt +1 -1
- data/test/return/f4.bxt +2 -2
- data/test/ruby.bxt +1 -1
- data/test/ruby/custom.rb +5 -5
- data/test/select.bxt +9 -9
- data/test/select/page.html +8 -8
- data/test/selectors.bxt +7 -7
- data/test/selectors/page.html +6 -6
- data/test/set_builtin.bxt +5 -0
- data/test/set_builtin/page.html +5 -0
- data/test/setif.bxt +3 -3
- data/test/smart_selector.bxt +17 -17
- data/test/smart_selector/page.html +17 -17
- data/test/stdin.bxt +0 -0
- data/test/submit.bxt +4 -4
- data/test/submit/page.html +6 -6
- data/test/submit/page2.html +4 -4
- data/test/test.bxt.manual +6 -6
- data/test/test/test1.bxt +2 -2
- data/test/test/test2.bxt +3 -3
- data/test/test/test3.bxt +2 -2
- data/test/test/test4.bxt +1 -1
- data/test/test/test5.bxt +1 -1
- data/test/window.bxt +14 -14
- data/test/window/page.html +5 -5
- data/test/window/popup.html +4 -4
- metadata +5 -3
@@ -6,20 +6,17 @@
|
|
6
6
|
|
7
7
|
<title>class Bauxite::Loggers::XtermLogger - RDoc Documentation</title>
|
8
8
|
|
9
|
-
<link href="../../fonts.css" rel="stylesheet">
|
10
|
-
<link href="../../rdoc.css" rel="stylesheet">
|
11
|
-
|
12
9
|
<script type="text/javascript">
|
13
10
|
var rdoc_rel_prefix = "../../";
|
14
11
|
</script>
|
15
12
|
|
16
13
|
<script src="../../js/jquery.js"></script>
|
17
|
-
<script src="../../js/navigation.js"></script>
|
18
|
-
<script src="../../js/search_index.js"></script>
|
19
|
-
<script src="../../js/search.js"></script>
|
20
|
-
<script src="../../js/searcher.js"></script>
|
21
14
|
<script src="../../js/darkfish.js"></script>
|
22
15
|
|
16
|
+
<link href="../../css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="../../css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
23
20
|
|
24
21
|
<body id="top" role="document" class="class">
|
25
22
|
<nav role="navigation">
|
@@ -154,13 +151,13 @@ instead.</p>
|
|
154
151
|
|
155
152
|
<div class="method-source-code" id="_fmt-source">
|
156
153
|
<pre><span class="ruby-comment"># File lib/bauxite/loggers/xterm.rb, line 60</span>
|
157
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_fmt</span>(<span class="ruby-identifier">color</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">size</span> = <span class="ruby-value">0</span>)
|
158
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-keyword">super</span>(<span class="ruby-identifier">color</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">size</span>)
|
159
|
-
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:nc</span>] <span class="ruby-keyword">or</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:color</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'no'</span>
|
160
|
-
<span class="ruby-identifier">text</span>
|
161
|
-
<span class="ruby-keyword">else</span>
|
162
|
-
<span class="ruby-node">"\033[#{COLORS[color]}m#{text}\033[0m"</span>
|
163
|
-
<span class="ruby-keyword">end</span>
|
154
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_fmt</span>(<span class="ruby-identifier">color</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">size</span> = <span class="ruby-value">0</span>)
|
155
|
+
<span class="ruby-identifier">text</span> = <span class="ruby-keyword">super</span>(<span class="ruby-identifier">color</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">size</span>)
|
156
|
+
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:nc</span>] <span class="ruby-keyword">or</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:color</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'no'</span>
|
157
|
+
<span class="ruby-identifier">text</span>
|
158
|
+
<span class="ruby-keyword">else</span>
|
159
|
+
<span class="ruby-node">"\033[#{COLORS[color]}m#{text}\033[0m"</span>
|
160
|
+
<span class="ruby-keyword">end</span>
|
164
161
|
<span class="ruby-keyword">end</span></pre>
|
165
162
|
</div>
|
166
163
|
|
@@ -192,9 +189,9 @@ instead.</p>
|
|
192
189
|
|
193
190
|
<div class="method-source-code" id="_restore_cursor-source">
|
194
191
|
<pre><span class="ruby-comment"># File lib/bauxite/loggers/xterm.rb, line 74</span>
|
195
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_restore_cursor</span>
|
196
|
-
<span class="ruby-identifier">print</span> <span class="ruby-string">"\033[u"</span>
|
197
|
-
<span class="ruby-keyword">true</span>
|
192
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_restore_cursor</span>
|
193
|
+
<span class="ruby-identifier">print</span> <span class="ruby-string">"\033[u"</span>
|
194
|
+
<span class="ruby-keyword">true</span>
|
198
195
|
<span class="ruby-keyword">end</span></pre>
|
199
196
|
</div>
|
200
197
|
|
@@ -226,9 +223,9 @@ instead.</p>
|
|
226
223
|
|
227
224
|
<div class="method-source-code" id="_save_cursor-source">
|
228
225
|
<pre><span class="ruby-comment"># File lib/bauxite/loggers/xterm.rb, line 69</span>
|
229
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_save_cursor</span>
|
230
|
-
<span class="ruby-identifier">print</span> <span class="ruby-string">"\033[s"</span>
|
231
|
-
<span class="ruby-keyword">true</span>
|
226
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_save_cursor</span>
|
227
|
+
<span class="ruby-identifier">print</span> <span class="ruby-string">"\033[s"</span>
|
228
|
+
<span class="ruby-keyword">true</span>
|
232
229
|
<span class="ruby-keyword">end</span></pre>
|
233
230
|
</div>
|
234
231
|
|
@@ -265,15 +262,15 @@ instead.</p>
|
|
265
262
|
|
266
263
|
<div class="method-source-code" id="_screen_width-source">
|
267
264
|
<pre><span class="ruby-comment"># File lib/bauxite/loggers/xterm.rb, line 84</span>
|
268
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_screen_width</span>
|
269
|
-
<span class="ruby-keyword">if</span> <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-string">'host_os'</span>] <span class="ruby-operator">=~</span>
|
270
|
-
<span class="ruby-regexp">/(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i</span>
|
271
|
-
(<span class="ruby-identifier">_dynamic_width_stty</span>.<span class="ruby-identifier">nonzero?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">_dynamic_width_tput</span>)
|
272
|
-
<span class="ruby-keyword">else</span>
|
273
|
-
<span class="ruby-keyword">super</span>
|
274
|
-
<span class="ruby-keyword">end</span>
|
275
|
-
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
276
|
-
<span class="ruby-keyword">super</span>
|
265
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">_screen_width</span>
|
266
|
+
<span class="ruby-keyword">if</span> <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-string">'host_os'</span>] <span class="ruby-operator">=~</span>
|
267
|
+
<span class="ruby-regexp">/(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i</span>
|
268
|
+
(<span class="ruby-identifier">_dynamic_width_stty</span>.<span class="ruby-identifier">nonzero?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">_dynamic_width_tput</span>)
|
269
|
+
<span class="ruby-keyword">else</span>
|
270
|
+
<span class="ruby-keyword">super</span>
|
271
|
+
<span class="ruby-keyword">end</span>
|
272
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
273
|
+
<span class="ruby-keyword">super</span>
|
277
274
|
<span class="ruby-keyword">end</span></pre>
|
278
275
|
</div>
|
279
276
|
|
@@ -293,7 +290,7 @@ instead.</p>
|
|
293
290
|
|
294
291
|
<footer id="validator-badges" role="contentinfo">
|
295
292
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
296
|
-
<p>Generated by <a href="http://
|
297
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-
|
293
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
|
294
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
298
295
|
</footer>
|
299
296
|
|
data/doc/Bauxite/Parser.html
CHANGED
@@ -6,20 +6,17 @@
|
|
6
6
|
|
7
7
|
<title>class Bauxite::Parser - RDoc Documentation</title>
|
8
8
|
|
9
|
-
<link href="../fonts.css" rel="stylesheet">
|
10
|
-
<link href="../rdoc.css" rel="stylesheet">
|
11
|
-
|
12
9
|
<script type="text/javascript">
|
13
10
|
var rdoc_rel_prefix = "../";
|
14
11
|
</script>
|
15
12
|
|
16
13
|
<script src="../js/jquery.js"></script>
|
17
|
-
<script src="../js/navigation.js"></script>
|
18
|
-
<script src="../js/search_index.js"></script>
|
19
|
-
<script src="../js/search.js"></script>
|
20
|
-
<script src="../js/searcher.js"></script>
|
21
14
|
<script src="../js/darkfish.js"></script>
|
22
15
|
|
16
|
+
<link href="../css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="../css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
23
20
|
|
24
21
|
<body id="top" role="document" class="class">
|
25
22
|
<nav role="navigation">
|
@@ -131,12 +128,13 @@ parser can't handle the file.</p>
|
|
131
128
|
|
132
129
|
<p>Each element in the output array must contain the following fields:</p>
|
133
130
|
|
134
|
-
<pre>[
|
135
|
-
action
|
136
|
-
args
|
137
|
-
text
|
138
|
-
line
|
139
|
-
]
|
131
|
+
<pre class="ruby">[
|
132
|
+
<span class="ruby-identifier">action</span>, <span class="ruby-comment"># action name</span>
|
133
|
+
<span class="ruby-identifier">args</span>, <span class="ruby-comment"># args array</span>
|
134
|
+
<span class="ruby-identifier">text</span>, <span class="ruby-comment"># raw action text (before parsing), or nil</span>
|
135
|
+
<span class="ruby-identifier">line</span> <span class="ruby-comment"># line in the file that defined the action</span>
|
136
|
+
]
|
137
|
+
</pre>
|
140
138
|
|
141
139
|
<p>For example:</p>
|
142
140
|
|
@@ -219,21 +217,21 @@ parser can't handle the file.</p>
|
|
219
217
|
|
220
218
|
<div class="method-source-code" id="csv-source">
|
221
219
|
<pre><span class="ruby-comment"># File lib/bauxite/parsers/csv.rb, line 27</span>
|
222
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">csv</span>(<span class="ruby-identifier">file</span>)
|
223
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">end_with?</span> <span class="ruby-string">'.csv'</span>
|
224
|
-
|
225
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
226
|
-
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">each_with_index</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">text</span>,<span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
227
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\r?\n$/</span>, <span class="ruby-string">''</span>)
|
228
|
-
<span class="ruby-keyword">next</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/^\s*(#|$)/</span>
|
229
|
-
<span class="ruby-keyword">begin</span>
|
230
|
-
<span class="ruby-identifier">data</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse_line</span>(<span class="ruby-identifier">text</span>)
|
231
|
-
[ <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">strip</span> }, <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">line</span> ]
|
232
|
-
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
233
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-node">"#{file} (line #{line+1}): #{e.message}"</span>
|
234
|
-
<span class="ruby-keyword">end</span>
|
235
|
-
<span class="ruby-keyword">end</span>
|
236
|
-
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> }
|
220
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">csv</span>(<span class="ruby-identifier">file</span>)
|
221
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">end_with?</span> <span class="ruby-string">'.csv'</span>
|
222
|
+
|
223
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
224
|
+
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">each_with_index</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">text</span>,<span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
225
|
+
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\r?\n$/</span>, <span class="ruby-string">''</span>)
|
226
|
+
<span class="ruby-keyword">next</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/^\s*(#|$)/</span>
|
227
|
+
<span class="ruby-keyword">begin</span>
|
228
|
+
<span class="ruby-identifier">data</span> = <span class="ruby-constant">CSV</span>.<span class="ruby-identifier">parse_line</span>(<span class="ruby-identifier">text</span>)
|
229
|
+
[ <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">strip</span> }, <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">line</span> ]
|
230
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
231
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-node">"#{file} (line #{line+1}): #{e.message}"</span>
|
232
|
+
<span class="ruby-keyword">end</span>
|
233
|
+
<span class="ruby-keyword">end</span>
|
234
|
+
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> }
|
237
235
|
<span class="ruby-keyword">end</span></pre>
|
238
236
|
</div>
|
239
237
|
|
@@ -265,20 +263,20 @@ parser can't handle the file.</p>
|
|
265
263
|
|
266
264
|
<div class="method-source-code" id="default-source">
|
267
265
|
<pre><span class="ruby-comment"># File lib/bauxite/parsers/default.rb, line 27</span>
|
268
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">io</span> = <span class="ruby-keyword">nil</span>)
|
269
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-string">'stdin'</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/\.[tb]xt(\..*)?$/</span>)
|
270
|
-
|
271
|
-
<span class="ruby-keyword">return</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">$stdin</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-string">'stdin'</span> <span class="ruby-keyword">and</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">io</span>
|
272
|
-
|
273
|
-
<span class="ruby-keyword">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">io</span><span class="ruby-operator">|</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">io</span>) } <span class="ruby-keyword">unless</span> <span class="ruby-identifier">io</span>
|
274
|
-
|
275
|
-
<span class="ruby-identifier">io</span>.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">each_with_index</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">text</span>,<span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
276
|
-
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\r?\n$/</span>, <span class="ruby-string">''</span>)
|
277
|
-
<span class="ruby-keyword">next</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/^\s*(#|$)/</span>
|
278
|
-
<span class="ruby-identifier">data</span> = <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse_action_default</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
279
|
-
[ <span class="ruby-identifier">data</span>[<span class="ruby-value">:action</span>], <span class="ruby-identifier">data</span>[<span class="ruby-value">:args</span>], <span class="ruby-identifier">text</span>, <span class="ruby-identifier">line</span> ]
|
280
|
-
<span class="ruby-keyword">end</span>
|
281
|
-
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> }
|
266
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">io</span> = <span class="ruby-keyword">nil</span>)
|
267
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-string">'stdin'</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/\.[tb]xt(\..*)?$/</span>)
|
268
|
+
|
269
|
+
<span class="ruby-keyword">return</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">$stdin</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-string">'stdin'</span> <span class="ruby-keyword">and</span> <span class="ruby-keyword">not</span> <span class="ruby-identifier">io</span>
|
270
|
+
|
271
|
+
<span class="ruby-keyword">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">io</span><span class="ruby-operator">|</span> <span class="ruby-identifier">default</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">io</span>) } <span class="ruby-keyword">unless</span> <span class="ruby-identifier">io</span>
|
272
|
+
|
273
|
+
<span class="ruby-identifier">io</span>.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">each_with_index</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">text</span>,<span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
274
|
+
<span class="ruby-identifier">text</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\r?\n$/</span>, <span class="ruby-string">''</span>)
|
275
|
+
<span class="ruby-keyword">next</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/^\s*(#|$)/</span>
|
276
|
+
<span class="ruby-identifier">data</span> = <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse_action_default</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>)
|
277
|
+
[ <span class="ruby-identifier">data</span>[<span class="ruby-value">:action</span>], <span class="ruby-identifier">data</span>[<span class="ruby-value">:args</span>], <span class="ruby-identifier">text</span>, <span class="ruby-identifier">line</span> ]
|
278
|
+
<span class="ruby-keyword">end</span>
|
279
|
+
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">item</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> }
|
282
280
|
<span class="ruby-keyword">end</span></pre>
|
283
281
|
</div>
|
284
282
|
|
@@ -310,51 +308,51 @@ parser can't handle the file.</p>
|
|
310
308
|
|
311
309
|
<div class="method-source-code" id="selenium_ide_html-source">
|
312
310
|
<pre><span class="ruby-comment"># File lib/bauxite/parsers/html.rb, line 27</span>
|
313
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">selenium_ide_html</span>(<span class="ruby-identifier">file</span>)
|
314
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">end_with?</span> <span class="ruby-string">'.html'</span>
|
315
|
-
|
316
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
317
|
-
<span class="ruby-identifier">content</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
|
318
|
-
|
319
|
-
<span class="ruby-identifier">data</span> = <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/[\n\r]/</span>, <span class="ruby-string">''</span>)
|
320
|
-
<span class="ruby-identifier">selenium_base</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/.*rel="selenium.base" href="([^"]*)".*/</span>, <span class="ruby-string">'\1'</span>)
|
321
|
-
<span class="ruby-identifier">base_ends_in_slash</span> = (<span class="ruby-identifier">selenium_base</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'/'</span>)
|
322
|
-
|
323
|
-
<span class="ruby-identifier">data</span>
|
324
|
-
.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'<tr>'</span>, <span class="ruby-string">"\naction="</span>)
|
325
|
-
.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'</tr>'</span>, <span class="ruby-string">"\n"</span>)
|
326
|
-
.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">grep</span>(<span class="ruby-regexp">/^action=/</span>)
|
327
|
-
.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^action=\s*<td>([^<]*)<\/td>\s*<td>([^<]*)<\/td>\s*<td>([^<]*)<\/td>.*$/</span>) }
|
328
|
-
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span> }
|
329
|
-
.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">captures</span> }
|
330
|
-
.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span><span class="ruby-operator">|</span>
|
331
|
-
<span class="ruby-keyword">case</span> <span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">downcase</span>
|
332
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'open'</span>
|
333
|
-
<span class="ruby-identifier">url</span> = <span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>]
|
334
|
-
<span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'/'</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">base_ends_in_slash</span> <span class="ruby-comment"># remove leading '/'
|
335
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">selenium_base</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">url</span>
|
336
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'type'</span>
|
337
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'write'</span>
|
338
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
339
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'verifytextpresent'</span>
|
340
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'source'</span>
|
341
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'clickandwait'</span>, <span class="ruby-string">'click'</span>
|
342
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'click'</span>
|
343
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
344
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'waitforpagetoload'</span>
|
345
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'wait'</span>
|
346
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = (<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_s</span>
|
347
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'assertvalue'</span>
|
348
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'assert'</span>
|
349
|
-
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
350
|
-
<span class="ruby-keyword">when</span> <span class="ruby-string">'waitforpopup'</span>
|
351
|
-
<span class="ruby-identifier">action</span> = [] <span class="ruby-comment"># remove
|
352
|
-
<span class="ruby-keyword">end</span>
|
353
|
-
<span class="ruby-identifier">action</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">!=</span> <span class="ruby-string">''</span> }
|
354
|
-
[ <span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">action</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-value">0</span> ]
|
355
|
-
<span class="ruby-keyword">end</span>
|
356
|
-
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] }
|
357
|
-
<span class="ruby-keyword">end</span>
|
311
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">selenium_ide_html</span>(<span class="ruby-identifier">file</span>)
|
312
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">end_with?</span> <span class="ruby-string">'.html'</span>
|
313
|
+
|
314
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
315
|
+
<span class="ruby-identifier">content</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
|
316
|
+
|
317
|
+
<span class="ruby-identifier">data</span> = <span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/[\n\r]/</span>, <span class="ruby-string">''</span>)
|
318
|
+
<span class="ruby-identifier">selenium_base</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/.*rel="selenium.base" href="([^"]*)".*/</span>, <span class="ruby-string">'\1'</span>)
|
319
|
+
<span class="ruby-identifier">base_ends_in_slash</span> = (<span class="ruby-identifier">selenium_base</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'/'</span>)
|
320
|
+
|
321
|
+
<span class="ruby-identifier">data</span>
|
322
|
+
.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'<tr>'</span>, <span class="ruby-string">"\naction="</span>)
|
323
|
+
.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">'</tr>'</span>, <span class="ruby-string">"\n"</span>)
|
324
|
+
.<span class="ruby-identifier">each_line</span>.<span class="ruby-identifier">grep</span>(<span class="ruby-regexp">/^action=/</span>)
|
325
|
+
.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^action=\s*<td>([^<]*)<\/td>\s*<td>([^<]*)<\/td>\s*<td>([^<]*)<\/td>.*$/</span>) }
|
326
|
+
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span> }
|
327
|
+
.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">captures</span> }
|
328
|
+
.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span><span class="ruby-operator">|</span>
|
329
|
+
<span class="ruby-keyword">case</span> <span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">downcase</span>
|
330
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'open'</span>
|
331
|
+
<span class="ruby-identifier">url</span> = <span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>]
|
332
|
+
<span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'/'</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">base_ends_in_slash</span> <span class="ruby-comment"># remove leading '/'
|
333
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">selenium_base</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">url</span>
|
334
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'type'</span>
|
335
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'write'</span>
|
336
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
337
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'verifytextpresent'</span>
|
338
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'source'</span>
|
339
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'clickandwait'</span>, <span class="ruby-string">'click'</span>
|
340
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'click'</span>
|
341
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
342
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'waitforpagetoload'</span>
|
343
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'wait'</span>
|
344
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = (<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-value">1000</span>).<span class="ruby-identifier">to_s</span>
|
345
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'assertvalue'</span>
|
346
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>] = <span class="ruby-string">'assert'</span>
|
347
|
+
<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>] = <span class="ruby-identifier">_selenium_ide_html_parse_selector</span>(<span class="ruby-identifier">action</span>[<span class="ruby-value">1</span>])
|
348
|
+
<span class="ruby-keyword">when</span> <span class="ruby-string">'waitforpopup'</span>
|
349
|
+
<span class="ruby-identifier">action</span> = [] <span class="ruby-comment"># remove
|
350
|
+
<span class="ruby-keyword">end</span>
|
351
|
+
<span class="ruby-identifier">action</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">!=</span> <span class="ruby-string">''</span> }
|
352
|
+
[ <span class="ruby-identifier">action</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">action</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-value">0</span> ]
|
353
|
+
<span class="ruby-keyword">end</span>
|
354
|
+
.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] }
|
355
|
+
<span class="ruby-keyword">end</span>
|
358
356
|
<span class="ruby-keyword">end</span></pre>
|
359
357
|
</div>
|
360
358
|
|
@@ -374,7 +372,7 @@ parser can't handle the file.</p>
|
|
374
372
|
|
375
373
|
<footer id="validator-badges" role="contentinfo">
|
376
374
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
377
|
-
<p>Generated by <a href="http://
|
378
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-
|
375
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
|
376
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
379
377
|
</footer>
|
380
378
|
|
@@ -6,20 +6,17 @@
|
|
6
6
|
|
7
7
|
<title>module Bauxite::ParserModule - RDoc Documentation</title>
|
8
8
|
|
9
|
-
<link href="../fonts.css" rel="stylesheet">
|
10
|
-
<link href="../rdoc.css" rel="stylesheet">
|
11
|
-
|
12
9
|
<script type="text/javascript">
|
13
10
|
var rdoc_rel_prefix = "../";
|
14
11
|
</script>
|
15
12
|
|
16
13
|
<script src="../js/jquery.js"></script>
|
17
|
-
<script src="../js/navigation.js"></script>
|
18
|
-
<script src="../js/search_index.js"></script>
|
19
|
-
<script src="../js/search.js"></script>
|
20
|
-
<script src="../js/searcher.js"></script>
|
21
14
|
<script src="../js/darkfish.js"></script>
|
22
15
|
|
16
|
+
<link href="../css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="../css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
23
20
|
|
24
21
|
<body id="top" role="document" class="module">
|
25
22
|
<nav role="navigation">
|
@@ -126,8 +123,8 @@
|
|
126
123
|
|
127
124
|
<div class="method-source-code" id="new-source">
|
128
125
|
<pre><span class="ruby-comment"># File lib/bauxite/core/parser.rb, line 27</span>
|
129
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ctx</span>)
|
130
|
-
<span class="ruby-ivar">@ctx</span> = <span class="ruby-identifier">ctx</span>
|
126
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ctx</span>)
|
127
|
+
<span class="ruby-ivar">@ctx</span> = <span class="ruby-identifier">ctx</span>
|
131
128
|
<span class="ruby-keyword">end</span></pre>
|
132
129
|
</div>
|
133
130
|
|
@@ -167,17 +164,17 @@
|
|
167
164
|
|
168
165
|
<div class="method-source-code" id="parse-source">
|
169
166
|
<pre><span class="ruby-comment"># File lib/bauxite/core/parser.rb, line 32</span>
|
170
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">file</span>)
|
171
|
-
<span class="ruby-identifier">actions</span> = <span class="ruby-keyword">nil</span>
|
172
|
-
<span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parsers</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">actions</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">p</span>, <span class="ruby-identifier">file</span>) }
|
173
|
-
|
174
|
-
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">actions</span>
|
175
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">FormatError</span>, <span class="ruby-node">"Invalid format in '#{file}'. None of the available parsers can understand this file format."</span>
|
176
|
-
<span class="ruby-keyword">end</span>
|
177
|
-
|
178
|
-
<span class="ruby-identifier">actions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
179
|
-
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">action</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>
|
180
|
-
<span class="ruby-keyword">end</span>
|
167
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">file</span>)
|
168
|
+
<span class="ruby-identifier">actions</span> = <span class="ruby-keyword">nil</span>
|
169
|
+
<span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">parsers</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">actions</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">p</span>, <span class="ruby-identifier">file</span>) }
|
170
|
+
|
171
|
+
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">actions</span>
|
172
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">FormatError</span>, <span class="ruby-node">"Invalid format in '#{file}'. None of the available parsers can understand this file format."</span>
|
173
|
+
<span class="ruby-keyword">end</span>
|
174
|
+
|
175
|
+
<span class="ruby-identifier">actions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
176
|
+
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">action</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">file</span>, <span class="ruby-identifier">line</span>
|
177
|
+
<span class="ruby-keyword">end</span>
|
181
178
|
<span class="ruby-keyword">end</span></pre>
|
182
179
|
</div>
|
183
180
|
|
@@ -197,7 +194,7 @@
|
|
197
194
|
|
198
195
|
<footer id="validator-badges" role="contentinfo">
|
199
196
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
200
|
-
<p>Generated by <a href="http://
|
201
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-
|
197
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
|
198
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
202
199
|
</footer>
|
203
200
|
|
data/doc/Bauxite/Selector.html
CHANGED
@@ -6,20 +6,17 @@
|
|
6
6
|
|
7
7
|
<title>class Bauxite::Selector - RDoc Documentation</title>
|
8
8
|
|
9
|
-
<link href="../fonts.css" rel="stylesheet">
|
10
|
-
<link href="../rdoc.css" rel="stylesheet">
|
11
|
-
|
12
9
|
<script type="text/javascript">
|
13
10
|
var rdoc_rel_prefix = "../";
|
14
11
|
</script>
|
15
12
|
|
16
13
|
<script src="../js/jquery.js"></script>
|
17
|
-
<script src="../js/navigation.js"></script>
|
18
|
-
<script src="../js/search_index.js"></script>
|
19
|
-
<script src="../js/search.js"></script>
|
20
|
-
<script src="../js/searcher.js"></script>
|
21
14
|
<script src="../js/darkfish.js"></script>
|
22
15
|
|
16
|
+
<link href="../css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="../css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
23
20
|
|
24
21
|
<body id="top" role="document" class="class">
|
25
22
|
<nav role="navigation">
|
@@ -178,7 +175,7 @@ considered part of the selector name).</p>
|
|
178
175
|
</pre>
|
179
176
|
<hr>
|
180
177
|
|
181
|
-
<h3 id="class-Bauxite::Selector-label-Standard+Selenium+Selectors">Standard Selenium Selectors<span><a href="#class-Bauxite::Selector-label-Standard+Selenium+Selectors">¶</a> <a href="#
|
178
|
+
<h3 id="class-Bauxite::Selector-label-Standard+Selenium+Selectors">Standard Selenium Selectors<span><a href="#class-Bauxite::Selector-label-Standard+Selenium+Selectors">¶</a> <a href="#top">↑</a></span></h3>
|
182
179
|
<dl class="rdoc-list label-list"><dt>id=<code>targetValue</code>
|
183
180
|
<dd>
|
184
181
|
<p><a href="http://docs.seleniumhq.org/docs/03_webdriver.jsp#by-id">Locate
|
@@ -282,19 +279,18 @@ elements using XPATH expressions.</a></p>
|
|
282
279
|
|
283
280
|
<p>For example:</p>
|
284
281
|
|
285
|
-
<pre
|
286
|
-
|
287
|
-
|
288
|
-
</pre>
|
282
|
+
<pre># assuming <div custom="true">foo</div>
|
283
|
+
assert attr=custom:true "foo"
|
284
|
+
# => matches the element above.</pre>
|
289
285
|
|
290
286
|
|
291
287
|
|
292
288
|
|
293
289
|
<div class="method-source-code" id="attr-source">
|
294
290
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/attr.rb, line 35</span>
|
295
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">attr</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
296
|
-
<span class="ruby-identifier">data</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">':'</span>, <span class="ruby-value">2</span>)
|
297
|
-
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, <span class="ruby-node">"[#{data[0]}='#{data[1]}']"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
291
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">attr</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
292
|
+
<span class="ruby-identifier">data</span> = <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">':'</span>, <span class="ruby-value">2</span>)
|
293
|
+
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, <span class="ruby-node">"[#{data[0]}='#{data[1]}']"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
298
294
|
<span class="ruby-keyword">end</span></pre>
|
299
295
|
</div>
|
300
296
|
|
@@ -351,17 +347,17 @@ selector.</p>
|
|
351
347
|
|
352
348
|
<div class="method-source-code" id="frame-source">
|
353
349
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/frame.rb, line 48</span>
|
354
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">frame</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
355
|
-
<span class="ruby-identifier">delimiter</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
|
356
|
-
<span class="ruby-identifier">items</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-identifier">delimiter</span>, <span class="ruby-value">2</span>)
|
357
|
-
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">items</span>[<span class="ruby-value">0</span>]) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
358
|
-
<span class="ruby-keyword">begin</span>
|
359
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">frame</span> <span class="ruby-identifier">f</span>
|
360
|
-
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">items</span>[<span class="ruby-value">1</span>], <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
361
|
-
<span class="ruby-keyword">ensure</span>
|
362
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">default_content</span>
|
363
|
-
<span class="ruby-keyword">end</span>
|
364
|
-
<span class="ruby-keyword">end</span>
|
350
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">frame</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
351
|
+
<span class="ruby-identifier">delimiter</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
|
352
|
+
<span class="ruby-identifier">items</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-identifier">delimiter</span>, <span class="ruby-value">2</span>)
|
353
|
+
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">items</span>[<span class="ruby-value">0</span>]) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
354
|
+
<span class="ruby-keyword">begin</span>
|
355
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">frame</span> <span class="ruby-identifier">f</span>
|
356
|
+
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">items</span>[<span class="ruby-value">1</span>], <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
357
|
+
<span class="ruby-keyword">ensure</span>
|
358
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">default_content</span>
|
359
|
+
<span class="ruby-keyword">end</span>
|
360
|
+
<span class="ruby-keyword">end</span>
|
365
361
|
<span class="ruby-keyword">end</span></pre>
|
366
362
|
</div>
|
367
363
|
|
@@ -405,28 +401,27 @@ selector.</p>
|
|
405
401
|
|
406
402
|
<p>For example:</p>
|
407
403
|
|
408
|
-
<pre
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
</pre>
|
404
|
+
<pre># assuming {"key": [{"subkey":4},{"val":"42"}]}
|
405
|
+
assert json=key[0].subkey 4
|
406
|
+
assert json=key[1].val 42
|
407
|
+
assert json=key.length 2
|
408
|
+
# => these assertions would pass</pre>
|
414
409
|
|
415
410
|
|
416
411
|
|
417
412
|
|
418
413
|
<div class="method-source-code" id="json-source">
|
419
414
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/json.rb, line 49</span>
|
420
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">json</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
421
|
-
<span class="ruby-identifier">source</span> = <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">page_source</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^<html[^>]*>.*<pre>/</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/<\/pre>.*<\/html>$/</span>, <span class="ruby-string">''</span>))
|
422
|
-
<span class="ruby-identifier">element</span> = <span class="ruby-identifier">_json_find</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">arg</span>)
|
423
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>, <span class="ruby-node">"Cannot find JSON element: #{arg}"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">element</span>
|
424
|
-
|
425
|
-
<span class="ruby-identifier">element</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_s</span>
|
426
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>
|
427
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">tag_name</span>; <span class="ruby-string">'json'</span>; <span class="ruby-keyword">end</span>
|
428
|
-
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">element</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
|
429
|
-
<span class="ruby-identifier">element</span>
|
415
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">json</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
416
|
+
<span class="ruby-identifier">source</span> = <span class="ruby-constant">JSON</span><span class="ruby-operator">::</span><span class="ruby-identifier">parse</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">page_source</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^<html[^>]*>.*<pre>/</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/<\/pre>.*<\/html>$/</span>, <span class="ruby-string">''</span>))
|
417
|
+
<span class="ruby-identifier">element</span> = <span class="ruby-identifier">_json_find</span>(<span class="ruby-identifier">source</span>, <span class="ruby-identifier">arg</span>)
|
418
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>, <span class="ruby-node">"Cannot find JSON element: #{arg}"</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">element</span>
|
419
|
+
|
420
|
+
<span class="ruby-identifier">element</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">to_s</span>
|
421
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">text</span>; <span class="ruby-keyword">self</span>; <span class="ruby-keyword">end</span>
|
422
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">tag_name</span>; <span class="ruby-string">'json'</span>; <span class="ruby-keyword">end</span>
|
423
|
+
<span class="ruby-keyword">yield</span> <span class="ruby-identifier">element</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
|
424
|
+
<span class="ruby-identifier">element</span>
|
430
425
|
<span class="ruby-keyword">end</span></pre>
|
431
426
|
</div>
|
432
427
|
|
@@ -458,18 +453,17 @@ equal sign (i.e. '=') will use this selector.</p>
|
|
458
453
|
|
459
454
|
<p>For example:</p>
|
460
455
|
|
461
|
-
<pre
|
462
|
-
|
463
|
-
|
464
|
-
</pre>
|
456
|
+
<pre># assuming <div id="strange_uuid_like_stuff_myDiv">foo</div>
|
457
|
+
assert sid=myDiv "foo"
|
458
|
+
# => matches the element above.</pre>
|
465
459
|
|
466
460
|
|
467
461
|
|
468
462
|
|
469
463
|
<div class="method-source-code" id="sid-source">
|
470
464
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/sid.rb, line 35</span>
|
471
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sid</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
472
|
-
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, <span class="ruby-node">"[id$='#{arg.gsub("'", "\\'")}']"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
465
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">sid</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
466
|
+
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, <span class="ruby-node">"[id$='#{arg.gsub("'", "\\'")}']"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
473
467
|
<span class="ruby-keyword">end</span></pre>
|
474
468
|
</div>
|
475
469
|
|
@@ -533,32 +527,32 @@ child control element, including input, select, textarea and button).</p>
|
|
533
527
|
|
534
528
|
<div class="method-source-code" id="smart-source">
|
535
529
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/smart.rb, line 46</span>
|
536
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">smart</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
537
|
-
<span class="ruby-identifier">b</span> = <span class="ruby-identifier">lambda</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> }
|
538
|
-
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">sid</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
539
|
-
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:name</span>, <span class="ruby-identifier">arg</span>) }
|
540
|
-
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:class_name</span>, <span class="ruby-identifier">arg</span>) }
|
541
|
-
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">attr</span>(<span class="ruby-string">"id*:"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
542
|
-
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">attr</span>(<span class="ruby-string">"placeholder:"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
543
|
-
<span class="ruby-identifier">quoted_arg</span> = <span class="ruby-string">"'"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">"'"</span>, <span class="ruby-string">"\\'"</span>)<span class="ruby-operator">+</span><span class="ruby-string">"'"</span>
|
544
|
-
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> <span class="ruby-keyword">do</span>
|
545
|
-
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, [<span class="ruby-node">"input[type='checkbox'][value=#{quoted_arg}]"</span>,
|
546
|
-
<span class="ruby-node">"input[type='radio'][value=#{quoted_arg}]"</span>,
|
547
|
-
<span class="ruby-node">"input[type='button'][value=#{quoted_arg}]"</span>,
|
548
|
-
<span class="ruby-node">"input[type='submit'][value=#{quoted_arg}]"</span>
|
549
|
-
].<span class="ruby-identifier">join</span>(<span class="ruby-string">','</span>)
|
550
|
-
)
|
551
|
-
<span class="ruby-keyword">end</span>
|
552
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">target</span>
|
553
|
-
|
554
|
-
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:xpath</span>, <span class="ruby-node">"//*[contains(text(), '#{arg.gsub("'", "\\'")}')]"</span>)
|
555
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">tag_name</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-string">'label'</span>
|
556
|
-
<span class="ruby-identifier">label</span> = <span class="ruby-identifier">target</span>
|
557
|
-
<span class="ruby-identifier">id</span> = <span class="ruby-identifier">label</span>[<span class="ruby-string">'for'</span>]
|
558
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:id</span>, <span class="ruby-identifier">id</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">id</span>
|
559
|
-
|
560
|
-
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">label</span>.<span class="ruby-identifier">find_element</span>(<span class="ruby-value">:css</span>, <span class="ruby-string">"input, select, textarea, button"</span>) }
|
561
|
-
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">target</span>
|
530
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">smart</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
531
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-identifier">lambda</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> }
|
532
|
+
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">sid</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
533
|
+
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:name</span>, <span class="ruby-identifier">arg</span>) }
|
534
|
+
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:class_name</span>, <span class="ruby-identifier">arg</span>) }
|
535
|
+
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">attr</span>(<span class="ruby-string">"id*:"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
536
|
+
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">attr</span>(<span class="ruby-string">"placeholder:"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) }
|
537
|
+
<span class="ruby-identifier">quoted_arg</span> = <span class="ruby-string">"'"</span><span class="ruby-operator">+</span><span class="ruby-identifier">arg</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">"'"</span>, <span class="ruby-string">"\\'"</span>)<span class="ruby-operator">+</span><span class="ruby-string">"'"</span>
|
538
|
+
<span class="ruby-identifier">target</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">_smart_try_find</span> <span class="ruby-keyword">do</span>
|
539
|
+
<span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:css</span>, [<span class="ruby-node">"input[type='checkbox'][value=#{quoted_arg}]"</span>,
|
540
|
+
<span class="ruby-node">"input[type='radio'][value=#{quoted_arg}]"</span>,
|
541
|
+
<span class="ruby-node">"input[type='button'][value=#{quoted_arg}]"</span>,
|
542
|
+
<span class="ruby-node">"input[type='submit'][value=#{quoted_arg}]"</span>
|
543
|
+
].<span class="ruby-identifier">join</span>(<span class="ruby-string">','</span>)
|
544
|
+
)
|
545
|
+
<span class="ruby-keyword">end</span>
|
546
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">target</span>
|
547
|
+
|
548
|
+
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:xpath</span>, <span class="ruby-node">"//*[contains(text(), '#{arg.gsub("'", "\\'")}')]"</span>)
|
549
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">tag_name</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-string">'label'</span>
|
550
|
+
<span class="ruby-identifier">label</span> = <span class="ruby-identifier">target</span>
|
551
|
+
<span class="ruby-identifier">id</span> = <span class="ruby-identifier">label</span>[<span class="ruby-string">'for'</span>]
|
552
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">selenium_find</span>(<span class="ruby-value">:id</span>, <span class="ruby-identifier">id</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">id</span>
|
553
|
+
|
554
|
+
<span class="ruby-identifier">target</span> = <span class="ruby-identifier">_smart_try_find</span> { <span class="ruby-identifier">label</span>.<span class="ruby-identifier">find_element</span>(<span class="ruby-value">:css</span>, <span class="ruby-string">"input, select, textarea, button"</span>) }
|
555
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">target</span>
|
562
556
|
<span class="ruby-keyword">end</span></pre>
|
563
557
|
</div>
|
564
558
|
|
@@ -613,35 +607,35 @@ single-character delimiter.</p>
|
|
613
607
|
|
614
608
|
<div class="method-source-code" id="window-source">
|
615
609
|
<pre><span class="ruby-comment"># File lib/bauxite/selectors/window.rb, line 47</span>
|
616
|
-
<span class="ruby-keyword">def</span> <span class="ruby-identifier">window</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
617
|
-
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handle</span>
|
618
|
-
|
619
|
-
<span class="ruby-identifier">delimiter</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
|
620
|
-
<span class="ruby-identifier">name</span>,<span class="ruby-identifier">child</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-identifier">delimiter</span>, <span class="ruby-value">2</span>)
|
621
|
-
|
622
|
-
<span class="ruby-identifier">pattern</span> = <span class="ruby-node">/#{name}/</span>
|
623
|
-
<span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^\/.*\/[imxo]*$/</span>
|
624
|
-
<span class="ruby-identifier">pattern</span> = <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">name</span>)
|
625
|
-
<span class="ruby-keyword">end</span>
|
626
|
-
|
627
|
-
<span class="ruby-identifier">match</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handles</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span>
|
628
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">h</span>
|
629
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">current_url</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">pattern</span>
|
630
|
-
<span class="ruby-keyword">end</span>
|
631
|
-
|
632
|
-
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">match</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">match</span>
|
633
|
-
<span class="ruby-keyword">begin</span>
|
634
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">name</span>
|
635
|
-
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
636
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">current</span>
|
637
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span>, <span class="ruby-node">"Cannot find a window matching '#{name}' (either by name exact match or by url regex)."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
638
|
-
<span class="ruby-keyword">end</span>
|
639
|
-
|
640
|
-
<span class="ruby-keyword">begin</span>
|
641
|
-
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">child</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
642
|
-
<span class="ruby-keyword">ensure</span>
|
643
|
-
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">current</span>
|
644
|
-
<span class="ruby-keyword">end</span>
|
610
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">window</span>(<span class="ruby-identifier">arg</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
611
|
+
<span class="ruby-identifier">current</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handle</span>
|
612
|
+
|
613
|
+
<span class="ruby-identifier">delimiter</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
|
614
|
+
<span class="ruby-identifier">name</span>,<span class="ruby-identifier">child</span> = <span class="ruby-identifier">arg</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-identifier">delimiter</span>, <span class="ruby-value">2</span>)
|
615
|
+
|
616
|
+
<span class="ruby-identifier">pattern</span> = <span class="ruby-node">/#{name}/</span>
|
617
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^\/.*\/[imxo]*$/</span>
|
618
|
+
<span class="ruby-identifier">pattern</span> = <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">name</span>)
|
619
|
+
<span class="ruby-keyword">end</span>
|
620
|
+
|
621
|
+
<span class="ruby-identifier">match</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handles</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span>
|
622
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">h</span>
|
623
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">current_url</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">pattern</span>
|
624
|
+
<span class="ruby-keyword">end</span>
|
625
|
+
|
626
|
+
<span class="ruby-identifier">name</span> = <span class="ruby-identifier">match</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">match</span>
|
627
|
+
<span class="ruby-keyword">begin</span>
|
628
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">name</span>
|
629
|
+
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
630
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">current</span>
|
631
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span>, <span class="ruby-node">"Cannot find a window matching '#{name}' (either by name exact match or by url regex)."</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
632
|
+
<span class="ruby-keyword">end</span>
|
633
|
+
|
634
|
+
<span class="ruby-keyword">begin</span>
|
635
|
+
<span class="ruby-identifier">find</span>(<span class="ruby-identifier">child</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
636
|
+
<span class="ruby-keyword">ensure</span>
|
637
|
+
<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">window</span> <span class="ruby-identifier">current</span>
|
638
|
+
<span class="ruby-keyword">end</span>
|
645
639
|
<span class="ruby-keyword">end</span></pre>
|
646
640
|
</div>
|
647
641
|
|
@@ -661,7 +655,7 @@ single-character delimiter.</p>
|
|
661
655
|
|
662
656
|
<footer id="validator-badges" role="contentinfo">
|
663
657
|
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
664
|
-
<p>Generated by <a href="http://
|
665
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-
|
658
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
|
659
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
666
660
|
</footer>
|
667
661
|
|