middleman-targets 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -0
  3. data/.yardopts +9 -0
  4. data/CHANGELOG.md +7 -0
  5. data/README.md +21 -4
  6. data/Rakefile +12 -6
  7. data/documentation_project/Gemfile +1 -1
  8. data/documentation_project/config.rb +7 -7
  9. data/documentation_project/source/helpers-resources.html.md.erb +14 -66
  10. data/documentation_project/source/partials/config.erb +326 -0
  11. data/documentation_project/source/partials/helpers.erb +354 -0
  12. data/documentation_project/source/partials/resources.erb +100 -0
  13. data/documentation_project/source/stylesheets/_middlemac_minimal.scss +283 -1
  14. data/documentation_project/source/target-feature-config.html.md.erb +6 -36
  15. data/features/build_target_option.feature +42 -0
  16. data/features/helpers_and_resources.feature +44 -0
  17. data/features/server_target_option.feature +42 -0
  18. data/features/support/env.rb +20 -0
  19. data/fixtures/middleman_targets_app/config.rb +33 -0
  20. data/fixtures/middleman_targets_app/source/all-root-logo.png +0 -0
  21. data/fixtures/middleman_targets_app/source/all-root.png +0 -0
  22. data/fixtures/middleman_targets_app/source/free-root.png +0 -0
  23. data/fixtures/middleman_targets_app/source/images/all-image.png +0 -0
  24. data/fixtures/middleman_targets_app/source/images/all-logo.png +0 -0
  25. data/fixtures/middleman_targets_app/source/images/free-image.png +0 -0
  26. data/fixtures/middleman_targets_app/source/images/pro-image.png +0 -0
  27. data/fixtures/middleman_targets_app/source/index.html.md.erb +35 -0
  28. data/fixtures/middleman_targets_app/source/pro-root.png +0 -0
  29. data/lib/middleman-targets/extension.rb +182 -54
  30. data/lib/middleman-targets/middleman-cli/build_all.rb +5 -6
  31. data/lib/middleman-targets/version.rb +1 -1
  32. data/middleman-targets.gemspec +9 -2
  33. data/yard/readme.md +6 -0
  34. data/yard/templates/default/fulldoc/html/css/common.css +1 -0
  35. data/yard/templates/default/fulldoc/html/css/full_list.css +57 -0
  36. data/yard/templates/default/fulldoc/html/css/style.css +343 -0
  37. data/yard/templates/default/onefile/html/files.erb +5 -0
  38. data/yard/templates/default/onefile/html/headers.erb +6 -0
  39. data/yard/templates/default/onefile/html/layout.erb +17 -0
  40. data/yard/templates/default/onefile/html/readme.erb +3 -0
  41. data/yard/templates/default/onefile/html/setup.rb +61 -0
  42. data/yard/yard_extensions.rb +73 -0
  43. metadata +83 -3
@@ -0,0 +1,343 @@
1
+ /* Middlemac CSS for Yard*/
2
+
3
+ body {
4
+ padding: 0 20px;
5
+ font-family: -apple-system-font, -webkit-system-font, "HelveticaNeue", "Helvetica Neue", "Helvetica", sans-serif;
6
+ font-size: 11pt;
7
+ }
8
+ body.frames { padding: 0 5px; }
9
+ h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
10
+ h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
11
+ h1.title { margin-bottom: 10px; }
12
+ h1.alphaindex { margin-top: 0; font-size: 22px; }
13
+ h2 {
14
+ padding: 0;
15
+ padding-bottom: 3px;
16
+ border-bottom: 1px #aaa solid;
17
+ font-size: 1.4em;
18
+ font-weight: normal;
19
+ margin: 1.8em 0 0.5em;
20
+ color: rgba(128,128,128,1);
21
+ }
22
+ h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right; }
23
+ .clear { clear: both; }
24
+ .inline { display: inline; }
25
+ .inline p:first-child { display: inline; }
26
+ .docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
27
+ .docstring h1 { font-size: 1.2em; }
28
+ .docstring h2 { font-size: 1.1em; }
29
+ .docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
30
+ .summary_desc .object_link, .docstring .object_link { font-family: monospace; }
31
+ .rdoc-term { padding-right: 25px; font-weight: bold; }
32
+ .rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
33
+
34
+ /* style for <table> */
35
+ #filecontents table, .docstring table { border-collapse: collapse; }
36
+ #filecontents table th, #filecontents table td,
37
+ .docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; }
38
+ #filecontents table tr:nth-child(odd),
39
+ .docstring table tr:nth-child(odd) { background: #eee; }
40
+ #filecontents table tr:nth-child(even),
41
+ .docstring table tr:nth-child(even) { background: #fff; }
42
+ #filecontents table th, .docstring table th { background: #fff; }
43
+
44
+ /* style for <ul> */
45
+ #filecontents li > p, .docstring li > p { margin: 0px; }
46
+ #filecontents ul, .docstring ul { padding-left: 20px; }
47
+ /* style for <dl> */
48
+ #filecontents dl, .docstring dl { border: 1px solid #ccc; }
49
+ #filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
50
+ #filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
51
+ #filecontents dd > p, .docstring dd > p { margin: 0px; }
52
+
53
+ .note {
54
+ color: #222;
55
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
56
+ background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
57
+ display: block;
58
+ }
59
+ .note.todo { background: #ffffc5; border-color: #ececaa; }
60
+ .note.returns_void { background: #efefef; }
61
+ .note.deprecated { background: #ffe5e5; border-color: #e9dada; }
62
+ .note.private { background: #ffffc5; border-color: #ececaa; }
63
+ .note.title { padding: 1px 5px; font-size: 0.9em; font-family: -apple-system-font, -webkit-system-font, "HelveticaNeue", "Helvetica Neue", "Helvetica", sans-serif; display: inline; }
64
+ .summary_signature + .note.title { margin-left: 7px; }
65
+ h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
66
+ .note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
67
+ .note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
68
+ .note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
69
+ .note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
70
+ .note.title.not_defined_here { background: transparent; border: none; font-style: italic; }
71
+ .discussion .note { margin-top: 6px; }
72
+ .discussion .note:first-child { margin-top: 0; }
73
+
74
+ h3.inherited {
75
+ font-style: italic;
76
+ font-family: -apple-system-font, -webkit-system-font, "HelveticaNeue", "Helvetica Neue", "Helvetica", sans-serif; font-weight: normal;
77
+ padding: 0;
78
+ margin: 0;
79
+ margin-top: 12px;
80
+ margin-bottom: 3px;
81
+ font-size: 13px;
82
+ }
83
+ p.inherited {
84
+ padding: 0;
85
+ margin: 0;
86
+ margin-left: 25px;
87
+ }
88
+
89
+ #filecontents dl.box, dl.box {
90
+ border: 0;
91
+ width: 520px;
92
+ font-size: 1em;
93
+ }
94
+ #filecontents dl.box dt, dl.box dt {
95
+ float: left;
96
+ display: block;
97
+ width: 100px;
98
+ margin: 0;
99
+ text-align: right;
100
+ font-weight: bold;
101
+ background: transparent;
102
+ border: 1px solid #aaa;
103
+ border-width: 1px 0px 0px 1px;
104
+ padding: 6px 0;
105
+ padding-right: 10px;
106
+ }
107
+ #filecontents dl.box dd, dl.box dd {
108
+ float: left;
109
+ display: block;
110
+ width: 380px;
111
+ margin: 0;
112
+ padding: 6px 0;
113
+ padding-right: 20px;
114
+ border: 1px solid #aaa;
115
+ border-width: 1px 1px 0 0;
116
+ }
117
+ #filecontents dl.box .last, dl.box .last {
118
+ border-bottom: 1px solid #aaa;
119
+ }
120
+ #filecontents dl.box .r1, dl.box .r1 { background: #eee; }
121
+
122
+ ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
123
+ .index_inline_list { padding-left: 0; font-size: 1.1em; }
124
+ .index_inline_list li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; }
125
+
126
+ dl.constants { margin-left: 40px; }
127
+ dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
128
+ dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
129
+
130
+ .summary_desc { margin-left: 32px; display: block; font-family: sans-serif; }
131
+ .summary_desc tt { font-size: 0.9em; }
132
+ dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
133
+ dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
134
+ dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
135
+ dl.constants .discussion *:first-child { margin-top: 0; }
136
+ dl.constants .discussion *:last-child { margin-bottom: 0; }
137
+
138
+ .method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
139
+ .method_details.first { border: 0; }
140
+ p.signature, h3.signature {
141
+ font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
142
+ padding: 6px 10px; margin-top: 18px;
143
+ background: #f2f3ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
144
+ color: rgba(0,136,204,1);
145
+ }
146
+ p.signature tt,
147
+ h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
148
+ p.signature .overload,
149
+ h3.signature .overload { display: block; }
150
+ p.signature .extras,
151
+ h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
152
+ p.signature .not_defined_here,
153
+ h3.signature .not_defined_here,
154
+ p.signature .aliases,
155
+ h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
156
+ p.signature .aliases .names,
157
+ h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
158
+
159
+ .tags .tag_title { font-size: 1em; margin-bottom: 0; font-weight: bold; }
160
+ .tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
161
+ .tags ul li { margin-bottom: 3px; }
162
+ .tags ul .name { font-family: monospace; font-weight: bold; }
163
+ .tags ul .note { padding: 3px 6px; }
164
+ .tags { margin-bottom: 12px; }
165
+
166
+ .tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; }
167
+ .tags .examples .inline p { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
168
+
169
+ .tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
170
+ .tags .overload .overload_item .signature {
171
+ padding: 2px 8px;
172
+ background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
173
+ }
174
+ .tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
175
+ .tags .overload .docstring { margin-top: 15px; }
176
+
177
+ .defines { display: none; }
178
+
179
+ #method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
180
+
181
+ .showSource { font-size: 0.9em; }
182
+ .showSource a:link, .showSource a:visited { text-decoration: none; color: #666; }
183
+
184
+ #content a:link, #content a:visited { text-decoration: none; color: rgba(0,136,204,1); }
185
+ #content a:hover { background: #ffffa5; }
186
+ div.docstring, p.docstring { margin-right: 6em; }
187
+
188
+ ul.summary {
189
+ list-style: none;
190
+ font-family: monospace;
191
+ font-size: 1em;
192
+ line-height: 1.5em;
193
+ }
194
+ ul.summary a:link, ul.summary a:visited {
195
+ text-decoration: none; font-size: 1.0em;
196
+ }
197
+ ul.summary li { margin-bottom: 5px; }
198
+ .summary .summary_signature {
199
+ padding: 1px 10px;
200
+ background: #f2f3ff; border: 1px solid #dfdfe5;
201
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
202
+ }
203
+ .summary_signature:hover { background: #eeeeff; cursor: pointer; }
204
+ ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
205
+ ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
206
+ #content .summary_signature:hover a:link,
207
+ #content .summary_signature:hover a:visited {
208
+ background: transparent;
209
+ color: #48f;
210
+ }
211
+
212
+ p.inherited a { font-family: monospace; font-size: 0.9em; }
213
+ p.inherited { word-spacing: 5px; font-size: 1.2em; }
214
+
215
+ p.children { font-size: 1.2em; }
216
+ p.children a { font-size: 0.9em; }
217
+ p.children strong { font-size: 0.8em; }
218
+ p.children strong.modules { padding-left: 5px; }
219
+
220
+ ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
221
+ ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
222
+ ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; }
223
+ ul.fullTree li:first-child { padding-top: 0; background: transparent; }
224
+ ul.fullTree li:last-child { padding-bottom: 0; }
225
+ .showAll ul.fullTree { display: block; }
226
+ .showAll .inheritName { display: none; }
227
+
228
+ #search { position: absolute; right: 14px; top: 0px; }
229
+ #search a:link, #search a:visited {
230
+ display: block; float: left; margin-right: 4px;
231
+ padding: 8px 10px; text-decoration: none; color: #05a;
232
+ border: 1px solid #d8d8e5;
233
+ -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
234
+ -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
235
+ background: #eaf0ff;
236
+ -webkit-box-shadow: -1px 1px 3px #ddd;
237
+ }
238
+ #search a:hover { background: #f5faff; color: #06b; }
239
+ #search a.active {
240
+ background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
241
+ -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
242
+ -webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
243
+ }
244
+ #search a.inactive { color: #999; }
245
+ .frames #search { display: none; }
246
+ .inheritanceTree, .toggleDefines { float: right; }
247
+
248
+ #menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; }
249
+ #menu .title, #menu a { font-size: 0.7em; }
250
+ #menu .title a { font-size: 1em; }
251
+ #menu .title { color: #555; }
252
+ #menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
253
+ #menu a:hover { color: #05a; }
254
+ #menu .noframes { display: inline; }
255
+ .frames #menu .noframes { display: inline; float: right; }
256
+
257
+ #footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
258
+ #footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
259
+ #footer a:hover { color: #05a; }
260
+
261
+ #listing ul.alpha { font-size: 1.1em; }
262
+ #listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
263
+ #listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
264
+ #listing ul.alpha ul { margin: 0; padding-left: 15px; }
265
+ #listing ul small { color: #666; font-size: 0.7em; }
266
+
267
+ li.r1 { background: #f0f0f0; }
268
+ li.r2 { background: #fafafa; }
269
+
270
+ #search_frame {
271
+ z-index: 9999;
272
+ background: #fff;
273
+ display: none;
274
+ position: absolute;
275
+ top: 36px;
276
+ right: 18px;
277
+ width: 500px;
278
+ height: 80%;
279
+ overflow-y: scroll;
280
+ border: 1px solid #999;
281
+ border-collapse: collapse;
282
+ -webkit-box-shadow: -7px 5px 25px #aaa;
283
+ -moz-box-shadow: -7px 5px 25px #aaa;
284
+ -moz-border-radius: 2px;
285
+ -webkit-border-radius: 2px;
286
+ }
287
+
288
+ #content ul.summary li.deprecated .summary_signature a:link,
289
+ #content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
290
+
291
+ #toc {
292
+ padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
293
+ max-width: 300px;
294
+ -webkit-box-shadow: -2px 2px 6px #bbb;
295
+ -moz-box-shadow: -2px 2px 6px #bbb;
296
+ z-index: 5000;
297
+ position: relative;
298
+ overflow-x: auto;
299
+ }
300
+ #toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
301
+ #toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
302
+ #toc .title { margin: 0; }
303
+ #toc ol { padding-left: 1.8em; }
304
+ #toc li { font-size: 1.1em; line-height: 1.7em; }
305
+ #toc > ol > li { font-size: 1.1em; font-weight: bold; }
306
+ #toc ol > ol { font-size: 0.9em; }
307
+ #toc ol ol > ol { padding-left: 2.3em; }
308
+ #toc ol + li { margin-top: 0.3em; }
309
+ #toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
310
+ #filecontents h1 + #toc.nofloat { margin-top: 0; }
311
+
312
+ /* syntax highlighting */
313
+ .source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
314
+ #filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
315
+ #filecontents pre.code, .docstring pre.code { display: block; }
316
+ .source_code .lines { padding-right: 12px; color: #555; text-align: right; }
317
+ #filecontents pre.code, .docstring pre.code,
318
+ .tags pre.example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
319
+ pre.code { color: #000; }
320
+ pre.code .info.file { color: #555; }
321
+ pre.code .val { color: #036A07; }
322
+ pre.code .tstring_content,
323
+ pre.code .heredoc_beg, pre.code .heredoc_end,
324
+ pre.code .qwords_beg, pre.code .qwords_end,
325
+ pre.code .tstring, pre.code .dstring { color: #036A07; }
326
+ pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
327
+ pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
328
+ pre.code .dot + pre.code .id,
329
+ pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
330
+ pre.code .comment { color: #0066FF; }
331
+ pre.code .const, pre.code .constant { color: #585CF6; }
332
+ pre.code .label,
333
+ pre.code .symbol { color: #C5060B; }
334
+ pre.code .kw,
335
+ pre.code .rubyid_require,
336
+ pre.code .rubyid_extend,
337
+ pre.code .rubyid_include { color: #0000FF; }
338
+ pre.code .ivar { color: #318495; }
339
+ pre.code .gvar,
340
+ pre.code .rubyid_backref,
341
+ pre.code .rubyid_nth_ref { color: #6D79DE; }
342
+ pre.code .regexp, .dregexp { color: #036A07; }
343
+ pre.code a { border-bottom: 1px dotted #bbf; }
@@ -0,0 +1,5 @@
1
+ <% @files.each do |file| %>
2
+ <% @file = file %>
3
+ <h2><%= file.title %></h2>
4
+ <%= diskfile %>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <style type="text/css">
2
+ <%= @css_data %>
3
+ </style>
4
+ <script type="text/javascript" charset="utf-8">
5
+ <%= @js_data %>
6
+ </script>
@@ -0,0 +1,17 @@
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=<%= charset %>" />
6
+ <title><%= @title %></title>
7
+ <%= erb(:headers) %>
8
+ </head>
9
+ <body>
10
+ <div id="content">
11
+ <h1><%= @title %></h1>
12
+ <%= yieldall %>
13
+ </div>
14
+
15
+ <%= erb(:footer) %>
16
+ </body>
17
+ </html>
@@ -0,0 +1,3 @@
1
+ <div id="readme">
2
+ <%= htmlify(parse_top_comments_from_file) %>
3
+ </div>
@@ -0,0 +1,61 @@
1
+ include T('default/layout/html')
2
+ include YARD::Parser::Ruby::Legacy
3
+
4
+ def init
5
+ override_serializer
6
+ @object = YARD::Registry.root
7
+ @files.shift
8
+ @objects.delete(YARD::Registry.root)
9
+ @objects.unshift(YARD::Registry.root)
10
+ sections :layout, [:readme, :files, :all_objects]
11
+ end
12
+
13
+ def all_objects
14
+ @objects.map {|obj| obj.format(options) }.join("\n")
15
+ end
16
+
17
+ def layout
18
+ fulldoc = Object.new.extend(T('fulldoc'))
19
+ layout = Object.new.extend(T('layout'))
20
+ @css_data = layout.stylesheets.map {|sheet| read_asset(sheet) }.join("\n")
21
+ @js_data = layout.javascripts.map {|script| read_asset(script) }.join("")
22
+
23
+ erb(:layout)
24
+ end
25
+
26
+ def read_asset(file)
27
+ return unless file = T('fulldoc').find_file(file)
28
+ data = File.read(file)
29
+ superfile = self.class.find_nth_file('fulldoc', 2)
30
+ data.gsub!('{{{__super__}}}', superfile ? IO.read(superfile) : "")
31
+ data
32
+ end
33
+
34
+ private
35
+
36
+ def parse_top_comments_from_file
37
+ return unless @readme
38
+ return @readme.contents unless @readme.filename =~ /\.rb$/
39
+ data = ""
40
+ tokens = TokenList.new(@readme.contents)
41
+ tokens.each do |token|
42
+ break unless token.is_a?(RubyToken::TkCOMMENT) || token.is_a?(RubyToken::TkNL)
43
+ data << (token.text[/\A#\s{0,1}(.*)/, 1] || "\n")
44
+ end
45
+ YARD::Docstring.new(data)
46
+ end
47
+
48
+ def override_serializer
49
+ return if @serializer.nil?
50
+ class << @serializer
51
+ def serialize(object, data)
52
+ return unless object == 'index.html'
53
+ super
54
+ end
55
+
56
+ def serialized_path(object)
57
+ return object if object.is_a?(String)
58
+ return 'index.html'
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,73 @@
1
+ # Use our own CSS
2
+ YARD::Templates::Engine.register_template_path File.join(File.dirname(__FILE__), 'templates')
3
+
4
+ # Force Yard to parse the helpers block in a Middleman extension.
5
+ # Because they're not truly instance methods, these are forced into their
6
+ # own 'Helpers' group in output.
7
+ class HelpersHandler < YARD::Handlers::Ruby::Base
8
+ handles method_call(:helpers)
9
+ namespace_only
10
+
11
+ def process
12
+ extra = <<HEREDOC
13
+ @note This is not truly an instance method but a **helper** provided by this class.
14
+ @group Helpers
15
+ HEREDOC
16
+
17
+ statement.last.last.each do |node|
18
+ node.docstring.gsub!(/^[\-=]+\n/, '').gsub!(/[\-=]+$/, '') << extra
19
+ parse_block(node, :owner => self.owner)
20
+ end
21
+ end
22
+
23
+ def hash_parameters(node)
24
+ hash = {}
25
+ return hash unless node
26
+
27
+ param_strings = node.source.split(/,(?=[^\]]*(?:\[|$))/)
28
+ param_strings.each do | param |
29
+
30
+ components = param.split(/\=(?=[^\]]*(?:\[|$))/)
31
+ .each { |c| c.strip! }
32
+ hash[components[0]] = components[1]
33
+ end
34
+
35
+ hash
36
+ end
37
+ end
38
+
39
+
40
+ # Force Yard to parse the resources.each block in a Middleman extension.
41
+ # Because they're not truly instance methods, these are forced into their
42
+ # own 'Resource Extensions' group in output.
43
+ class ResourcesHandler < YARD::Handlers::Ruby::Base
44
+ handles :def
45
+ namespace_only
46
+
47
+ def process
48
+ note = '@note This is not truly an instance method but a **resource method** added to each resource.'
49
+ public = '@visibility public'
50
+ private = '@visibility private'
51
+
52
+ if statement.method_name(true).to_sym == :manipulate_resource_list
53
+
54
+ statement.docstring = "#{statement.docstring}\n#{private}"
55
+ # Block consists of everything in the actual `do` block
56
+ block = statement.last.first.last.last
57
+ block.each do | node |
58
+ if node.type == :defs
59
+ def_docstring = node.docstring.gsub(/^[\-=]+\n/, '').gsub(/[\-=]+$/, '')
60
+ def_docstring << "#{note}\n#{public}"
61
+ def_name = node[2][0]
62
+ object = YARD::CodeObjects::MethodObject.new(namespace, "resource.#{def_name}")
63
+ register(object)
64
+ object.dynamic = true
65
+ object.source = node.source.clone
66
+ object[:docstring] = def_docstring
67
+ object[:group] = 'Resource Extensions'
68
+ end
69
+ end
70
+
71
+ end
72
+ end
73
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-targets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Derry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-08 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -50,6 +50,54 @@ dependencies:
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 4.1.6
53
+ - !ruby/object:Gem::Dependency
54
+ name: middleman
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.1'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 4.1.6
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.1'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 4.1.6
73
+ - !ruby/object:Gem::Dependency
74
+ name: bundler
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '1.6'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '1.6'
87
+ - !ruby/object:Gem::Dependency
88
+ name: rake
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '10.3'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '10.3'
53
101
  description: Provides multiple build targets and tools for Middleman.
54
102
  email:
55
103
  - balthisar@gmail.com
@@ -59,6 +107,7 @@ extensions: []
59
107
  extra_rdoc_files: []
60
108
  files:
61
109
  - ".gitignore"
110
+ - ".yardopts"
62
111
  - CHANGELOG.md
63
112
  - Gemfile
64
113
  - LICENSE.md
@@ -89,18 +138,45 @@ files:
89
138
  - documentation_project/source/license.html.md.erb
90
139
  - documentation_project/source/only-free.html.md.erb
91
140
  - documentation_project/source/only-pro.html.md.erb
141
+ - documentation_project/source/partials/config.erb
142
+ - documentation_project/source/partials/helpers.erb
143
+ - documentation_project/source/partials/resources.erb
92
144
  - documentation_project/source/simple-demo.html.md.erb
93
145
  - documentation_project/source/stylesheets/_github.scss
94
146
  - documentation_project/source/stylesheets/_middlemac_minimal.scss
95
147
  - documentation_project/source/stylesheets/_normalize.scss
96
148
  - documentation_project/source/stylesheets/style.css.scss
97
149
  - documentation_project/source/target-feature-config.html.md.erb
150
+ - features/build_target_option.feature
151
+ - features/helpers_and_resources.feature
152
+ - features/server_target_option.feature
153
+ - features/support/env.rb
154
+ - fixtures/middleman_targets_app/config.rb
155
+ - fixtures/middleman_targets_app/source/all-root-logo.png
156
+ - fixtures/middleman_targets_app/source/all-root.png
157
+ - fixtures/middleman_targets_app/source/free-root.png
158
+ - fixtures/middleman_targets_app/source/images/all-image.png
159
+ - fixtures/middleman_targets_app/source/images/all-logo.png
160
+ - fixtures/middleman_targets_app/source/images/free-image.png
161
+ - fixtures/middleman_targets_app/source/images/pro-image.png
162
+ - fixtures/middleman_targets_app/source/index.html.md.erb
163
+ - fixtures/middleman_targets_app/source/pro-root.png
98
164
  - lib/middleman-targets.rb
99
165
  - lib/middleman-targets/commands.rb
100
166
  - lib/middleman-targets/extension.rb
101
167
  - lib/middleman-targets/middleman-cli/build_all.rb
102
168
  - lib/middleman-targets/version.rb
103
169
  - middleman-targets.gemspec
170
+ - yard/readme.md
171
+ - yard/templates/default/fulldoc/html/css/common.css
172
+ - yard/templates/default/fulldoc/html/css/full_list.css
173
+ - yard/templates/default/fulldoc/html/css/style.css
174
+ - yard/templates/default/onefile/html/files.erb
175
+ - yard/templates/default/onefile/html/headers.erb
176
+ - yard/templates/default/onefile/html/layout.erb
177
+ - yard/templates/default/onefile/html/readme.erb
178
+ - yard/templates/default/onefile/html/setup.rb
179
+ - yard/yard_extensions.rb
104
180
  homepage: https://github.com/middlemac/middleman-targets
105
181
  licenses:
106
182
  - MIT
@@ -125,5 +201,9 @@ rubygems_version: 2.4.8
125
201
  signing_key:
126
202
  specification_version: 4
127
203
  summary: Provides multiple build targets and tools for Middleman.
128
- test_files: []
204
+ test_files:
205
+ - features/build_target_option.feature
206
+ - features/helpers_and_resources.feature
207
+ - features/server_target_option.feature
208
+ - features/support/env.rb
129
209
  has_rdoc: