bauxite 0.1.0

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 (124) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/Rakefile +69 -0
  4. data/bin/bauxite +27 -0
  5. data/doc/Bauxite/Action.html +1463 -0
  6. data/doc/Bauxite/ActionModule.html +342 -0
  7. data/doc/Bauxite/Context.html +1439 -0
  8. data/doc/Bauxite/Errors/AssertionError.html +107 -0
  9. data/doc/Bauxite/Errors/FileNotFoundError.html +107 -0
  10. data/doc/Bauxite/Errors.html +100 -0
  11. data/doc/Bauxite/Loggers/CompositeLogger.html +325 -0
  12. data/doc/Bauxite/Loggers/EchoLogger.html +164 -0
  13. data/doc/Bauxite/Loggers/FileLogger.html +215 -0
  14. data/doc/Bauxite/Loggers/NullLogger.html +334 -0
  15. data/doc/Bauxite/Loggers/TerminalLogger.html +586 -0
  16. data/doc/Bauxite/Loggers/XtermLogger.html +287 -0
  17. data/doc/Bauxite/Loggers.html +103 -0
  18. data/doc/Bauxite/Selector.html +422 -0
  19. data/doc/Bauxite/SelectorModule.html +283 -0
  20. data/doc/Bauxite.html +98 -0
  21. data/doc/created.rid +37 -0
  22. data/doc/fonts/Lato-Light.ttf +0 -0
  23. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  24. data/doc/fonts/Lato-Regular.ttf +0 -0
  25. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  26. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  27. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  28. data/doc/fonts.css +167 -0
  29. data/doc/images/add.png +0 -0
  30. data/doc/images/arrow_up.png +0 -0
  31. data/doc/images/brick.png +0 -0
  32. data/doc/images/brick_link.png +0 -0
  33. data/doc/images/bug.png +0 -0
  34. data/doc/images/bullet_black.png +0 -0
  35. data/doc/images/bullet_toggle_minus.png +0 -0
  36. data/doc/images/bullet_toggle_plus.png +0 -0
  37. data/doc/images/date.png +0 -0
  38. data/doc/images/delete.png +0 -0
  39. data/doc/images/find.png +0 -0
  40. data/doc/images/loadingAnimation.gif +0 -0
  41. data/doc/images/macFFBgHack.png +0 -0
  42. data/doc/images/package.png +0 -0
  43. data/doc/images/page_green.png +0 -0
  44. data/doc/images/page_white_text.png +0 -0
  45. data/doc/images/page_white_width.png +0 -0
  46. data/doc/images/plugin.png +0 -0
  47. data/doc/images/ruby.png +0 -0
  48. data/doc/images/tag_blue.png +0 -0
  49. data/doc/images/tag_green.png +0 -0
  50. data/doc/images/transparent.png +0 -0
  51. data/doc/images/wrench.png +0 -0
  52. data/doc/images/wrench_orange.png +0 -0
  53. data/doc/images/zoom.png +0 -0
  54. data/doc/index.html +111 -0
  55. data/doc/js/darkfish.js +140 -0
  56. data/doc/js/jquery.js +18 -0
  57. data/doc/js/navigation.js +142 -0
  58. data/doc/js/search.js +109 -0
  59. data/doc/js/search_index.js +1 -0
  60. data/doc/js/searcher.js +228 -0
  61. data/doc/rdoc.css +580 -0
  62. data/doc/table_of_contents.html +510 -0
  63. data/lib/bauxite/actions/alias.rb +51 -0
  64. data/lib/bauxite/actions/assert.rb +49 -0
  65. data/lib/bauxite/actions/assertv.rb +40 -0
  66. data/lib/bauxite/actions/break.rb +39 -0
  67. data/lib/bauxite/actions/click.rb +35 -0
  68. data/lib/bauxite/actions/debug.rb +99 -0
  69. data/lib/bauxite/actions/echo.rb +36 -0
  70. data/lib/bauxite/actions/exec.rb +46 -0
  71. data/lib/bauxite/actions/js.rb +41 -0
  72. data/lib/bauxite/actions/load.rb +49 -0
  73. data/lib/bauxite/actions/open.rb +34 -0
  74. data/lib/bauxite/actions/params.rb +40 -0
  75. data/lib/bauxite/actions/replace.rb +37 -0
  76. data/lib/bauxite/actions/reset.rb +37 -0
  77. data/lib/bauxite/actions/return.rb +62 -0
  78. data/lib/bauxite/actions/ruby.rb +58 -0
  79. data/lib/bauxite/actions/set.rb +39 -0
  80. data/lib/bauxite/actions/source.rb +44 -0
  81. data/lib/bauxite/actions/store.rb +38 -0
  82. data/lib/bauxite/actions/test.rb +61 -0
  83. data/lib/bauxite/actions/tryload.rb +79 -0
  84. data/lib/bauxite/actions/wait.rb +38 -0
  85. data/lib/bauxite/actions/write.rb +40 -0
  86. data/lib/bauxite/application.rb +150 -0
  87. data/lib/bauxite/core/Action.rb +205 -0
  88. data/lib/bauxite/core/Context.rb +575 -0
  89. data/lib/bauxite/core/Errors.rb +36 -0
  90. data/lib/bauxite/core/Logger.rb +86 -0
  91. data/lib/bauxite/core/Selector.rb +156 -0
  92. data/lib/bauxite/loggers/composite.rb +70 -0
  93. data/lib/bauxite/loggers/echo.rb +36 -0
  94. data/lib/bauxite/loggers/file.rb +45 -0
  95. data/lib/bauxite/loggers/terminal.rb +130 -0
  96. data/lib/bauxite/loggers/xterm.rb +79 -0
  97. data/lib/bauxite/selectors/attr.rb +39 -0
  98. data/lib/bauxite/selectors/default.rb +38 -0
  99. data/lib/bauxite/selectors/frame.rb +60 -0
  100. data/lib/bauxite.rb +29 -0
  101. data/test/alias.bxt +6 -0
  102. data/test/assertv.bxt +2 -0
  103. data/test/delay/page.html +5 -0
  104. data/test/delay.bxt +2 -0
  105. data/test/exec.bxt +6 -0
  106. data/test/format/page.html +7 -0
  107. data/test/format.bxt +17 -0
  108. data/test/frame/child_frame.html +7 -0
  109. data/test/frame/grandchild_frame.html +5 -0
  110. data/test/frame/page.html +5 -0
  111. data/test/frame.bxt +6 -0
  112. data/test/js.bxt +5 -0
  113. data/test/load/child.bxt +13 -0
  114. data/test/load.bxt +17 -0
  115. data/test/ruby/custom.rb +5 -0
  116. data/test/ruby.bxt +2 -0
  117. data/test/selectors/page.html +7 -0
  118. data/test/selectors.bxt +7 -0
  119. data/test/stdin.bxt +1 -0
  120. data/test/test/test1.bxt +2 -0
  121. data/test/test/test2.bxt +3 -0
  122. data/test/test/test3.bxt +2 -0
  123. data/test/test.bxt.manual +4 -0
  124. metadata +194 -0
@@ -0,0 +1,342 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>module Bauxite::ActionModule - RDoc Documentation</title>
8
+
9
+ <link href="../fonts.css" rel="stylesheet">
10
+ <link href="../rdoc.css" rel="stylesheet">
11
+
12
+ <script type="text/javascript">
13
+ var rdoc_rel_prefix = "../";
14
+ </script>
15
+
16
+ <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
+ <script src="../js/darkfish.js"></script>
22
+
23
+
24
+ <body id="top" role="document" class="module">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="../index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="../table_of_contents.html#pages">Pages</a>
34
+ <a href="../table_of_contents.html#classes">Classes</a>
35
+ <a href="../table_of_contents.html#methods">Methods</a>
36
+ </div>
37
+ </div>
38
+
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
40
+ <form action="#" method="get" accept-charset="utf-8">
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search" spellcheck="false"
45
+ title="Type to search, Up and Down to navigate, Enter to load">
46
+ </div>
47
+
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
53
+
54
+ </div>
55
+
56
+
57
+
58
+ <div id="class-metadata">
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="nav-section">
65
+ <h3>Methods</h3>
66
+
67
+ <ul class="link-list" role="directory">
68
+
69
+ <li ><a href="#method-c-new">::new</a>
70
+
71
+ <li ><a href="#method-i-args">#args</a>
72
+
73
+ <li ><a href="#method-i-execute">#execute</a>
74
+
75
+ </ul>
76
+ </div>
77
+
78
+ </div>
79
+ </nav>
80
+
81
+ <main role="main" aria-labelledby="module-Bauxite::ActionModule">
82
+ <h1 id="module-Bauxite::ActionModule" class="module">
83
+ module Bauxite::ActionModule
84
+ </h1>
85
+
86
+ <section class="description">
87
+
88
+ <p><a href="Action.html">Action</a> common state and behavior.</p>
89
+
90
+ </section>
91
+
92
+
93
+
94
+
95
+ <section id="5Buntitled-5D" class="documentation-section">
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ <section class="attribute-method-details" class="method-section">
104
+ <header>
105
+ <h3>Attributes</h3>
106
+ </header>
107
+
108
+
109
+ <div id="attribute-i-cmd" class="method-detail">
110
+ <div class="method-heading attribute-method-heading">
111
+ <span class="method-name">cmd</span><span
112
+ class="attribute-access-type">[R]</span>
113
+ </div>
114
+
115
+ <div class="method-description">
116
+
117
+ <p>Parsed action command (i.e. action name)</p>
118
+
119
+ </div>
120
+ </div>
121
+
122
+ <div id="attribute-i-file" class="method-detail">
123
+ <div class="method-heading attribute-method-heading">
124
+ <span class="method-name">file</span><span
125
+ class="attribute-access-type">[R]</span>
126
+ </div>
127
+
128
+ <div class="method-description">
129
+
130
+ <p>File where the action was defined.</p>
131
+
132
+ </div>
133
+ </div>
134
+
135
+ <div id="attribute-i-line" class="method-detail">
136
+ <div class="method-heading attribute-method-heading">
137
+ <span class="method-name">line</span><span
138
+ class="attribute-access-type">[R]</span>
139
+ </div>
140
+
141
+ <div class="method-description">
142
+
143
+ <p>Line in the <a href="ActionModule.html#attribute-i-file">file</a> where the
144
+ action was defined.</p>
145
+
146
+ </div>
147
+ </div>
148
+
149
+ <div id="attribute-i-text" class="method-detail">
150
+ <div class="method-heading attribute-method-heading">
151
+ <span class="method-name">text</span><span
152
+ class="attribute-access-type">[R]</span>
153
+ </div>
154
+
155
+ <div class="method-description">
156
+
157
+ <p>Raw action text.</p>
158
+
159
+ </div>
160
+ </div>
161
+
162
+ </section>
163
+
164
+
165
+
166
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
167
+ <header>
168
+ <h3>Public Class Methods</h3>
169
+ </header>
170
+
171
+
172
+ <div id="method-c-new" class="method-detail ">
173
+
174
+ <div class="method-heading">
175
+ <span class="method-name">new</span><span
176
+ class="method-args">(ctx, cmd, args, text, file, line)</span>
177
+
178
+ <span class="method-click-advice">click to toggle source</span>
179
+
180
+ </div>
181
+
182
+
183
+ <div class="method-description">
184
+
185
+ <p>Constructs a new test action instance.</p>
186
+
187
+
188
+
189
+
190
+ <div class="method-source-code" id="new-source">
191
+ <pre><span class="ruby-comment"># File lib/bauxite/core/Action.rb, line 39</span>
192
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ctx</span>, <span class="ruby-identifier">cmd</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>)
193
+ <span class="ruby-ivar">@ctx</span> = <span class="ruby-identifier">ctx</span>
194
+ <span class="ruby-ivar">@cmd</span> = <span class="ruby-identifier">cmd</span>
195
+ <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span>
196
+ <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>
197
+ <span class="ruby-ivar">@file</span> = <span class="ruby-identifier">file</span>
198
+ <span class="ruby-ivar">@line</span> = <span class="ruby-identifier">line</span>
199
+
200
+ <span class="ruby-ivar">@cmd_real</span> = (<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">cmd</span><span class="ruby-operator">+</span><span class="ruby-string">&#39;_action&#39;</span>) <span class="ruby-operator">?</span> (<span class="ruby-identifier">cmd</span><span class="ruby-operator">+</span><span class="ruby-string">&#39;_action&#39;</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">cmd</span>
201
+
202
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">respond_to?</span> <span class="ruby-ivar">@cmd_real</span> <span class="ruby-keyword">and</span> <span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">actions</span>.<span class="ruby-identifier">include?</span> <span class="ruby-ivar">@cmd</span>
203
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{file} (line #{line+1}): Unknown command #{cmd}.&quot;</span>
204
+ <span class="ruby-keyword">end</span>
205
+ <span class="ruby-keyword">end</span></pre>
206
+ </div>
207
+
208
+ </div>
209
+
210
+
211
+
212
+
213
+ </div>
214
+
215
+
216
+ </section>
217
+
218
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
219
+ <header>
220
+ <h3>Public Instance Methods</h3>
221
+ </header>
222
+
223
+
224
+ <div id="method-i-args" class="method-detail ">
225
+
226
+ <div class="method-heading">
227
+ <span class="method-name">args</span><span
228
+ class="method-args">(quote = false)</span>
229
+
230
+ <span class="method-click-advice">click to toggle source</span>
231
+
232
+ </div>
233
+
234
+
235
+ <div class="method-description">
236
+
237
+ <p>Returns the action arguments after applying variable expansion.</p>
238
+
239
+ <p>See <a href="Context.html#method-i-expand">Bauxite::Context#expand</a>.</p>
240
+
241
+ <p>If <code>quote</code> is <code>true</code>, the arguments are surrounded by
242
+ quote characters (“) and every quote inside an argument is doubled.</p>
243
+
244
+ <p>For example:</p>
245
+
246
+ <pre class="ruby"><span class="ruby-comment"># assuming </span>
247
+ <span class="ruby-comment"># action.new(ctx, cmd,</span>
248
+ <span class="ruby-comment"># [ &#39;dude&#39;, &#39;say &quot;hi&quot;&#39;, &#39;${myvar} ], # args</span>
249
+ <span class="ruby-comment"># text, file, line)</span>
250
+ <span class="ruby-comment"># ctx.variables = { &#39;myvar&#39; =&gt; &#39;world&#39; }</span>
251
+
252
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">args</span>
253
+ <span class="ruby-comment"># =&gt; [ &#39;dude&#39;, &#39;say &quot;hi&quot;&#39;, &#39;world&#39; ]</span>
254
+
255
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">args</span>(<span class="ruby-keyword">true</span>)
256
+ <span class="ruby-comment"># =&gt; [ &#39;&quot;dude&quot;&#39;, &#39;&quot;say &quot;&quot;hi&quot;&quot;&quot;&#39;, &#39;&quot;world&quot;&#39; ]</span>
257
+ </pre>
258
+
259
+
260
+
261
+
262
+ <div class="method-source-code" id="args-source">
263
+ <pre><span class="ruby-comment"># File lib/bauxite/core/Action.rb, line 74</span>
264
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">args</span>(<span class="ruby-identifier">quote</span> = <span class="ruby-keyword">false</span>)
265
+ <span class="ruby-identifier">ret</span> = <span class="ruby-ivar">@args</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-ivar">@ctx</span>.<span class="ruby-identifier">expand</span>(<span class="ruby-identifier">a</span>) }
266
+ <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">ret</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-string">&#39;&quot;&#39;</span><span class="ruby-operator">+</span><span class="ruby-identifier">a</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;&quot;&#39;</span>, <span class="ruby-string">&#39;&quot;&quot;&#39;</span>)<span class="ruby-operator">+</span><span class="ruby-string">&#39;&quot;&#39;</span> } <span class="ruby-keyword">if</span> <span class="ruby-identifier">quote</span>
267
+ <span class="ruby-identifier">ret</span>
268
+ <span class="ruby-keyword">end</span></pre>
269
+ </div>
270
+
271
+ </div>
272
+
273
+
274
+
275
+
276
+ </div>
277
+
278
+
279
+ <div id="method-i-execute" class="method-detail ">
280
+
281
+ <div class="method-heading">
282
+ <span class="method-name">execute</span><span
283
+ class="method-args">()</span>
284
+
285
+ <span class="method-click-advice">click to toggle source</span>
286
+
287
+ </div>
288
+
289
+
290
+ <div class="method-description">
291
+
292
+ <p>Executes the action evaluating the arguments in the current context.</p>
293
+
294
+ <p>Note that <a href="ActionModule.html#method-i-execute">execute</a> calls <a
295
+ href="ActionModule.html#method-i-args">args</a> to expand variables. This
296
+ means that two calls to <a
297
+ href="ActionModule.html#method-i-execute">execute</a> on the same instance
298
+ might yield different results.</p>
299
+
300
+ <p>For example:</p>
301
+
302
+ <pre class="ruby"><span class="ruby-identifier">action</span> = <span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">parse_action</span>(<span class="ruby-string">&#39;echo ${message}&#39;</span>)
303
+
304
+ <span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">variables</span> = { <span class="ruby-string">&#39;message&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;hi!&#39;</span> }
305
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">execute</span>()
306
+ <span class="ruby-comment"># =&gt; outputs &#39;hi!&#39;</span>
307
+
308
+ <span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;message&#39;</span>] = <span class="ruby-string">&#39;hello world&#39;</span>
309
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">execute</span>()
310
+ <span class="ruby-comment"># =&gt; outputs &#39;hello world!&#39; yet the instance of action is same!</span>
311
+ </pre>
312
+
313
+
314
+
315
+
316
+ <div class="method-source-code" id="execute-source">
317
+ <pre><span class="ruby-comment"># File lib/bauxite/core/Action.rb, line 96</span>
318
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">execute</span>()
319
+ <span class="ruby-identifier">send</span>(<span class="ruby-ivar">@cmd_real</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
320
+ <span class="ruby-keyword">end</span></pre>
321
+ </div>
322
+
323
+ </div>
324
+
325
+
326
+
327
+
328
+ </div>
329
+
330
+
331
+ </section>
332
+
333
+ </section>
334
+ </main>
335
+
336
+
337
+ <footer id="validator-badges" role="contentinfo">
338
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
339
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
340
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
341
+ </footer>
342
+