middleman-targets 1.0.3 → 1.0.4

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 (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: