wortsammler 0.0.2

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.
@@ -0,0 +1,408 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ <script type="text/javascript">
20
+ // <![CDATA[
21
+
22
+ function addClass(element_id, classname) {
23
+ document.getElementById(element_id).className += (" " + classname);
24
+ }
25
+
26
+ function removeClass(element_id, classname) {
27
+ var elem = document.getElementById(element_id);
28
+ var classlist = elem.className.replace(classname,'');
29
+ elem.className = classlist;
30
+ }
31
+
32
+ function moveProgressBar(percentDone) {
33
+ document.getElementById("rspec-header").style.width = percentDone +"%";
34
+ }
35
+
36
+ function makeRed(element_id) {
37
+ removeClass(element_id, 'passed');
38
+ removeClass(element_id, 'not_implemented');
39
+ addClass(element_id,'failed');
40
+ }
41
+
42
+ function makeYellow(element_id) {
43
+ var elem = document.getElementById(element_id);
44
+ if (elem.className.indexOf("failed") == -1) { // class doesn't includes failed
45
+ if (elem.className.indexOf("not_implemented") == -1) { // class doesn't include not_implemented
46
+ removeClass(element_id, 'passed');
47
+ addClass(element_id,'not_implemented');
48
+ }
49
+ }
50
+ }
51
+
52
+ function apply_filters() {
53
+ var passed_filter = document.getElementById('passed_checkbox').checked;
54
+ var failed_filter = document.getElementById('failed_checkbox').checked;
55
+ var pending_filter = document.getElementById('pending_checkbox').checked;
56
+
57
+ assign_display_style("example passed", passed_filter);
58
+ assign_display_style("example failed", failed_filter);
59
+ assign_display_style("example not_implemented", pending_filter);
60
+
61
+ assign_display_style_for_group("example_group passed", passed_filter);
62
+ assign_display_style_for_group("example_group not_implemented", pending_filter, pending_filter || passed_filter);
63
+ assign_display_style_for_group("example_group failed", failed_filter, failed_filter || pending_filter || passed_filter);
64
+ }
65
+
66
+ function get_display_style(display_flag) {
67
+ var style_mode = 'none';
68
+ if (display_flag == true) {
69
+ style_mode = 'block';
70
+ }
71
+ return style_mode;
72
+ }
73
+
74
+ function assign_display_style(classname, display_flag) {
75
+ var style_mode = get_display_style(display_flag);
76
+ var elems = document.getElementsByClassName(classname)
77
+ for (var i=0; i<elems.length;i++) {
78
+ elems[i].style.display = style_mode;
79
+ }
80
+ }
81
+
82
+ function assign_display_style_for_group(classname, display_flag, subgroup_flag) {
83
+ var display_style_mode = get_display_style(display_flag);
84
+ var subgroup_style_mode = get_display_style(subgroup_flag);
85
+ var elems = document.getElementsByClassName(classname)
86
+ for (var i=0; i<elems.length;i++) {
87
+ var style_mode = display_style_mode;
88
+ if ((display_flag != subgroup_flag) && (elems[i].getElementsByTagName('dt')[0].innerHTML.indexOf(", ") != -1)) {
89
+ elems[i].style.display = subgroup_style_mode;
90
+ } else {
91
+ elems[i].style.display = display_style_mode;
92
+ }
93
+ }
94
+ }
95
+
96
+ // ]]>
97
+ </script>
98
+ <style type="text/css">
99
+ #rspec-header {
100
+ background: #65C400; color: #fff; height: 4em;
101
+ }
102
+
103
+ .rspec-report h1 {
104
+ margin: 0px 10px 0px 10px;
105
+ padding: 10px;
106
+ font-family: "Lucida Grande", Helvetica, sans-serif;
107
+ font-size: 1.8em;
108
+ position: absolute;
109
+ }
110
+
111
+ #label {
112
+ float:left;
113
+ }
114
+
115
+ #display-filters {
116
+ float:left;
117
+ padding: 28px 0 0 40%;
118
+ font-family: "Lucida Grande", Helvetica, sans-serif;
119
+ }
120
+
121
+ #summary {
122
+ float:right;
123
+ padding: 5px 10px;
124
+ font-family: "Lucida Grande", Helvetica, sans-serif;
125
+ text-align: right;
126
+ }
127
+
128
+ #summary p {
129
+ margin: 0 0 0 2px;
130
+ }
131
+
132
+ #summary #totals {
133
+ font-size: 1.2em;
134
+ }
135
+
136
+ .example_group {
137
+ margin: 0 10px 5px;
138
+ background: #fff;
139
+ }
140
+
141
+ dl {
142
+ margin: 0; padding: 0 0 5px;
143
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
144
+ }
145
+
146
+ dt {
147
+ padding: 3px;
148
+ background: #65C400;
149
+ color: #fff;
150
+ font-weight: bold;
151
+ }
152
+
153
+ dd {
154
+ margin: 5px 0 5px 5px;
155
+ padding: 3px 3px 3px 18px;
156
+ }
157
+
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
164
+
165
+ dd.example.passed {
166
+ border-left: 5px solid #65C400;
167
+ border-bottom: 1px solid #65C400;
168
+ background: #DBFFB4; color: #3D7700;
169
+ }
170
+
171
+ dd.example.not_implemented {
172
+ border-left: 5px solid #FAF834;
173
+ border-bottom: 1px solid #FAF834;
174
+ background: #FCFB98; color: #131313;
175
+ }
176
+
177
+ dd.example.pending_fixed {
178
+ border-left: 5px solid #0000C2;
179
+ border-bottom: 1px solid #0000C2;
180
+ color: #0000C2; background: #D3FBFF;
181
+ }
182
+
183
+ dd.example.failed {
184
+ border-left: 5px solid #C20000;
185
+ border-bottom: 1px solid #C20000;
186
+ color: #C20000; background: #FFFBD3;
187
+ }
188
+
189
+
190
+ dt.not_implemented {
191
+ color: #000000; background: #FAF834;
192
+ }
193
+
194
+ dt.pending_fixed {
195
+ color: #FFFFFF; background: #C40D0D;
196
+ }
197
+
198
+ dt.failed {
199
+ color: #FFFFFF; background: #C40D0D;
200
+ }
201
+
202
+
203
+ #rspec-header.not_implemented {
204
+ color: #000000; background: #FAF834;
205
+ }
206
+
207
+ #rspec-header.pending_fixed {
208
+ color: #FFFFFF; background: #C40D0D;
209
+ }
210
+
211
+ #rspec-header.failed {
212
+ color: #FFFFFF; background: #C40D0D;
213
+ }
214
+
215
+
216
+ .backtrace {
217
+ color: #000;
218
+ font-size: 12px;
219
+ }
220
+
221
+ a {
222
+ color: #BE5C00;
223
+ }
224
+
225
+ /* Ruby code, style similar to vibrant ink */
226
+ .ruby {
227
+ font-size: 12px;
228
+ font-family: monospace;
229
+ color: white;
230
+ background-color: black;
231
+ padding: 0.1em 0 0.2em 0;
232
+ }
233
+
234
+ .ruby .keyword { color: #FF6600; }
235
+ .ruby .constant { color: #339999; }
236
+ .ruby .attribute { color: white; }
237
+ .ruby .global { color: white; }
238
+ .ruby .module { color: white; }
239
+ .ruby .class { color: white; }
240
+ .ruby .string { color: #66FF00; }
241
+ .ruby .ident { color: white; }
242
+ .ruby .method { color: #FFCC00; }
243
+ .ruby .number { color: white; }
244
+ .ruby .char { color: white; }
245
+ .ruby .comment { color: #9933CC; }
246
+ .ruby .symbol { color: white; }
247
+ .ruby .regex { color: #44B4CC; }
248
+ .ruby .punct { color: white; }
249
+ .ruby .escape { color: white; }
250
+ .ruby .interp { color: white; }
251
+ .ruby .expr { color: white; }
252
+
253
+ .ruby .offending { background-color: gray; }
254
+ .ruby .linenum {
255
+ width: 75px;
256
+ padding: 0.1em 1em 0.2em 0;
257
+ color: #000000;
258
+ background-color: #FFFBD3;
259
+ }
260
+
261
+ </style>
262
+ </head>
263
+ <body>
264
+ <div class="rspec-report">
265
+
266
+ <div id="rspec-header">
267
+ <div id="label">
268
+ <h1>RSpec Code Examples</h1>
269
+ </div>
270
+
271
+ <div id="display-filters">
272
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked onchange="apply_filters()" value="1"> <label for="passed_checkbox">Passed</label>
273
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked onchange="apply_filters()" value="2"> <label for="failed_checkbox">Failed</label>
274
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked onchange="apply_filters()" value="3"> <label for="pending_checkbox">Pending</label>
275
+ </div>
276
+
277
+ <div id="summary">
278
+ <p id="totals">&nbsp;</p>
279
+ <p id="duration">&nbsp;</p>
280
+ </div>
281
+ </div>
282
+
283
+
284
+ <div class="results">
285
+ <div id="div_group_1" class="example_group passed">
286
+ <dl style="margin-left: 0px;">
287
+ <dt id="example_group_1" class="passed">TraceableSet</dt>
288
+ <script type="text/javascript">moveProgressBar('2.2');</script>
289
+ <dd class="example passed"><span class="passed_spec_name">should return a blank instance</span><span class='duration'>0.00019s</span></dd>
290
+ <script type="text/javascript">moveProgressBar('4.5');</script>
291
+ <dd class="example passed"><span class="passed_spec_name">allows to add Traceables</span><span class='duration'>0.00017s</span></dd>
292
+ <script type="text/javascript">moveProgressBar('6.8');</script>
293
+ <dd class="example passed"><span class="passed_spec_name">delivers the first of the duplicates</span><span class='duration'>0.00019s</span></dd>
294
+ <script type="text/javascript">moveProgressBar('9.0');</script>
295
+ <dd class="example passed"><span class="passed_spec_name">advertises duplicates</span><span class='duration'>0.00035s</span></dd>
296
+ <script type="text/javascript">moveProgressBar('11.3');</script>
297
+ <dd class="example passed"><span class="passed_spec_name">adertises undefined traceables</span><span class='duration'>0.00019s</span></dd>
298
+ <script type="text/javascript">moveProgressBar('13.6');</script>
299
+ <dd class="example passed"><span class="passed_spec_name">advertises all traceables</span><span class='duration'>0.00015s</span></dd>
300
+ <script type="text/javascript">moveProgressBar('15.9');</script>
301
+ <dd class="example passed"><span class="passed_spec_name">advertises a hash of supporting traces</span><span class='duration'>0.00013s</span></dd>
302
+ <script type="text/javascript">moveProgressBar('18.1');</script>
303
+ <dd class="example passed"><span class="passed_spec_name">advertises traceable ids of a particular category</span><span class='duration'>0.00018s</span></dd>
304
+ <script type="text/javascript">moveProgressBar('20.4');</script>
305
+ <dd class="example passed"><span class="passed_spec_name">advertises ttraceables of a particular category</span><span class='duration'>0.00015s</span></dd>
306
+ <script type="text/javascript">moveProgressBar('22.7');</script>
307
+ <dd class="example passed"><span class="passed_spec_name">merges traceables</span><span class='duration'>0.00031s</span></dd>
308
+ <script type="text/javascript">moveProgressBar('25.0');</script>
309
+ <dd class="example passed"><span class="passed_spec_name">exposes deleted Traceables</span><span class='duration'>0.00019s</span></dd>
310
+ <script type="text/javascript">moveProgressBar('27.2');</script>
311
+ <dd class="example passed"><span class="passed_spec_name">exposes added Traceables</span><span class='duration'>0.00019s</span></dd>
312
+ <script type="text/javascript">moveProgressBar('29.5');</script>
313
+ <dd class="example passed"><span class="passed_spec_name">exposes deleted Traceables of category</span><span class='duration'>0.00018s</span></dd>
314
+ <script type="text/javascript">moveProgressBar('31.8');</script>
315
+ <dd class="example passed"><span class="passed_spec_name">exposes added Traceables of category</span><span class='duration'>0.00019s</span></dd>
316
+ <script type="text/javascript">moveProgressBar('34.0');</script>
317
+ <dd class="example passed"><span class="passed_spec_name">exploses changed traceids as array of [Traceid, levensthein, diff_as_html]</span><span class='duration'>0.00839s</span></dd>
318
+ <script type="text/javascript">moveProgressBar('36.3');</script>
319
+ <dd class="example passed"><span class="passed_spec_name">exposes unchanged Traceables</span><span class='duration'>0.00472s</span></dd>
320
+ <script type="text/javascript">moveProgressBar('38.6');</script>
321
+ <dd class="example passed"><span class="passed_spec_name">can be marshalled to a file</span><span class='duration'>0.00199s</span></dd>
322
+ <script type="text/javascript">moveProgressBar('40.9');</script>
323
+ <dd class="example passed"><span class="passed_spec_name">can be dumped to a graphml file</span><span class='duration'>0.00329s</span></dd>
324
+ </dl>
325
+ </div>
326
+ <div id="div_group_2" class="example_group passed">
327
+ <dl style="margin-left: 0px;">
328
+ <dt id="example_group_2" class="passed">Traceable</dt>
329
+ <script type="text/javascript">moveProgressBar('43.1');</script>
330
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;id&quot;</span><span class='duration'>0.00017s</span></dd>
331
+ <script type="text/javascript">moveProgressBar('45.4');</script>
332
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;origin&quot;</span><span class='duration'>0.00015s</span></dd>
333
+ <script type="text/javascript">moveProgressBar('47.7');</script>
334
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;alternative_id&quot;</span><span class='duration'>0.00016s</span></dd>
335
+ <script type="text/javascript">moveProgressBar('50.0');</script>
336
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;header_plain&quot;</span><span class='duration'>0.00015s</span></dd>
337
+ <script type="text/javascript">moveProgressBar('52.2');</script>
338
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;\\textt{header_origin}&quot;</span><span class='duration'>0.00015s</span></dd>
339
+ <script type="text/javascript">moveProgressBar('54.5');</script>
340
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;body_plain&quot;</span><span class='duration'>0.00015s</span></dd>
341
+ <script type="text/javascript">moveProgressBar('56.8');</script>
342
+ <dd class="example passed"><span class="passed_spec_name">should == [&quot;contributes_to&quot;]</span><span class='duration'>0.00022s</span></dd>
343
+ <script type="text/javascript">moveProgressBar('59.0');</script>
344
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;trace_orig&quot;</span><span class='duration'>0.00016s</span></dd>
345
+ <script type="text/javascript">moveProgressBar('61.3');</script>
346
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;origin&quot;</span><span class='duration'>0.00016s</span></dd>
347
+ <script type="text/javascript">moveProgressBar('63.6');</script>
348
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;category&quot;</span><span class='duration'>0.00016s</span></dd>
349
+ <script type="text/javascript">moveProgressBar('65.9');</script>
350
+ <dd class="example passed"><span class="passed_spec_name">should == &quot;info&quot;</span><span class='duration'>0.00015s</span></dd>
351
+ </dl>
352
+ </div>
353
+ <div id="div_group_3" class="example_group passed">
354
+ <dl style="margin-left: 0px;">
355
+ <dt id="example_group_3" class="passed">Wortsammler generic issues</dt>
356
+ <script type="text/javascript">moveProgressBar('68.1');</script>
357
+ <dd class="example passed"><span class="passed_spec_name">provides a help</span><span class='duration'>0.38110s</span></dd>
358
+ <script type="text/javascript">moveProgressBar('70.4');</script>
359
+ <dd class="example passed"><span class="passed_spec_name">can create a new project folder</span><span class='duration'>0.38274s</span></dd>
360
+ <script type="text/javascript">moveProgressBar('72.7');</script>
361
+ <dd class="example passed"><span class="passed_spec_name">does not initialize into an existing project folder</span><span class='duration'>0.39078s</span></dd>
362
+ </dl>
363
+ </div>
364
+ <div id="div_group_4" class="example_group passed">
365
+ <dl style="margin-left: 0px;">
366
+ <dt id="example_group_4" class="passed">Wortsammler options validator</dt>
367
+ <script type="text/javascript">moveProgressBar('75.0');</script>
368
+ <dd class="example passed"><span class="passed_spec_name">rejects no processing</span><span class='duration'>0.37890s</span></dd>
369
+ <script type="text/javascript">moveProgressBar('77.2');</script>
370
+ <dd class="example passed"><span class="passed_spec_name">rejeccts inputs without outputs</span><span class='duration'>0.38187s</span></dd>
371
+ </dl>
372
+ </div>
373
+ <div id="div_group_5" class="example_group passed">
374
+ <dl style="margin-left: 0px;">
375
+ <dt id="example_group_5" class="passed">Wortsammler beautifier features</dt>
376
+ <script type="text/javascript">moveProgressBar('79.5');</script>
377
+ <dd class="example passed"><span class="passed_spec_name">beautifies all markdown files in a folder</span><span class='duration'>0.54484s</span></dd>
378
+ <script type="text/javascript">moveProgressBar('81.8');</script>
379
+ <dd class="example passed"><span class="passed_spec_name">beautifies a single file</span><span class='duration'>0.41165s</span></dd>
380
+ <script type="text/javascript">moveProgressBar('84.0');</script>
381
+ <dd class="example passed"><span class="passed_spec_name">beautifies input files in a manifest</span><span class='duration'>0.46322s</span></dd>
382
+ <script type="text/javascript">moveProgressBar('86.3');</script>
383
+ <dd class="example passed"><span class="passed_spec_name">claims missing input</span><span class='duration'>0.38306s</span></dd>
384
+ <script type="text/javascript">moveProgressBar('88.6');</script>
385
+ <dd class="example passed"><span class="passed_spec_name">claims undefined document path</span><span class='duration'>0.38263s</span></dd>
386
+ </dl>
387
+ </div>
388
+ <div id="div_group_6" class="example_group passed">
389
+ <dl style="margin-left: 0px;">
390
+ <dt id="example_group_6" class="passed">Wortsammler conversion</dt>
391
+ <script type="text/javascript">moveProgressBar('90.9');</script>
392
+ <dd class="example passed"><span class="passed_spec_name">converts a single file to output format</span><span class='duration'>4.11586s</span></dd>
393
+ <script type="text/javascript">moveProgressBar('93.1');</script>
394
+ <dd class="example passed"><span class="passed_spec_name">converts all files within a folder output format</span><span class='duration'>12.61365s</span></dd>
395
+ <script type="text/javascript">moveProgressBar('95.4');</script>
396
+ <dd class="example passed"><span class="passed_spec_name">processes a manifest</span><span class='duration'>5.25318s</span></dd>
397
+ <script type="text/javascript">moveProgressBar('97.7');</script>
398
+ <dd class="example passed"><span class="passed_spec_name">investigates the existence of a manifest</span><span class='duration'>0.38824s</span></dd>
399
+ <script type="text/javascript">moveProgressBar('100.0');</script>
400
+ <dd class="example passed"><span class="passed_spec_name">extracts the traceables according to a manifest</span><span class='duration'>0.51676s</span></dd>
401
+ </dl>
402
+ </div>
403
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>27.02668 seconds</strong>";</script>
404
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "44 examples, 0 failures";</script>
405
+ </div>
406
+ </div>
407
+ </body>
408
+ </html>
@@ -0,0 +1,59 @@
1
+
2
+ TraceableSet
3
+ should return a blank instance
4
+ allows to add Traceables
5
+ delivers the first of the duplicates
6
+ advertises duplicates
7
+ adertises undefined traceables
8
+ advertises all traceables
9
+ advertises a hash of supporting traces
10
+ advertises traceable ids of a particular category
11
+ advertises ttraceables of a particular category
12
+ merges traceables
13
+ exposes deleted Traceables
14
+ exposes added Traceables
15
+ exposes deleted Traceables of category
16
+ exposes added Traceables of category
17
+ exploses changed traceids as array of [Traceid, levensthein, diff_as_html]
18
+ exposes unchanged Traceables
19
+ can be marshalled to a file
20
+ can be dumped to a graphml file
21
+
22
+ Traceable
23
+ should == "id"
24
+ should == "origin"
25
+ should == "alternative_id"
26
+ should == "header_plain"
27
+ should == "\\textt{header_origin}"
28
+ should == "body_plain"
29
+ should == ["contributes_to"]
30
+ should == "trace_orig"
31
+ should == "origin"
32
+ should == "category"
33
+ should == "info"
34
+
35
+ Wortsammler generic issues
36
+ provides a help
37
+ can create a new project folder
38
+ does not initialize into an existing project folder
39
+
40
+ Wortsammler options validator
41
+ rejects no processing
42
+ rejeccts inputs without outputs
43
+
44
+ Wortsammler beautifier features
45
+ beautifies all markdown files in a folder
46
+ beautifies a single file
47
+ beautifies input files in a manifest
48
+ claims missing input
49
+ claims undefined document path
50
+
51
+ Wortsammler conversion
52
+ converts a single file to output format
53
+ converts all files within a folder output format
54
+ processes a manifest
55
+ investigates the existence of a manifest
56
+ extracts the traceables according to a manifest
57
+
58
+ Finished in 27.03 seconds
59
+ 44 examples, 0 failures
@@ -0,0 +1,53 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'wortsammler/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "wortsammler"
8
+ spec.version = Wortsammler::VERSION
9
+ spec.authors = ["Bernhard Weichel"]
10
+ spec.email = ["github.com@nospam.weichel21.de"]
11
+ spec.description = <<END_DOC
12
+ wortsammler is an environment to manage documentation.
13
+ Basically it comprises of
14
+
15
+ * a directory structure to organize the document sources
16
+ * a manifest file to control the publication process
17
+ * a tool to produce the doucments
18
+
19
+ Particular features of wortsammler are
20
+ * various output formats
21
+ * support of requirement management
22
+ * generate documents for different audiences based on
23
+ single sources
24
+ * text snippets (markdown and xlsx)
25
+
26
+ wortsammler is based on ruby, pandoc, latex
27
+ END_DOC
28
+
29
+ spec.required_ruby_version = '>= 1.9.3'
30
+ spec.add_runtime_dependency 'logger'
31
+ spec.add_runtime_dependency 'nokogiri'
32
+ spec.add_runtime_dependency "rubyXL"
33
+ spec.add_runtime_dependency 'diffy', "~> 2.1.3"
34
+ spec.add_runtime_dependency 'zip'
35
+ spec.add_runtime_dependency 'treetop'
36
+
37
+ spec.summary = %q{an environment to manage documentation}
38
+ spec.homepage = ""
39
+ spec.license = "MIT"
40
+
41
+ spec.files = `git ls-files`.split($/)
42
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
43
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
44
+ spec.require_paths = ["lib"]
45
+
46
+ spec.add_development_dependency "bundler", "~> 1.3"
47
+ spec.add_development_dependency "rake"
48
+ spec.add_development_dependency "rspec"
49
+ spec.add_development_dependency 'debugger'
50
+ spec.add_development_dependency 'yard'
51
+ spec.add_development_dependency 'redcarpet'
52
+
53
+ end