mattock 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. data/doc/README +2 -0
  2. data/doc/Specifications +36 -0
  3. data/doc/coverage/assets/0.5.3/app.js +88 -0
  4. data/doc/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  5. data/doc/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  6. data/doc/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  7. data/doc/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  8. data/doc/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  9. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  10. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  11. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  12. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  13. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  14. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  15. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  16. data/doc/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  17. data/doc/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  18. data/doc/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  19. data/doc/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  20. data/doc/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  21. data/doc/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  22. data/doc/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  23. data/doc/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  24. data/doc/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  25. data/doc/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  26. data/doc/coverage/assets/0.5.3/favicon_green.png +0 -0
  27. data/doc/coverage/assets/0.5.3/favicon_red.png +0 -0
  28. data/doc/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  29. data/doc/coverage/assets/0.5.3/highlight.css +129 -0
  30. data/doc/coverage/assets/0.5.3/highlight.pack.js +1 -0
  31. data/doc/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  32. data/doc/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  33. data/doc/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  34. data/doc/coverage/assets/0.5.3/jquery.url.js +174 -0
  35. data/doc/coverage/assets/0.5.3/loading.gif +0 -0
  36. data/doc/coverage/assets/0.5.3/magnify.png +0 -0
  37. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  38. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  39. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  40. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  41. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  42. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  43. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  44. data/doc/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  45. data/doc/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  46. data/doc/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  47. data/doc/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  48. data/doc/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  49. data/doc/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  50. data/doc/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  51. data/doc/coverage/assets/0.5.3/stylesheet.css +383 -0
  52. data/doc/coverage/index.html +3969 -0
  53. data/lib/mattock.rb +4 -0
  54. data/lib/mattock/command-line.rb +157 -0
  55. data/lib/mattock/command-task.rb +51 -0
  56. data/lib/mattock/configurable.rb +129 -0
  57. data/lib/mattock/remote-command-task.rb +30 -0
  58. data/lib/mattock/tasklib.rb +76 -0
  59. data/lib/mattock/template-host.rb +54 -0
  60. data/lib/mattock/testing/mock-command-line.rb +26 -0
  61. data/lib/mattock/testing/rake-example-group.rb +79 -0
  62. data/spec/command-line.rb +59 -0
  63. data/spec/command-task.rb +39 -0
  64. data/spec/configurable.rb +45 -0
  65. data/spec/tasklib.rb +42 -0
  66. data/spec_help/gem_test_suite.rb +17 -0
  67. data/spec_help/spec_helper.rb +2 -0
  68. metadata +215 -0
data/doc/README ADDED
@@ -0,0 +1,2 @@
1
+ == This is a Really Cool Ruby Thing
2
+ === ( That deserves better documentation than this. )
@@ -0,0 +1,36 @@
1
+
2
+ Mattock::CommandLine
3
+  should have a name set
4
+  should produce a command string
5
+  should succeed
6
+  should not complain about success
7
+ Mattock::CommandRunResult
8
+  should have a result code
9
+  should have stdout
10
+
11
+ Mattock::CommandLine that fails
12
+  should not succeed
13
+  should raise error if succeed demanded
14
+
15
+ Mattock::RemoteCommandTask
16
+ when verification indicates command should proceed
17
+  should run both commands
18
+
19
+ Mattock::TemplateHost
20
+  should be able to do easy templating
21
+
22
+ Mattock::TaskLib
23
+  should define a root task
24
+  should define a namespaced task
25
+  should make root task depend on namespaced
26
+  should not define random tasks
27
+  should not make namespaced task depend on root task
28
+
29
+ Mattock::Configurable
30
+  should set defaults
31
+  should complain about unset required fields
32
+  should complain about unset nested required fields
33
+  should not complain when required fields are set
34
+
35
+ Finished in 0.02801 seconds
36
+ 19 examples, 0 failures
@@ -0,0 +1,88 @@
1
+ $(document).ready(function() {
2
+ // Configuration for fancy sortable tables for source file groups
3
+ $('.file_list').dataTable({
4
+ "aaSorting": [[ 1, "asc" ]],
5
+ "bPaginate": false,
6
+ "bJQueryUI": true,
7
+ "aoColumns": [
8
+ null,
9
+ { "sType": "percent" },
10
+ null,
11
+ null,
12
+ null,
13
+ null,
14
+ null
15
+ ]
16
+ });
17
+
18
+ // Syntax highlight all files up front - deactivated
19
+ // $('.source_table pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
20
+
21
+ // Syntax highlight source files on first toggle of the file view popup
22
+ $("a.src_link").click(function() {
23
+ // Get the source file element that corresponds to the clicked element
24
+ var source_table = $($(this).attr('href'));
25
+
26
+ // If not highlighted yet, do it!
27
+ if (!source_table.hasClass('highlighted')) {
28
+ source_table.find('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
29
+ source_table.addClass('highlighted');
30
+ };
31
+ });
32
+
33
+ // Set-up of popup for source file views
34
+ $("a.src_link").fancybox({
35
+ 'hideOnContentClick': true,
36
+ 'centerOnScroll': true,
37
+ 'width': '90%',
38
+ 'padding': 0,
39
+ 'transitionIn': 'elastic'
40
+ });
41
+
42
+ // Hide src files and file list container after load
43
+ $('.source_files').hide();
44
+ $('.file_list_container').hide();
45
+
46
+ // Add tabs based upon existing file_list_containers
47
+ $('.file_list_container h2').each(function(){
48
+ var container_id = $(this).parent().attr('id');
49
+ var group_name = $(this).find('.group_name').first().html();
50
+ var covered_percent = $(this).find('.covered_percent').first().html();
51
+
52
+ $('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' ('+ covered_percent +')</a></li>');
53
+ });
54
+
55
+ $('.group_tabs a').each( function() {
56
+ $(this).addClass($(this).attr('href').replace('#', ''));
57
+ });
58
+
59
+ // Make sure tabs don't get ugly focus borders when active
60
+ $('.group_tabs a').live('focus', function() { $(this).blur(); });
61
+
62
+ var favicon_path = $('link[rel="shortcut icon"]').attr('href');
63
+ $('.group_tabs a').live('click', function(){
64
+ if (!$(this).parent().hasClass('active')) {
65
+ $('.group_tabs a').parent().removeClass('active');
66
+ $(this).parent().addClass('active');
67
+ $('.file_list_container').hide();
68
+ $(".file_list_container" + $(this).attr('href')).show();
69
+ window.location.href = window.location.href.split('#')[0] + $(this).attr('href').replace('#', '#_');
70
+
71
+ // Force favicon reload - otherwise the location change containing anchor would drop the favicon...
72
+ // Works only on firefox, but still... - Anyone know a better solution to force favicon on local file?
73
+ $('link[rel="shortcut icon"]').remove();
74
+ $('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
75
+ };
76
+ return false;
77
+ });
78
+
79
+ if (jQuery.url.attr('anchor')) {
80
+ $('.group_tabs a.'+jQuery.url.attr('anchor').replace('_', '')).click();
81
+ } else {
82
+ $('.group_tabs a:first').click();
83
+ };
84
+
85
+ $("abbr.timeago").timeago();
86
+ $('#loading').fadeOut();
87
+ $('#wrapper').show();
88
+ });
@@ -0,0 +1,363 @@
1
+ /*
2
+ * FancyBox - jQuery Plugin
3
+ * Simple and fancy lightbox alternative
4
+ *
5
+ * Examples and documentation at: http://fancybox.net
6
+ *
7
+ * Copyright (c) 2008 - 2010 Janis Skarnelis
8
+ *
9
+ * Version: 1.3.1 (05/03/2010)
10
+ * Requires: jQuery v1.3+
11
+ *
12
+ * Dual licensed under the MIT and GPL licenses:
13
+ * http://www.opensource.org/licenses/mit-license.php
14
+ * http://www.gnu.org/licenses/gpl.html
15
+ */
16
+
17
+ #fancybox-loading {
18
+ position: fixed;
19
+ top: 50%;
20
+ left: 50%;
21
+ height: 40px;
22
+ width: 40px;
23
+ margin-top: -20px;
24
+ margin-left: -20px;
25
+ cursor: pointer;
26
+ overflow: hidden;
27
+ z-index: 1104;
28
+ display: none;
29
+ }
30
+
31
+ * html #fancybox-loading { /* IE6 */
32
+ position: absolute;
33
+ margin-top: 0;
34
+ }
35
+
36
+ #fancybox-loading div {
37
+ position: absolute;
38
+ top: 0;
39
+ left: 0;
40
+ width: 40px;
41
+ height: 480px;
42
+ background-image: url('fancybox.png');
43
+ }
44
+
45
+ #fancybox-overlay {
46
+ position: fixed;
47
+ top: 0;
48
+ left: 0;
49
+ bottom: 0;
50
+ right: 0;
51
+ background: #000;
52
+ z-index: 1100;
53
+ display: none;
54
+ }
55
+
56
+ * html #fancybox-overlay { /* IE6 */
57
+ position: absolute;
58
+ width: 100%;
59
+ }
60
+
61
+ #fancybox-tmp {
62
+ padding: 0;
63
+ margin: 0;
64
+ border: 0;
65
+ overflow: auto;
66
+ display: none;
67
+ }
68
+
69
+ #fancybox-wrap {
70
+ position: absolute;
71
+ top: 0;
72
+ left: 0;
73
+ margin: 0;
74
+ padding: 20px;
75
+ z-index: 1101;
76
+ display: none;
77
+ }
78
+
79
+ #fancybox-outer {
80
+ position: relative;
81
+ width: 100%;
82
+ height: 100%;
83
+ background: #FFF;
84
+ }
85
+
86
+ #fancybox-inner {
87
+ position: absolute;
88
+ top: 0;
89
+ left: 0;
90
+ width: 1px;
91
+ height: 1px;
92
+ padding: 0;
93
+ margin: 0;
94
+ outline: none;
95
+ overflow: hidden;
96
+ }
97
+
98
+ #fancybox-hide-sel-frame {
99
+ position: absolute;
100
+ top: 0;
101
+ left: 0;
102
+ width: 100%;
103
+ height: 100%;
104
+ background: transparent;
105
+ }
106
+
107
+ #fancybox-close {
108
+ position: absolute;
109
+ top: -15px;
110
+ right: -15px;
111
+ width: 30px;
112
+ height: 30px;
113
+ background-image: url('fancybox.png');
114
+ background-position: -40px 0px;
115
+ cursor: pointer;
116
+ z-index: 1103;
117
+ display: none;
118
+ }
119
+
120
+ #fancybox_error {
121
+ color: #444;
122
+ font: normal 12px/20px Arial;
123
+ padding: 7px;
124
+ margin: 0;
125
+ }
126
+
127
+ #fancybox-content {
128
+ height: auto;
129
+ width: auto;
130
+ padding: 0;
131
+ margin: 0;
132
+ }
133
+
134
+ #fancybox-img {
135
+ width: 100%;
136
+ height: 100%;
137
+ padding: 0;
138
+ margin: 0;
139
+ border: none;
140
+ outline: none;
141
+ line-height: 0;
142
+ vertical-align: top;
143
+ -ms-interpolation-mode: bicubic;
144
+ }
145
+
146
+ #fancybox-frame {
147
+ position: relative;
148
+ width: 100%;
149
+ height: 100%;
150
+ border: none;
151
+ display: block;
152
+ }
153
+
154
+ #fancybox-title {
155
+ position: absolute;
156
+ bottom: 0;
157
+ left: 0;
158
+ font-family: Arial;
159
+ font-size: 12px;
160
+ z-index: 1102;
161
+ }
162
+
163
+ .fancybox-title-inside {
164
+ padding: 10px 0;
165
+ text-align: center;
166
+ color: #333;
167
+ }
168
+
169
+ .fancybox-title-outside {
170
+ padding-top: 5px;
171
+ color: #FFF;
172
+ text-align: center;
173
+ font-weight: bold;
174
+ }
175
+
176
+ .fancybox-title-over {
177
+ color: #FFF;
178
+ text-align: left;
179
+ }
180
+
181
+ #fancybox-title-over {
182
+ padding: 10px;
183
+ background-image: url('fancy_title_over.png');
184
+ display: block;
185
+ }
186
+
187
+ #fancybox-title-wrap {
188
+ display: inline-block;
189
+ }
190
+
191
+ #fancybox-title-wrap span {
192
+ height: 32px;
193
+ float: left;
194
+ }
195
+
196
+ #fancybox-title-left {
197
+ padding-left: 15px;
198
+ background-image: url('fancybox.png');
199
+ background-position: -40px -90px;
200
+ background-repeat: no-repeat;
201
+ }
202
+
203
+ #fancybox-title-main {
204
+ font-weight: bold;
205
+ line-height: 29px;
206
+ background-image: url('fancybox-x.png');
207
+ background-position: 0px -40px;
208
+ color: #FFF;
209
+ }
210
+
211
+ #fancybox-title-right {
212
+ padding-left: 15px;
213
+ background-image: url('fancybox.png');
214
+ background-position: -55px -90px;
215
+ background-repeat: no-repeat;
216
+ }
217
+
218
+ #fancybox-left, #fancybox-right {
219
+ position: absolute;
220
+ bottom: 0px;
221
+ height: 100%;
222
+ width: 35%;
223
+ cursor: pointer;
224
+ outline: none;
225
+ background-image: url('blank.gif');
226
+ z-index: 1102;
227
+ display: none;
228
+ }
229
+
230
+ #fancybox-left {
231
+ left: 0px;
232
+ }
233
+
234
+ #fancybox-right {
235
+ right: 0px;
236
+ }
237
+
238
+ #fancybox-left-ico, #fancybox-right-ico {
239
+ position: absolute;
240
+ top: 50%;
241
+ left: -9999px;
242
+ width: 30px;
243
+ height: 30px;
244
+ margin-top: -15px;
245
+ cursor: pointer;
246
+ z-index: 1102;
247
+ display: block;
248
+ }
249
+
250
+ #fancybox-left-ico {
251
+ background-image: url('fancybox.png');
252
+ background-position: -40px -30px;
253
+ }
254
+
255
+ #fancybox-right-ico {
256
+ background-image: url('fancybox.png');
257
+ background-position: -40px -60px;
258
+ }
259
+
260
+ #fancybox-left:hover, #fancybox-right:hover {
261
+ visibility: visible; /* IE6 */
262
+ }
263
+
264
+ #fancybox-left:hover span {
265
+ left: 20px;
266
+ }
267
+
268
+ #fancybox-right:hover span {
269
+ left: auto;
270
+ right: 20px;
271
+ }
272
+
273
+ .fancy-bg {
274
+ position: absolute;
275
+ padding: 0;
276
+ margin: 0;
277
+ border: 0;
278
+ width: 20px;
279
+ height: 20px;
280
+ z-index: 1001;
281
+ }
282
+
283
+ #fancy-bg-n {
284
+ top: -20px;
285
+ left: 0;
286
+ width: 100%;
287
+ background-image: url('fancybox-x.png');
288
+ }
289
+
290
+ #fancy-bg-ne {
291
+ top: -20px;
292
+ right: -20px;
293
+ background-image: url('fancybox.png');
294
+ background-position: -40px -162px;
295
+ }
296
+
297
+ #fancy-bg-e {
298
+ top: 0;
299
+ right: -20px;
300
+ height: 100%;
301
+ background-image: url('fancybox-y.png');
302
+ background-position: -20px 0px;
303
+ }
304
+
305
+ #fancy-bg-se {
306
+ bottom: -20px;
307
+ right: -20px;
308
+ background-image: url('fancybox.png');
309
+ background-position: -40px -182px;
310
+ }
311
+
312
+ #fancy-bg-s {
313
+ bottom: -20px;
314
+ left: 0;
315
+ width: 100%;
316
+ background-image: url('fancybox-x.png');
317
+ background-position: 0px -20px;
318
+ }
319
+
320
+ #fancy-bg-sw {
321
+ bottom: -20px;
322
+ left: -20px;
323
+ background-image: url('fancybox.png');
324
+ background-position: -40px -142px;
325
+ }
326
+
327
+ #fancy-bg-w {
328
+ top: 0;
329
+ left: -20px;
330
+ height: 100%;
331
+ background-image: url('fancybox-y.png');
332
+ }
333
+
334
+ #fancy-bg-nw {
335
+ top: -20px;
336
+ left: -20px;
337
+ background-image: url('fancybox.png');
338
+ background-position: -40px -122px;
339
+ }
340
+
341
+ /* IE */
342
+
343
+ #fancybox-loading.fancybox-ie div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
344
+ .fancybox-ie #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
345
+
346
+ .fancybox-ie #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
347
+ .fancybox-ie #fancybox-title-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
348
+ .fancybox-ie #fancybox-title-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
349
+ .fancybox-ie #fancybox-title-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
350
+
351
+ .fancybox-ie #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
352
+ .fancybox-ie #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
353
+
354
+ .fancybox-ie .fancy-bg { background: transparent !important; }
355
+
356
+ .fancybox-ie #fancy-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
357
+ .fancybox-ie #fancy-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
358
+ .fancybox-ie #fancy-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
359
+ .fancybox-ie #fancy-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
360
+ .fancybox-ie #fancy-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
361
+ .fancybox-ie #fancy-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
362
+ .fancybox-ie #fancy-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
363
+ .fancybox-ie #fancy-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }