nikki 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -7
- data/README.md +2 -1
- data/doc/Generator.html +596 -0
- data/doc/Nikki.html +153 -0
- data/doc/_index.html +137 -0
- data/doc/class_list.html +62 -0
- data/doc/css/common.css +1 -0
- data/doc/css/cucumber.css +227 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/feature_list.html +65 -0
- data/doc/file.README.html +134 -0
- data/doc/file_list.html +64 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +134 -0
- data/doc/js/app.js +219 -0
- data/doc/js/cucumber.js +305 -0
- data/doc/js/full_list.js +178 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +85 -0
- data/doc/requirements/step_transformers.html +140 -0
- data/doc/requirements/tags.html +193 -0
- data/doc/requirements.html +132 -0
- data/doc/tag_list.html +65 -0
- data/doc/top-level-namespace.html +128 -0
- data/lib/nikki/version.rb +1 -1
- data/lib/nikki.rb +7 -7
- metadata +25 -4
- data/TODO.md +0 -6
- data/tags +0 -37
data/doc/frames.html
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
+
<title>Documentation by YARD 0.8.7.4</title>
|
8
|
+
</head>
|
9
|
+
<script type="text/javascript" charset="utf-8">
|
10
|
+
window.onload = function() {
|
11
|
+
var match = unescape(window.location.hash).match(/^#!(.+)/);
|
12
|
+
var name = match ? match[1] : 'index.html';
|
13
|
+
name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
|
14
|
+
document.writeln('<frameset cols="20%,*">' +
|
15
|
+
'<frame name="list" src="class_list.html" />' +
|
16
|
+
'<frame name="main" src="' + escape(name) + '" />' +
|
17
|
+
'</frameset>');
|
18
|
+
}
|
19
|
+
</script>
|
20
|
+
<noscript>
|
21
|
+
<frameset cols="20%,*">
|
22
|
+
<frame name="list" src="class_list.html" />
|
23
|
+
<frame name="main" src="index.html" />
|
24
|
+
</frameset>
|
25
|
+
</noscript>
|
26
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.4
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<link rel="stylesheet" href="css/cucumber.css" type="text/css" charset="utf-8" />
|
18
|
+
|
19
|
+
<script type="text/javascript" charset="utf-8">
|
20
|
+
hasFrames = window.top.frames.main ? true : false;
|
21
|
+
relpath = '';
|
22
|
+
framesUrl = "frames.html#!file.README.html";
|
23
|
+
</script>
|
24
|
+
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
27
|
+
|
28
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
29
|
+
|
30
|
+
<script type="text/javascript" charset="utf-8" src="js/cucumber.js"></script>
|
31
|
+
|
32
|
+
|
33
|
+
</head>
|
34
|
+
<body>
|
35
|
+
<div id="header">
|
36
|
+
<div id="menu">
|
37
|
+
|
38
|
+
<a href="_index.html">Index</a> »
|
39
|
+
<span class="title">File: README</span>
|
40
|
+
|
41
|
+
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<div id="search">
|
46
|
+
|
47
|
+
<a class="full_list_link" id="feature_list_link"
|
48
|
+
href="feature_list.html">
|
49
|
+
Features
|
50
|
+
</a>
|
51
|
+
|
52
|
+
<a class="full_list_link" id="tag_list_link"
|
53
|
+
href="tag_list.html">
|
54
|
+
Tags
|
55
|
+
</a>
|
56
|
+
|
57
|
+
<a class="full_list_link" id="class_list_link"
|
58
|
+
href="class_list.html">
|
59
|
+
Class List
|
60
|
+
</a>
|
61
|
+
|
62
|
+
<a class="full_list_link" id="method_list_link"
|
63
|
+
href="method_list.html">
|
64
|
+
Method List
|
65
|
+
</a>
|
66
|
+
|
67
|
+
<a class="full_list_link" id="file_list_link"
|
68
|
+
href="file_list.html">
|
69
|
+
File List
|
70
|
+
</a>
|
71
|
+
|
72
|
+
</div>
|
73
|
+
<div class="clear"></div>
|
74
|
+
</div>
|
75
|
+
|
76
|
+
<iframe id="search_frame"></iframe>
|
77
|
+
|
78
|
+
<div id="content"><div id='filecontents'><p><a href="http://badge.fury.io/rb/nikki"><img src="https://badge.fury.io/rb/nikki.png" alt="Gem Version"></a>
|
79
|
+
<a href="http://inch-pages.github.io/github/brandonpittman/nikki"><img src="http://inch-pages.github.io/github/brandonpittman/nikki.png" alt="Inline docs"></a></p>
|
80
|
+
|
81
|
+
<h1>nikki</h1>
|
82
|
+
|
83
|
+
<blockquote>
|
84
|
+
<p>"Record something new learned every day of the year."</p>
|
85
|
+
</blockquote>
|
86
|
+
|
87
|
+
<h3>Track newly learned things</h3>
|
88
|
+
|
89
|
+
<p>In Japanese, "nikki" means "daily journal". The idea behind <em>nikki</em> is to record one thing you learned today. If all goes well, you've got a 365 line journal formatted in Markdown and ready to be posted to your blog on January 1st next year. The months are H1's and every day in the month is part of an ordered list. The journal file is saved at <code>~/.nikki_#{year}.md</code>.</p>
|
90
|
+
|
91
|
+
<h2>Installation</h2>
|
92
|
+
|
93
|
+
<p>Add this line to your application's Gemfile:</p>
|
94
|
+
|
95
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>nikki</span><span class='tstring_end'>'</span></span>
|
96
|
+
</code></pre>
|
97
|
+
|
98
|
+
<p>And then execute:</p>
|
99
|
+
|
100
|
+
<pre class="code ruby"><code class="ruby">$ bundle
|
101
|
+
</code></pre>
|
102
|
+
|
103
|
+
<p>Or install it yourself as:</p>
|
104
|
+
|
105
|
+
<pre class="code ruby"><code class="ruby">$ gem install nikki
|
106
|
+
</code></pre>
|
107
|
+
|
108
|
+
<h2>Usage</h2>
|
109
|
+
|
110
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_nikki'>nikki</span> <span class='id identifier rubyid_config'>config</span> <span class='comment'># Change Nikki's settings.
|
111
|
+
</span><span class='id identifier rubyid_nikki'>nikki</span> <span class='id identifier rubyid_help'>help</span> <span class='lbracket'>[</span><span class='const'>COMMAND</span><span class='rbracket'>]</span> <span class='comment'># Describe available commands or one specific command
|
112
|
+
</span><span class='id identifier rubyid_nikki'>nikki</span> <span class='id identifier rubyid_new'>new</span> <span class='const'>ENTRY</span> <span class='comment'># Creates a new entry in the Nikki journal.
|
113
|
+
</span><span class='id identifier rubyid_nikki'>nikki</span> <span class='id identifier rubyid_open'>open</span> <span class='comment'># Opens current year's journal file in editor.
|
114
|
+
</span></code></pre>
|
115
|
+
|
116
|
+
<h2>Contributing</h2>
|
117
|
+
|
118
|
+
<ol>
|
119
|
+
<li>Fork it ( <a href="http://github.com/">http://github.com/</a><my-github-username>/nikki/fork )</li>
|
120
|
+
<li>Create your feature branch (<code>git checkout -b my-new-feature</code>)</li>
|
121
|
+
<li>Commit your changes (<code>git commit -am 'Add some feature'</code>)</li>
|
122
|
+
<li>Push to the branch (<code>git push origin my-new-feature</code>)</li>
|
123
|
+
<li>Create new Pull Request</li>
|
124
|
+
</ol>
|
125
|
+
</div></div>
|
126
|
+
|
127
|
+
<div id="footer">
|
128
|
+
Generated on Fri May 30 09:21:12 2014 by
|
129
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
|
+
0.8.7.4 (ruby-2.1.2).
|
131
|
+
</div>
|
132
|
+
|
133
|
+
</body>
|
134
|
+
</html>
|
data/doc/js/app.js
ADDED
@@ -0,0 +1,219 @@
|
|
1
|
+
function createSourceLinks() {
|
2
|
+
$('.method_details_list .source_code').
|
3
|
+
before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
|
4
|
+
$('.toggleSource').toggle(function() {
|
5
|
+
$(this).parent().nextAll('.source_code').slideDown(100);
|
6
|
+
$(this).text("Hide source");
|
7
|
+
},
|
8
|
+
function() {
|
9
|
+
$(this).parent().nextAll('.source_code').slideUp(100);
|
10
|
+
$(this).text("View source");
|
11
|
+
});
|
12
|
+
}
|
13
|
+
|
14
|
+
function createDefineLinks() {
|
15
|
+
var tHeight = 0;
|
16
|
+
$('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
|
17
|
+
$('.toggleDefines').toggle(function() {
|
18
|
+
tHeight = $(this).parent().prev().height();
|
19
|
+
$(this).prev().show();
|
20
|
+
$(this).parent().prev().height($(this).parent().height());
|
21
|
+
$(this).text("(less)");
|
22
|
+
},
|
23
|
+
function() {
|
24
|
+
$(this).prev().hide();
|
25
|
+
$(this).parent().prev().height(tHeight);
|
26
|
+
$(this).text("more...");
|
27
|
+
});
|
28
|
+
}
|
29
|
+
|
30
|
+
function createFullTreeLinks() {
|
31
|
+
var tHeight = 0;
|
32
|
+
$('.inheritanceTree').toggle(function() {
|
33
|
+
tHeight = $(this).parent().prev().height();
|
34
|
+
$(this).parent().toggleClass('showAll');
|
35
|
+
$(this).text("(hide)");
|
36
|
+
$(this).parent().prev().height($(this).parent().height());
|
37
|
+
},
|
38
|
+
function() {
|
39
|
+
$(this).parent().toggleClass('showAll');
|
40
|
+
$(this).parent().prev().height(tHeight);
|
41
|
+
$(this).text("show all");
|
42
|
+
});
|
43
|
+
}
|
44
|
+
|
45
|
+
function fixBoxInfoHeights() {
|
46
|
+
$('dl.box dd.r1, dl.box dd.r2').each(function() {
|
47
|
+
$(this).prev().height($(this).height());
|
48
|
+
});
|
49
|
+
}
|
50
|
+
|
51
|
+
function searchFrameLinks() {
|
52
|
+
$('.full_list_link').click(function() {
|
53
|
+
toggleSearchFrame(this, $(this).attr('href'));
|
54
|
+
return false;
|
55
|
+
});
|
56
|
+
}
|
57
|
+
|
58
|
+
function toggleSearchFrame(id, link) {
|
59
|
+
var frame = $('#search_frame');
|
60
|
+
$('#search a').removeClass('active').addClass('inactive');
|
61
|
+
if (frame.attr('src') == link && frame.css('display') != "none") {
|
62
|
+
frame.slideUp(100);
|
63
|
+
$('#search a').removeClass('active inactive');
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
$(id).addClass('active').removeClass('inactive');
|
67
|
+
frame.attr('src', link).slideDown(100);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
function linkSummaries() {
|
72
|
+
$('.summary_signature').click(function() {
|
73
|
+
document.location = $(this).find('a').attr('href');
|
74
|
+
});
|
75
|
+
}
|
76
|
+
|
77
|
+
function framesInit() {
|
78
|
+
if (hasFrames) {
|
79
|
+
document.body.className = 'frames';
|
80
|
+
$('#menu .noframes a').attr('href', document.location);
|
81
|
+
try {
|
82
|
+
window.top.document.title = $('html head title').text();
|
83
|
+
} catch(error) {
|
84
|
+
// some browsers will not allow this when serving from file://
|
85
|
+
// but we don't want to stop the world.
|
86
|
+
}
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
$('#menu .noframes a').text('frames').attr('href', framesUrl);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
function keyboardShortcuts() {
|
94
|
+
if (window.top.frames.main) return;
|
95
|
+
$(document).keypress(function(evt) {
|
96
|
+
if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
|
97
|
+
if (typeof evt.target !== "undefined" &&
|
98
|
+
(evt.target.nodeName == "INPUT" ||
|
99
|
+
evt.target.nodeName == "TEXTAREA")) return;
|
100
|
+
switch (evt.charCode) {
|
101
|
+
case 67: case 99: $('#class_list_link').click(); break; // 'c'
|
102
|
+
case 77: case 109: $('#method_list_link').click(); break; // 'm'
|
103
|
+
case 70: case 102: $('#file_list_link').click(); break; // 'f'
|
104
|
+
default: break;
|
105
|
+
}
|
106
|
+
});
|
107
|
+
}
|
108
|
+
|
109
|
+
function summaryToggle() {
|
110
|
+
$('.summary_toggle').click(function() {
|
111
|
+
if (localStorage) {
|
112
|
+
localStorage.summaryCollapsed = $(this).text();
|
113
|
+
}
|
114
|
+
$('.summary_toggle').each(function() {
|
115
|
+
$(this).text($(this).text() == "collapse" ? "expand" : "collapse");
|
116
|
+
var next = $(this).parent().parent().nextAll('ul.summary').first();
|
117
|
+
if (next.hasClass('compact')) {
|
118
|
+
next.toggle();
|
119
|
+
next.nextAll('ul.summary').first().toggle();
|
120
|
+
}
|
121
|
+
else if (next.hasClass('summary')) {
|
122
|
+
var list = $('<ul class="summary compact" />');
|
123
|
+
list.html(next.html());
|
124
|
+
list.find('.summary_desc, .note').remove();
|
125
|
+
list.find('a').each(function() {
|
126
|
+
$(this).html($(this).find('strong').html());
|
127
|
+
$(this).parent().html($(this)[0].outerHTML);
|
128
|
+
});
|
129
|
+
next.before(list);
|
130
|
+
next.toggle();
|
131
|
+
}
|
132
|
+
});
|
133
|
+
return false;
|
134
|
+
});
|
135
|
+
if (localStorage) {
|
136
|
+
if (localStorage.summaryCollapsed == "collapse") {
|
137
|
+
$('.summary_toggle').first().click();
|
138
|
+
}
|
139
|
+
else localStorage.summaryCollapsed = "expand";
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
function fixOutsideWorldLinks() {
|
144
|
+
$('a').each(function() {
|
145
|
+
if (window.location.host != this.host) this.target = '_parent';
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
function generateTOC() {
|
150
|
+
if ($('#filecontents').length === 0) return;
|
151
|
+
var _toc = $('<ol class="top"></ol>');
|
152
|
+
var show = false;
|
153
|
+
var toc = _toc;
|
154
|
+
var counter = 0;
|
155
|
+
var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
156
|
+
var i;
|
157
|
+
if ($('#filecontents h1').length > 1) tags.unshift('h1');
|
158
|
+
for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
|
159
|
+
var lastTag = parseInt(tags[0][1], 10);
|
160
|
+
$(tags.join(', ')).each(function() {
|
161
|
+
if ($(this).parents('.method_details .docstring').length != 0) return;
|
162
|
+
if (this.id == "filecontents") return;
|
163
|
+
show = true;
|
164
|
+
var thisTag = parseInt(this.tagName[1], 10);
|
165
|
+
if (this.id.length === 0) {
|
166
|
+
var proposedId = $(this).attr('toc-id');
|
167
|
+
if (typeof(proposedId) != "undefined") this.id = proposedId;
|
168
|
+
else {
|
169
|
+
var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
|
170
|
+
if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
|
171
|
+
this.id = proposedId;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
if (thisTag > lastTag) {
|
175
|
+
for (i = 0; i < thisTag - lastTag; i++) {
|
176
|
+
var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
|
177
|
+
}
|
178
|
+
}
|
179
|
+
if (thisTag < lastTag) {
|
180
|
+
for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
|
181
|
+
}
|
182
|
+
var title = $(this).attr('toc-title');
|
183
|
+
if (typeof(title) == "undefined") title = $(this).text();
|
184
|
+
toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
|
185
|
+
lastTag = thisTag;
|
186
|
+
});
|
187
|
+
if (!show) return;
|
188
|
+
html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
|
189
|
+
$('#content').prepend(html);
|
190
|
+
$('#toc').append(_toc);
|
191
|
+
$('#toc .hide_toc').toggle(function() {
|
192
|
+
$('#toc .top').slideUp('fast');
|
193
|
+
$('#toc').toggleClass('hidden');
|
194
|
+
$('#toc .title small').toggle();
|
195
|
+
}, function() {
|
196
|
+
$('#toc .top').slideDown('fast');
|
197
|
+
$('#toc').toggleClass('hidden');
|
198
|
+
$('#toc .title small').toggle();
|
199
|
+
});
|
200
|
+
$('#toc .float_toc').toggle(function() {
|
201
|
+
$(this).text('float');
|
202
|
+
$('#toc').toggleClass('nofloat');
|
203
|
+
}, function() {
|
204
|
+
$(this).text('left');
|
205
|
+
$('#toc').toggleClass('nofloat');
|
206
|
+
});
|
207
|
+
}
|
208
|
+
|
209
|
+
$(framesInit);
|
210
|
+
$(createSourceLinks);
|
211
|
+
$(createDefineLinks);
|
212
|
+
$(createFullTreeLinks);
|
213
|
+
$(fixBoxInfoHeights);
|
214
|
+
$(searchFrameLinks);
|
215
|
+
$(linkSummaries);
|
216
|
+
$(keyboardShortcuts);
|
217
|
+
$(summaryToggle);
|
218
|
+
$(fixOutsideWorldLinks);
|
219
|
+
$(generateTOC);
|
data/doc/js/cucumber.js
ADDED
@@ -0,0 +1,305 @@
|
|
1
|
+
function cucumberKeyboardShortcuts() {
|
2
|
+
if (window.top.frames.main) return;
|
3
|
+
$(document).keypress(function(evt) {
|
4
|
+
if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
|
5
|
+
if (typeof evt.target !== "undefined" &&
|
6
|
+
(evt.target.nodeName == "INPUT" ||
|
7
|
+
evt.target.nodeName == "TEXTAREA")) return;
|
8
|
+
switch (evt.charCode) {
|
9
|
+
case 68: case 100: $('#stepdefinition_list_link').click(); break; // 'd'
|
10
|
+
case 82: case 114: $('#feature_list_link').click(); break; // 'r'
|
11
|
+
case 83: case 115: $('#step_list_link').click(); break; // 's'
|
12
|
+
case 84: case 116: $('#tag_list_link').click(); break; // 't'
|
13
|
+
}
|
14
|
+
});
|
15
|
+
}
|
16
|
+
|
17
|
+
$(cucumberKeyboardShortcuts);
|
18
|
+
|
19
|
+
$(function() {
|
20
|
+
|
21
|
+
//
|
22
|
+
// Feature Page - Scenarios
|
23
|
+
//
|
24
|
+
$('.scenario div.title').click(function(eventObject) {
|
25
|
+
if (typeof eventObject.currentTarget !== "undefined") {
|
26
|
+
toggleScenario( $($(eventObject.currentTarget).parent()) );
|
27
|
+
}
|
28
|
+
});
|
29
|
+
|
30
|
+
//
|
31
|
+
// Developer View
|
32
|
+
// Click + Developer View = toggle the expansion of all tags, location, and comments
|
33
|
+
//
|
34
|
+
$('#view').click(function(eventObject) {
|
35
|
+
|
36
|
+
if (typeof eventObject.currentTarget !== "undefined") {
|
37
|
+
var view = eventObject.currentTarget;
|
38
|
+
|
39
|
+
if (view.innerHTML === '[More Detail]') {
|
40
|
+
$('.developer').show(500);
|
41
|
+
view.innerHTML = '[Less Detail]';
|
42
|
+
} else {
|
43
|
+
$('.developer').hide(500);
|
44
|
+
// Already hidden elements with .developer sub-elements were not getting message
|
45
|
+
$('.developer').each(function() {
|
46
|
+
$(this).css('display','none');
|
47
|
+
});
|
48
|
+
view.innerHTML = '[More Detail]';
|
49
|
+
}
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
53
|
+
//
|
54
|
+
// Expand/Collapse All
|
55
|
+
//
|
56
|
+
$('#expand').click(function(eventObject) {
|
57
|
+
|
58
|
+
if (typeof eventObject.currentTarget !== "undefined") {
|
59
|
+
if (eventObject.currentTarget.innerHTML === '[Expand All]') {
|
60
|
+
eventObject.currentTarget.innerHTML = '[Collapse All]';
|
61
|
+
$('div.scenario > div.details:hidden').each(function() {
|
62
|
+
toggleScenario( $($(this).parent()) );
|
63
|
+
});
|
64
|
+
} else {
|
65
|
+
eventObject.currentTarget.innerHTML = '[Expand All]';
|
66
|
+
$('div.scenario > div.details:visible').each(function() {
|
67
|
+
toggleScenario( $($(this).parent()) );
|
68
|
+
});
|
69
|
+
}
|
70
|
+
}
|
71
|
+
});
|
72
|
+
|
73
|
+
//
|
74
|
+
// Expand/Collapse All
|
75
|
+
//
|
76
|
+
$('#stepdefinition,#steptransform').click(function(eventObject) {
|
77
|
+
|
78
|
+
if (typeof eventObject.currentTarget !== "undefined") {
|
79
|
+
if (eventObject.currentTarget.innerHTML === '[Expand All]') {
|
80
|
+
eventObject.currentTarget.innerHTML = '[Collapse All]';
|
81
|
+
$('div.' + eventObject.currentTarget.id + ' > div.details:hidden').each(function() {
|
82
|
+
$(this).show(200);
|
83
|
+
});
|
84
|
+
} else {
|
85
|
+
eventObject.currentTarget.innerHTML = '[Expand All]';
|
86
|
+
$('div.' + eventObject.currentTarget.id + ' > div.details:visible').each(function() {
|
87
|
+
$(this).hide(200);
|
88
|
+
});
|
89
|
+
}
|
90
|
+
}
|
91
|
+
});
|
92
|
+
|
93
|
+
|
94
|
+
//
|
95
|
+
// Scenario Outlines - Toggle Examples
|
96
|
+
//
|
97
|
+
$('.outline table tr').click(function(eventObject) {
|
98
|
+
|
99
|
+
if (typeof eventObject.currentTarget !== "undefined") {
|
100
|
+
var exampleRow = $(eventObject.currentTarget);
|
101
|
+
|
102
|
+
if (eventObject.currentTarget.className.match(/example\d+-\d+/) == null) {
|
103
|
+
return false;
|
104
|
+
}
|
105
|
+
|
106
|
+
var exampleClass = eventObject.currentTarget.className.match(/example\d+-\d+/)[0];
|
107
|
+
var example = exampleRow.closest('div.details').find('.' + exampleClass);
|
108
|
+
|
109
|
+
var currentExample = null;
|
110
|
+
|
111
|
+
$('.outline table tr').each(function() {
|
112
|
+
$(this).removeClass('selected');
|
113
|
+
});
|
114
|
+
|
115
|
+
if ( example[0].style.display == 'none' ) {
|
116
|
+
currentExample = example[0];
|
117
|
+
exampleRow.addClass('selected');
|
118
|
+
} else {
|
119
|
+
currentExample = exampleRow.closest('div.details').find('.steps')[0];
|
120
|
+
}
|
121
|
+
|
122
|
+
// hide everything
|
123
|
+
exampleRow.closest('div.details').find('.steps').each(function() {
|
124
|
+
$(this).hide();
|
125
|
+
});
|
126
|
+
|
127
|
+
// show the selected
|
128
|
+
$(currentExample).show();
|
129
|
+
}
|
130
|
+
});
|
131
|
+
|
132
|
+
|
133
|
+
});
|
134
|
+
|
135
|
+
|
136
|
+
function toggleScenario(scenario) {
|
137
|
+
|
138
|
+
var state = scenario.find(".attributes input[name='collapsed']")[0];
|
139
|
+
|
140
|
+
if (state.value === 'true') {
|
141
|
+
scenario.find("div.details").each(function() {
|
142
|
+
$(this).show(500);
|
143
|
+
});
|
144
|
+
state.value = "false";
|
145
|
+
scenario.find('a.toggle').each(function() {
|
146
|
+
this.innerHTML = ' - ';
|
147
|
+
});
|
148
|
+
|
149
|
+
} else {
|
150
|
+
scenario.find("div.details").each(function() {
|
151
|
+
$(this).hide(500);
|
152
|
+
});
|
153
|
+
state.value = "true";
|
154
|
+
scenario.find('a.toggle').each(function() {
|
155
|
+
this.innerHTML = ' + ';
|
156
|
+
});
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
|
161
|
+
function updateTagFiltering(tagString) {
|
162
|
+
var formulaTags = determineTagsUsedInFormula(tagString);
|
163
|
+
displayExampleCommandLine(formulaTags);
|
164
|
+
displayQualifyingFeaturesAndScenarios(formulaTags);
|
165
|
+
fixSectionRowAlternations();
|
166
|
+
}
|
167
|
+
|
168
|
+
function clearTagFiltering() {
|
169
|
+
updateTagFiltering("");
|
170
|
+
}
|
171
|
+
|
172
|
+
function determineTagsUsedInFormula(tagString) {
|
173
|
+
|
174
|
+
tagString = tagString.replace(/^(\s+)|(\s+)$/,'').replace(/\s{2,}/,' ');
|
175
|
+
|
176
|
+
var tagGroup = tagString.match(/(?:~)?@\w+(,(?:~)?@\w+)*/g);
|
177
|
+
|
178
|
+
var returnTags = [];
|
179
|
+
|
180
|
+
if (tagGroup) {
|
181
|
+
tagGroup.forEach(function(tag, index, array) {
|
182
|
+
console.log("Tag Group: " + tag);
|
183
|
+
var validTags = removeInvalidTags(tag)
|
184
|
+
if (validTags != "") {
|
185
|
+
returnTags.push(validTags);
|
186
|
+
}
|
187
|
+
});
|
188
|
+
}
|
189
|
+
|
190
|
+
return returnTags;
|
191
|
+
}
|
192
|
+
|
193
|
+
function removeInvalidTags(tagGroup) {
|
194
|
+
tagGroup.split(",").forEach(function(tag, index, array) {
|
195
|
+
|
196
|
+
baseTag = tag.match(/^~(.+)/) ? tag.match(/^~(.+)/)[1] : tag;
|
197
|
+
|
198
|
+
//console.log("Validating Tag: " + tag)
|
199
|
+
if (tag_list.indexOf(baseTag) === -1) {
|
200
|
+
//console.log("Removing Tag: " + tag);
|
201
|
+
tagGroup = tagGroup.replace(new RegExp(',?' + tag + ',?'),"")
|
202
|
+
}
|
203
|
+
});
|
204
|
+
|
205
|
+
return tagGroup;
|
206
|
+
}
|
207
|
+
|
208
|
+
|
209
|
+
function displayExampleCommandLine(tags) {
|
210
|
+
$("#command_example")[0].innerHTML = "cucumber ";
|
211
|
+
|
212
|
+
if (tags.length > 0) {
|
213
|
+
$("#command_example")[0].innerHTML += "--tags " + tags.join(" --tags ");
|
214
|
+
}
|
215
|
+
}
|
216
|
+
|
217
|
+
function fixSectionRowAlternations() {
|
218
|
+
$(".feature:visible,.scenario:visible").each(function(index){
|
219
|
+
$(this).removeClass("odd even").addClass( ((index + 1) % 2 == 0 ? "even" : "odd") );
|
220
|
+
});
|
221
|
+
}
|
222
|
+
|
223
|
+
function displayQualifyingFeaturesAndScenarios(tags) {
|
224
|
+
|
225
|
+
if (tags.length > 0) {
|
226
|
+
|
227
|
+
$(".feature,.scenario").each(function(feature){
|
228
|
+
$(this).hide();
|
229
|
+
});
|
230
|
+
|
231
|
+
var tagSelectors = generateCssSelectorFromTags(tags);
|
232
|
+
|
233
|
+
tagSelectors.forEach(function(selector,selectorIndex,selectorArray) {
|
234
|
+
var tags = selector;
|
235
|
+
|
236
|
+
$(".feature." + tags).each(function(index) {
|
237
|
+
$(this).show();
|
238
|
+
});
|
239
|
+
$(".scenario." + tags).each(function(index) {
|
240
|
+
$(this).show();
|
241
|
+
$(this).parent().prev().show();
|
242
|
+
});
|
243
|
+
|
244
|
+
});
|
245
|
+
|
246
|
+
if ( $(".feature:visible,.scenario:visible").length == 0 ) {
|
247
|
+
$("#features div.undefined").show();
|
248
|
+
} else {
|
249
|
+
$("#features div.undefined").hide();
|
250
|
+
}
|
251
|
+
|
252
|
+
|
253
|
+
} else {
|
254
|
+
$(".feature:hidden,.scenario:hidden").each(function(feature){
|
255
|
+
$(this).show();
|
256
|
+
});
|
257
|
+
}
|
258
|
+
|
259
|
+
}
|
260
|
+
|
261
|
+
function generateCssSelectorFromTags(tagGroups) {
|
262
|
+
|
263
|
+
var tagSelectors = [ "" ];
|
264
|
+
|
265
|
+
tagGroups.forEach(function(tagGroup,index,array) {
|
266
|
+
var newTagSelectors = [];
|
267
|
+
|
268
|
+
tagSelectors.forEach(function(selector,selectorIndex,selectorArray) {
|
269
|
+
tagGroup.split(",").forEach(function(tag,tagIndex,tagArray) {
|
270
|
+
|
271
|
+
if ( tag.match(/^~@.+$/) ) {
|
272
|
+
tag = tag.match(/^~(@.+)$/)[1]
|
273
|
+
//console.log("selector: " + (selector + " :not(" + tag + ")").trim());
|
274
|
+
newTagSelectors.push((selector + ":not(." + tag.replace(/@/g,"\\@") +")").trim());
|
275
|
+
} else {
|
276
|
+
//console.log("selector: " + (selector + " " + tag).trim());
|
277
|
+
newTagSelectors.push((selector + "." + tag.replace(/@/g,"\\@")).trim());
|
278
|
+
}
|
279
|
+
});
|
280
|
+
|
281
|
+
});
|
282
|
+
|
283
|
+
tagSelectors = newTagSelectors;
|
284
|
+
|
285
|
+
});
|
286
|
+
|
287
|
+
|
288
|
+
return tagSelectors;
|
289
|
+
}
|
290
|
+
|
291
|
+
|
292
|
+
function createStepDefinitionLinks() {
|
293
|
+
// $('.step_instances_list').
|
294
|
+
// before("<span class='showSteps'>[<a href='#' class='toggleSteps'>View steps</a>]</span>");
|
295
|
+
$('.toggleSteps').toggle(function() {
|
296
|
+
$(this).parent().next().slideUp(100);
|
297
|
+
$(this).text("View " + $(this).attr('alt'));
|
298
|
+
},
|
299
|
+
function() {
|
300
|
+
$(this).parent().next().slideDown(100);
|
301
|
+
$(this).text("Hide " + $(this).attr('alt'));
|
302
|
+
});
|
303
|
+
}
|
304
|
+
|
305
|
+
$(createStepDefinitionLinks);
|