yard-slipstream 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +57 -0
- data/VERSION +1 -0
- data/features/step_definitions/yard-slipstream_steps.rb +0 -0
- data/features/support/env.rb +4 -0
- data/features/yard-slipstream.feature +9 -0
- data/lib/yard-slipstream.rb +18 -0
- data/lib/yard-slipstream/handler.rb +32 -0
- data/lib/yard-slipstream/legacy.rb +31 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/yard-slipstream_spec.rb +7 -0
- data/templates/default/fulldoc/html/css/custom.css +83 -0
- data/templates/default/fulldoc/html/css/style.css +302 -0
- data/templates/default/fulldoc/html/css/yardoc-custom.css +69 -0
- data/templates/default/fulldoc/html/css/yardoc.css +267 -0
- data/templates/default/fulldoc/html/css/yardoc.html +1265 -0
- data/templates/default/fulldoc/html/js/autocomplete.js +12 -0
- data/templates/default/fulldoc/html/js/live.js +32 -0
- data/templates/default/fulldoc/html/setup.rb +130 -0
- data/templates/default/layout/html/headers.erb +15 -0
- data/templates/default/layout/html/index.erb +47 -0
- data/templates/default/layout/html/search.erb +27 -0
- data/templates/default/module/html/attribute_summary.erb +8 -0
- data/templates/default/module/html/box_info.erb +34 -0
- data/templates/default/module/html/local_methods.erb +10 -0
- data/templates/default/module/setup.rb +102 -0
- metadata +130 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Autocomplete plugin 1.1
|
3
|
+
*
|
4
|
+
* Copyright (c) 2009 Jörn Zaefferer
|
5
|
+
*
|
6
|
+
* Dual licensed under the MIT and GPL licenses:
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
* http://www.gnu.org/licenses/gpl.html
|
9
|
+
*
|
10
|
+
* Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
|
11
|
+
*/
|
12
|
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(3($){$.2e.1u({19:3(b,d){5 c=W b=="1B";d=$.1u({},$.M.1T,{Y:c?b:P,y:c?P:b,1J:c?$.M.1T.1J:10,X:d&&!d.1D?10:48},d);d.1y=d.1y||3(a){6 a};d.1v=d.1v||d.1R;6 A.I(3(){1M $.M(A,d)})},L:3(a){6 A.11("L",a)},1k:3(a){6 A.14("1k",[a])},2b:3(){6 A.14("2b")},28:3(a){6 A.14("28",[a])},24:3(){6 A.14("24")}});$.M=3(o,r){5 t={2Y:38,2S:40,2N:46,2I:9,2E:13,2B:27,2x:3I,2v:33,2p:34,2n:8};5 u=$(o).3r("19","3o").Q(r.2Q);5 p;5 m="";5 n=$.M.3c(r);5 s=0;5 k;5 h={1F:C};5 l=$.M.32(r,o,1Z,h);5 j;$.1Y.2X&&$(o.2U).11("45.19",3(){4(j){j=C;6 C}});u.11(($.1Y.2X?"43":"42")+".19",3(a){s=1;k=a.2M;3V(a.2M){O t.2Y:a.1d();4(l.N()){l.30()}w{12(0,D)}R;O t.2S:a.1d();4(l.N()){l.2D()}w{12(0,D)}R;O t.2v:a.1d();4(l.N()){l.2C()}w{12(0,D)}R;O t.2p:a.1d();4(l.N()){l.2A()}w{12(0,D)}R;O r.17&&$.1c(r.S)==","&&t.2x:O t.2I:O t.2E:4(1Z()){a.1d();j=D;6 C}R;O t.2B:l.Z();R;3J:1P(p);p=1O(12,r.1J);R}}).2t(3(){s++}).3E(3(){s=0;4(!h.1F){2r()}}).2q(3(){4(s++>1&&!l.N()){12(0,D)}}).11("1k",3(){5 c=(1r.7>1)?1r[1]:P;3 1N(q,a){5 b;4(a&&a.7){16(5 i=0;i<a.7;i++){4(a[i].L.J()==q.J()){b=a[i];R}}}4(W c=="3")c(b);w u.14("L",b&&[b.y,b.F])}$.I(15(u.K()),3(i,a){21(a,1N,1N)})}).11("2b",3(){n.1o()}).11("28",3(){$.1u(r,1r[1]);4("y"2h 1r[1])n.1e()}).11("24",3(){l.1p();u.1p();$(o.2U).1p(".19")});3 1Z(){5 e=l.2g();4(!e)6 C;5 v=e.L;m=v;4(r.17){5 b=15(u.K());4(b.7>1){5 f=r.S.7;5 c=$(o).18().1I;5 d,1H=0;$.I(b,3(i,a){1H+=a.7;4(c<=1H){d=i;6 C}1H+=f});b[d]=v;v=b.3f(r.S)}v+=r.S}u.K(v);1l();u.14("L",[e.y,e.F]);6 D}3 12(b,c){4(k==t.2N){l.Z();6}5 a=u.K();4(!c&&a==m)6;m=a;a=1m(a);4(a.7>=r.29){u.Q(r.26);4(!r.1s)a=a.J();21(a,3a,1l)}w{1q();l.Z()}};3 15(b){4(!b)6[""];4(!r.17)6[$.1c(b)];6 $.4h(b.23(r.S),3(a){6 $.1c(b).7?$.1c(a):P})}3 1m(a){4(!r.17)6 a;5 c=15(a);4(c.7==1)6 c[0];5 b=$(o).18().1I;4(b==a.7){c=15(a)}w{c=15(a.22(a.37(b),""))}6 c[c.7-1]}3 1G(q,a){4(r.1G&&(1m(u.K()).J()==q.J())&&k!=t.2n){u.K(u.K()+a.37(1m(m).7));$(o).18(m.7,m.7+a.7)}};3 2r(){1P(p);p=1O(1l,4g)};3 1l(){5 c=l.N();l.Z();1P(p);1q();4(r.36){u.1k(3(a){4(!a){4(r.17){5 b=15(u.K()).1n(0,-1);u.K(b.3f(r.S)+(b.7?r.S:""))}w{u.K("");u.14("L",P)}}})}};3 3a(q,a){4(a&&a.7&&s){1q();l.35(a,q);1G(q,a[0].F);l.20()}w{1l()}};3 21(f,d,g){4(!r.1s)f=f.J();5 e=n.31(f);4(e&&e.7){d(f,e)}w 4((W r.Y=="1B")&&(r.Y.7>0)){5 c={4f:+1M 4e()};$.I(r.2Z,3(a,b){c[a]=W b=="3"?b():b});$.4d({4c:"4b",4a:"19"+o.49,2V:r.2V,Y:r.Y,y:$.1u({q:1m(f),47:r.X},c),44:3(a){5 b=r.1A&&r.1A(a)||1A(a);n.1i(f,b);d(f,b)}})}w{l.2T();g(f)}};3 1A(c){5 d=[];5 b=c.23("\\n");16(5 i=0;i<b.7;i++){5 a=$.1c(b[i]);4(a){a=a.23("|");d[d.7]={y:a,F:a[0],L:r.1z&&r.1z(a,a[0])||a[0]}}}6 d};3 1q(){u.1h(r.26)}};$.M.1T={2Q:"41",2P:"3Z",26:"3Y",29:1,1J:3W,1s:C,1f:D,1w:C,1g:10,X:3U,36:C,2Z:{},1X:D,1R:3(a){6 a[0]},1v:P,1G:C,E:0,17:C,S:", ",1y:3(b,a){6 b.22(1M 3T("(?![^&;]+;)(?!<[^<>]*)("+a.22(/([\\^\\$\\(\\)\\[\\]\\{\\}\\*\\.\\+\\?\\|\\\\])/2K,"\\\\$1")+")(?![^<>]*>)(?![^&;]+;)","2K"),"<2J>$1</2J>")},1D:D,1E:3S};$.M.3c=3(g){5 h={};5 j=0;3 1f(s,a){4(!g.1s)s=s.J();5 i=s.2H(a);4(g.1w=="3R"){i=s.J().1k("\\\\b"+a.J())}4(i==-1)6 C;6 i==0||g.1w};3 1i(q,a){4(j>g.1g){1o()}4(!h[q]){j++}h[q]=a}3 1e(){4(!g.y)6 C;5 f={},2G=0;4(!g.Y)g.1g=1;f[""]=[];16(5 i=0,2F=g.y.7;i<2F;i++){5 c=g.y[i];c=(W c=="1B")?[c]:c;5 d=g.1v(c,i+1,g.y.7);4(d===C)1V;5 e=d.3Q(0).J();4(!f[e])f[e]=[];5 b={F:d,y:c,L:g.1z&&g.1z(c)||d};f[e].1U(b);4(2G++<g.X){f[""].1U(b)}};$.I(f,3(i,a){g.1g++;1i(i,a)})}1O(1e,25);3 1o(){h={};j=0}6{1o:1o,1i:1i,1e:1e,31:3(q){4(!g.1g||!j)6 P;4(!g.Y&&g.1w){5 a=[];16(5 k 2h h){4(k.7>0){5 c=h[k];$.I(c,3(i,x){4(1f(x.F,q)){a.1U(x)}})}}6 a}w 4(h[q]){6 h[q]}w 4(g.1f){16(5 i=q.7-1;i>=g.29;i--){5 c=h[q.3O(0,i)];4(c){5 a=[];$.I(c,3(i,x){4(1f(x.F,q)){a[a.7]=x}});6 a}}}6 P}}};$.M.32=3(e,g,f,k){5 h={H:"3N"};5 j,z=-1,y,1t="",1S=D,G,B;3 2y(){4(!1S)6;G=$("<3M/>").Z().Q(e.2P).T("3L","3K").1Q(1K.2w);B=$("<3H/>").1Q(G).3G(3(a){4(U(a).2u&&U(a).2u.3F()==\'2s\'){z=$("1L",B).1h(h.H).3D(U(a));$(U(a)).Q(h.H)}}).2q(3(a){$(U(a)).Q(h.H);f();g.2t();6 C}).3C(3(){k.1F=D}).3B(3(){k.1F=C});4(e.E>0)G.T("E",e.E);1S=C}3 U(a){5 b=a.U;3A(b&&b.3z!="2s")b=b.3y;4(!b)6[];6 b}3 V(b){j.1n(z,z+1).1h(h.H);2o(b);5 a=j.1n(z,z+1).Q(h.H);4(e.1D){5 c=0;j.1n(0,z).I(3(){c+=A.1a});4((c+a[0].1a-B.1b())>B[0].3x){B.1b(c+a[0].1a-B.3w())}w 4(c<B.1b()){B.1b(c)}}};3 2o(a){z+=a;4(z<0){z=j.1j()-1}w 4(z>=j.1j()){z=0}}3 2m(a){6 e.X&&e.X<a?e.X:a}3 2l(){B.2z();5 b=2m(y.7);16(5 i=0;i<b;i++){4(!y[i])1V;5 a=e.1R(y[i].y,i+1,b,y[i].F,1t);4(a===C)1V;5 c=$("<1L/>").3v(e.1y(a,1t)).Q(i%2==0?"3u":"3P").1Q(B)[0];$.y(c,"2k",y[i])}j=B.3t("1L");4(e.1X){j.1n(0,1).Q(h.H);z=0}4($.2e.2W)B.2W()}6{35:3(d,q){2y();y=d;1t=q;2l()},2D:3(){V(1)},30:3(){V(-1)},2C:3(){4(z!=0&&z-8<0){V(-z)}w{V(-8)}},2A:3(){4(z!=j.1j()-1&&z+8>j.1j()){V(j.1j()-1-z)}w{V(8)}},Z:3(){G&&G.Z();j&&j.1h(h.H);z=-1},N:3(){6 G&&G.3s(":N")},3q:3(){6 A.N()&&(j.2j("."+h.H)[0]||e.1X&&j[0])},20:3(){5 a=$(g).3p();G.T({E:W e.E=="1B"||e.E>0?e.E:$(g).E(),2i:a.2i+g.1a,1W:a.1W}).20();4(e.1D){B.1b(0);B.T({2L:e.1E,3n:\'3X\'});4($.1Y.3m&&W 1K.2w.3l.2L==="1x"){5 c=0;j.I(3(){c+=A.1a});5 b=c>e.1E;B.T(\'3k\',b?e.1E:c);4(!b){j.E(B.E()-2R(j.T("2O-1W"))-2R(j.T("2O-3j")))}}}},2g:3(){5 a=j&&j.2j("."+h.H).1h(h.H);6 a&&a.7&&$.y(a[0],"2k")},2T:3(){B&&B.2z()},1p:3(){G&&G.3i()}}};$.2e.18=3(b,f){4(b!==1x){6 A.I(3(){4(A.2d){5 a=A.2d();4(f===1x||b==f){a.4n("2c",b);a.3h()}w{a.4m(D);a.4l("2c",b);a.4k("2c",f);a.3h()}}w 4(A.3g){A.3g(b,f)}w 4(A.1C){A.1C=b;A.3e=f}})}5 c=A[0];4(c.2d){5 e=1K.18.4j(),3d=c.F,2a="<->",2f=e.3b.7;e.3b=2a;5 d=c.F.2H(2a);c.F=3d;A.18(d,d+2f);6{1I:d,39:d+2f}}w 4(c.1C!==1x){6{1I:c.1C,39:c.3e}}}})(4i);',62,272,'|||function|if|var|return|length|||||||||||||||||||||||||else||data|active|this|list|false|true|width|value|element|ACTIVE|each|toLowerCase|val|result|Autocompleter|visible|case|null|addClass|break|multipleSeparator|css|target|moveSelect|typeof|max|url|hide||bind|onChange||trigger|trimWords|for|multiple|selection|autocomplete|offsetHeight|scrollTop|trim|preventDefault|populate|matchSubset|cacheLength|removeClass|add|size|search|hideResultsNow|lastWord|slice|flush|unbind|stopLoading|arguments|matchCase|term|extend|formatMatch|matchContains|undefined|highlight|formatResult|parse|string|selectionStart|scroll|scrollHeight|mouseDownOnSelect|autoFill|progress|start|delay|document|li|new|findValueCallback|setTimeout|clearTimeout|appendTo|formatItem|needsInit|defaults|push|continue|left|selectFirst|browser|selectCurrent|show|request|replace|split|unautocomplete||loadingClass||setOptions|minChars|teststring|flushCache|character|createTextRange|fn|textLength|selected|in|top|filter|ac_data|fillList|limitNumberOfItems|BACKSPACE|movePosition|PAGEDOWN|click|hideResults|LI|focus|nodeName|PAGEUP|body|COMMA|init|empty|pageDown|ESC|pageUp|next|RETURN|ol|nullData|indexOf|TAB|strong|gi|maxHeight|keyCode|DEL|padding|resultsClass|inputClass|parseInt|DOWN|emptyList|form|dataType|bgiframe|opera|UP|extraParams|prev|load|Select|||display|mustMatch|substring||end|receiveData|text|Cache|orig|selectionEnd|join|setSelectionRange|select|remove|right|height|style|msie|overflow|off|offset|current|attr|is|find|ac_even|html|innerHeight|clientHeight|parentNode|tagName|while|mouseup|mousedown|index|blur|toUpperCase|mouseover|ul|188|default|absolute|position|div|ac_over|substr|ac_odd|charAt|word|180|RegExp|100|switch|400|auto|ac_loading|ac_results||ac_input|keydown|keypress|success|submit||limit|150|name|port|abort|mode|ajax|Date|timestamp|200|map|jQuery|createRange|moveEnd|moveStart|collapse|move'.split('|'),0,{}))
|
@@ -0,0 +1,32 @@
|
|
1
|
+
function searchFrameLinks() {
|
2
|
+
$('#method_list_link').unbind("click").click(function() {
|
3
|
+
toggleSearchFrame(this, '/list/' + project + '/methods');
|
4
|
+
});
|
5
|
+
|
6
|
+
$('#class_list_link').unbind("click").click(function() {
|
7
|
+
toggleSearchFrame(this, '/list/' + project + '/class');
|
8
|
+
});
|
9
|
+
|
10
|
+
$('#file_list_link').unbind("click").click(function() {
|
11
|
+
toggleSearchFrame(this, '/list/' + project + '/files');
|
12
|
+
});
|
13
|
+
}
|
14
|
+
|
15
|
+
function methodPermalinks() {
|
16
|
+
if ($($('#content h1')[0]).text().match(/^Method:/)) return;
|
17
|
+
|
18
|
+
$('#method_details .signature, #constructor_details .signature, ' +
|
19
|
+
'.method_details .signature, #method_missing_details .signature').each(function() {
|
20
|
+
var id = this.id;
|
21
|
+
var match = id.match(/^(.+?)-(class|instance)_method$/);
|
22
|
+
if (match) {
|
23
|
+
var name = match[1];
|
24
|
+
var scope = match[2] == "class" ? "." : ":";
|
25
|
+
var url = window.location.pathname + scope + escape(name);
|
26
|
+
$(this).prepend('<a class="permalink" href="' + url + '">permalink</a>');
|
27
|
+
}
|
28
|
+
});
|
29
|
+
}
|
30
|
+
|
31
|
+
$(searchFrameLinks);
|
32
|
+
$(methodPermalinks);
|
@@ -0,0 +1,130 @@
|
|
1
|
+
include Helpers::ModuleHelper
|
2
|
+
|
3
|
+
def init
|
4
|
+
options[:objects] = objects = run_verifier(options[:objects])
|
5
|
+
options[:files] = ([options[:readme]] + options[:files]).compact.map {|t| t.to_s }
|
6
|
+
options[:readme] = options[:files].first
|
7
|
+
options[:title] ||= "Documentation by YARD #{YARD::VERSION}"
|
8
|
+
|
9
|
+
generate_assets
|
10
|
+
serialize('_index.html')
|
11
|
+
options[:files].each_with_index do |file, i|
|
12
|
+
serialize_file(file, i == 0 ? options[:title] : nil)
|
13
|
+
end
|
14
|
+
|
15
|
+
options.delete(:objects)
|
16
|
+
options.delete(:files)
|
17
|
+
|
18
|
+
objects.each do |object|
|
19
|
+
begin
|
20
|
+
serialize(object)
|
21
|
+
rescue => e
|
22
|
+
path = options[:serializer].serialized_path(object)
|
23
|
+
log.error "Exception occurred while generating '#{path}'"
|
24
|
+
log.backtrace(e)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def serialize(object)
|
30
|
+
options[:object] = object
|
31
|
+
serialize_index(options) if object == '_index.html' && options[:files].empty?
|
32
|
+
Templates::Engine.with_serializer(object, options[:serializer]) do
|
33
|
+
T('layout').run(options)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def serialize_index(options)
|
38
|
+
Templates::Engine.with_serializer('index.html', options[:serializer]) do
|
39
|
+
T('layout').run(options)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def serialize_file(file, title = nil)
|
44
|
+
options[:object] = Registry.root
|
45
|
+
options[:file] = file
|
46
|
+
options[:page_title] = title
|
47
|
+
options[:serialized_path] = 'file.' + File.basename(file.gsub(/\.[^.]+$/, '')) + '.html'
|
48
|
+
|
49
|
+
serialize_index(options) if file == options[:readme]
|
50
|
+
Templates::Engine.with_serializer(options[:serialized_path], options[:serializer]) do
|
51
|
+
T('layout').run(options)
|
52
|
+
end
|
53
|
+
options.delete(:file)
|
54
|
+
options.delete(:serialized_path)
|
55
|
+
options.delete(:page_title)
|
56
|
+
end
|
57
|
+
|
58
|
+
def asset(path, content)
|
59
|
+
options[:serializer].serialize(path, content) if options[:serializer]
|
60
|
+
end
|
61
|
+
|
62
|
+
def generate_assets
|
63
|
+
%w( js/jquery.js js/app.js js/full_list.js js/live.js js/autocomplete.js
|
64
|
+
css/style.css css/custom.css css/full_list.css css/common.css ).each do |file|
|
65
|
+
asset(file, file(file, true))
|
66
|
+
end
|
67
|
+
|
68
|
+
@object = Registry.root
|
69
|
+
generate_method_list
|
70
|
+
generate_class_list
|
71
|
+
generate_file_list
|
72
|
+
generate_frameset
|
73
|
+
end
|
74
|
+
|
75
|
+
def generate_method_list
|
76
|
+
@items = prune_method_listing(Registry.all(:method), false)
|
77
|
+
@items = @items.reject {|m| m.name.to_s =~ /=$/ && m.is_attribute? }
|
78
|
+
@items = @items.sort_by {|m| m.name.to_s }
|
79
|
+
@list_title = "Method List"
|
80
|
+
@list_type = "methods"
|
81
|
+
asset('method_list.html', erb(:full_list))
|
82
|
+
end
|
83
|
+
|
84
|
+
def generate_class_list
|
85
|
+
@list_title = "Class List"
|
86
|
+
@list_type = "class"
|
87
|
+
asset('class_list.html', erb(:full_list))
|
88
|
+
end
|
89
|
+
|
90
|
+
def generate_file_list
|
91
|
+
@file_list = true
|
92
|
+
@items = options[:files]
|
93
|
+
@list_title = "File List"
|
94
|
+
@list_type = "files"
|
95
|
+
asset('file_list.html', erb(:full_list))
|
96
|
+
@file_list = nil
|
97
|
+
end
|
98
|
+
|
99
|
+
def generate_frameset
|
100
|
+
asset('frames.html', erb(:frames))
|
101
|
+
end
|
102
|
+
|
103
|
+
def class_list(root = Registry.root)
|
104
|
+
out = ""
|
105
|
+
children = run_verifier(root.children)
|
106
|
+
if root == Registry.root
|
107
|
+
children += Registry.all(:class, :module).select {|o| o.namespace.is_a?(CodeObjects::Proxy) }
|
108
|
+
children = run_verifier(children)
|
109
|
+
end
|
110
|
+
children.sort_by {|child| child.path }.map do |child|
|
111
|
+
if child.is_a?(CodeObjects::NamespaceObject)
|
112
|
+
name = child.namespace.is_a?(CodeObjects::Proxy) ? child.path : child.name
|
113
|
+
has_children = child.children.any? {|o| o.is_a?(CodeObjects::NamespaceObject) }
|
114
|
+
out << "<li>"
|
115
|
+
out << "<a class='toggle'></a> " if has_children
|
116
|
+
out << linkify(child, name)
|
117
|
+
out << " < #{child.superclass.name}" if child.is_a?(CodeObjects::ClassObject) && child.superclass
|
118
|
+
out << "<small class='search_info'>"
|
119
|
+
if !child.namespace || child.namespace.root?
|
120
|
+
out << "Top Level Namespace"
|
121
|
+
else
|
122
|
+
out << child.namespace.path
|
123
|
+
end
|
124
|
+
out << "</small>"
|
125
|
+
out << "</li>"
|
126
|
+
out << "<ul>#{class_list(child)}</ul>" if has_children
|
127
|
+
end
|
128
|
+
end
|
129
|
+
out
|
130
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<meta name="Content-Type" content="text/html; charset=<%= charset %>" />
|
2
|
+
<title><%= @page_title %></title>
|
3
|
+
<link rel="stylesheet" href="<%= url_for("css/style.css") %>" type="text/css" media="screen" charset="utf-8" />
|
4
|
+
<link rel="stylesheet" href="<%= url_for("css/custom.css") %>" type="text/css" media="screen" charset="utf-8" />
|
5
|
+
<% if @extra_css %>
|
6
|
+
<link rel="stylesheet" href="<%= url_for @extra_css %>" type="text/css" media="screen" charset="utf-8" />
|
7
|
+
<% end %>
|
8
|
+
<script type="text/javascript" charset="utf-8">
|
9
|
+
relpath = '<%= url_for('') %>';
|
10
|
+
if (relpath != '') relpath += '/';
|
11
|
+
</script>
|
12
|
+
<script type="text/javascript" charset="utf-8" src="<%= url_for("js/jquery.js") %>"></script>
|
13
|
+
<script type="text/javascript" charset="utf-8" src="<%= url_for("js/autocomplete.js") %>"></script>
|
14
|
+
<script type="text/javascript" charset="utf-8" src="<%= url_for("js/app.js") %>"></script>
|
15
|
+
<script type="text/javascript" charset="utf-8" src="<%= url_for("js/live.js") %>"></script>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<div id="listing">
|
2
|
+
<h1 class="noborder title"><%= options[:title] %></h1>
|
3
|
+
<h1 class="alphaindex">Alphabetic Index</h1>
|
4
|
+
|
5
|
+
<% if @files && @files.size > 0 %>
|
6
|
+
<h2>File Listing</h2>
|
7
|
+
<ul id="files_ribbon">
|
8
|
+
<% n = 1 %>
|
9
|
+
<% @files.each_with_index do |file, i| %>
|
10
|
+
<li class="r<%= n %>"><%= link_file(file, File.basename(file).gsub(/\.[^.]+$/, '')) %></li>
|
11
|
+
<% n = n == 2 ? 1 : 2 %>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
<% end %>
|
15
|
+
<div class="clear"></div>
|
16
|
+
|
17
|
+
<h2>Namespace Listing A-Z</h2>
|
18
|
+
|
19
|
+
<ul class="toplevel"><li><%= linkify(Registry.root) %></li></ul>
|
20
|
+
|
21
|
+
<% i = 0 %>
|
22
|
+
<table>
|
23
|
+
<tr>
|
24
|
+
<td valign='top' width="33%">
|
25
|
+
<% @objects_by_letter.sort_by {|l,o| l.to_s }.each do |letter, objects| %>
|
26
|
+
<% if (i += 1) % 8 == 0 %>
|
27
|
+
</td><td valign='top' width="33%">
|
28
|
+
<% i = 0 %>
|
29
|
+
<% end %>
|
30
|
+
<ul id="alpha_<%= letter %>" class="alpha">
|
31
|
+
<li class="letter"><%= letter %></li>
|
32
|
+
<ul>
|
33
|
+
<% objects.each do |obj| %>
|
34
|
+
<li>
|
35
|
+
<%= linkify obj, obj.name %>
|
36
|
+
<% if !obj.namespace.root? %>
|
37
|
+
<small>(<%= obj.namespace.path %>)</small>
|
38
|
+
<% end %>
|
39
|
+
</li>
|
40
|
+
<% end %>
|
41
|
+
</ul>
|
42
|
+
</ul>
|
43
|
+
<% end %>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
</table>
|
47
|
+
</div>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div id="search2">
|
2
|
+
<% @yardoc_org = "http://yardoc.org" %>
|
3
|
+
<% @project = "yard" %>
|
4
|
+
<form class="search2" method="get" action="<%= @yardoc_org %>/search/<%= @project %>">
|
5
|
+
Search: <input name="q" type="search" placeholder="Search" id="search_box2" size="30" value="" />
|
6
|
+
</form>
|
7
|
+
<script type="text/javascript" charset="utf-8">
|
8
|
+
$('#search_box2').autocomplete('<%= @yardoc_org %>/search/<%= @project %>', {
|
9
|
+
width: 340,
|
10
|
+
formatItem: function(item) {
|
11
|
+
var values = item[0].split(",");
|
12
|
+
return values[0] + (values[1] == '' ? "" : " <small>(" + values[1] + ")</small>");
|
13
|
+
}
|
14
|
+
}).result(function(event, item) {
|
15
|
+
var values = item[0].split(",")
|
16
|
+
$('#search_box2').val(values[1]);
|
17
|
+
location.href = values[3];
|
18
|
+
return false;
|
19
|
+
});
|
20
|
+
</script>
|
21
|
+
<style>
|
22
|
+
.frames form.search2 { position: absolute; right: 14px; top: -6px; padding-top: 10px; }
|
23
|
+
.frames #menu .noframes { float: none; }
|
24
|
+
.frames #menu { float: left; }
|
25
|
+
.frames #content h1 { margin-top: 15px; }
|
26
|
+
</style>
|
27
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<% n = 1 %>
|
2
|
+
<div id="info_box">
|
3
|
+
<dl class="box">
|
4
|
+
<!-- <% if CodeObjects::ClassObject === object && object.superclass %>
|
5
|
+
<dt class="r<%=n%>">Inherits:</dt>
|
6
|
+
<dd class="r<%=n%>">
|
7
|
+
<span class="inheritName"><%= linkify object.superclass %></span>
|
8
|
+
<% if object.superclass.name != :BasicObject %>
|
9
|
+
<ul class="fullTree">
|
10
|
+
<li><%= linkify P(:Object) %></li>
|
11
|
+
<% object.inheritance_tree.reverse.each_with_index do |obj, i| %>
|
12
|
+
<li class="next"><%= obj == object ? obj.path : linkify(obj) %></li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
<a href="#" class="inheritanceTree">show all</a>
|
16
|
+
<% end %>
|
17
|
+
</dd>
|
18
|
+
<% n = 2 %>
|
19
|
+
<% end %> -->
|
20
|
+
<% [[:class, "Extends"], [:instance, "Includes"]].each do |scope, name| %>
|
21
|
+
<% if (mix = object.mixins(scope)).size > 0 %>
|
22
|
+
<dt class="r<%=n%>"><%= name %>:</dt>
|
23
|
+
<dd class="r<%=n%>"><%= mix.sort_by {|o| o.path }.map {|o| linkify(o) }.join(", ") %></dd>
|
24
|
+
<% n = n == 2 ? 1 : 2 %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<% unless object.root? %>
|
28
|
+
<dt class="r<%=n%> last">Defined in:</dt>
|
29
|
+
<dd class="r<%=n%> last"><%= erb(:defines) %></dd>
|
30
|
+
<% end %>
|
31
|
+
</dl>
|
32
|
+
</div>
|
33
|
+
<div class="clear"></div>
|
34
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% scopes(localmethods) do |meths, scope| %>
|
2
|
+
<h3 class="inherited"><%= scope.to_s.capitalize %> Methods</h3>
|
3
|
+
<ul id="methods_ribbon">
|
4
|
+
<% n = 1 %>
|
5
|
+
<% meths.each do |meth| %>
|
6
|
+
<li class="r<%= n %>"><%= linkify(meth,meth.name) %></li>
|
7
|
+
<% n = n == 2 ? 1 : 2 %>
|
8
|
+
<% end %>
|
9
|
+
</ul>
|
10
|
+
<% end %>
|
@@ -0,0 +1,102 @@
|
|
1
|
+
include Helpers::ModuleHelper
|
2
|
+
|
3
|
+
def init
|
4
|
+
sections \
|
5
|
+
:box_info,
|
6
|
+
:header,
|
7
|
+
:children,
|
8
|
+
:local_methods,
|
9
|
+
:inherited_methods,
|
10
|
+
# :method_summary, [:item_summary],
|
11
|
+
:pre_docstring, T('docstring'),
|
12
|
+
:constant_summary, :inherited_constants,
|
13
|
+
:attribute_summary, [:item_summary],
|
14
|
+
:methodmissing, [T('method_details')],
|
15
|
+
# :attribute_details, [T('method_details')],
|
16
|
+
:method_details_list, [T('method_details')]
|
17
|
+
end
|
18
|
+
|
19
|
+
def localmethods(include_specials = true)
|
20
|
+
method_listing(include_specials)
|
21
|
+
end
|
22
|
+
|
23
|
+
def pre_docstring
|
24
|
+
return if object.docstring.blank?
|
25
|
+
erb(:pre_docstring)
|
26
|
+
end
|
27
|
+
|
28
|
+
def children
|
29
|
+
@inner = [[:modules, []], [:classes, []]]
|
30
|
+
object.children.each do |child|
|
31
|
+
@inner[0][1] << child if child.type == :module
|
32
|
+
@inner[1][1] << child if child.type == :class
|
33
|
+
end
|
34
|
+
@inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] }
|
35
|
+
return if (@inner[0][1].size + @inner[1][1].size) == 0
|
36
|
+
erb(:children)
|
37
|
+
end
|
38
|
+
|
39
|
+
def methodmissing
|
40
|
+
mms = object.meths(:inherited => true, :included => true)
|
41
|
+
return unless @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance }
|
42
|
+
erb(:methodmissing)
|
43
|
+
end
|
44
|
+
|
45
|
+
def method_listing(include_specials = true)
|
46
|
+
return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
|
47
|
+
return @meths if @meths
|
48
|
+
@meths = object.meths(:inherited => false, :included => false)
|
49
|
+
@meths = sort_listing(prune_method_listing(@meths))
|
50
|
+
@meths
|
51
|
+
end
|
52
|
+
|
53
|
+
def special_method?(meth)
|
54
|
+
return true if meth.name(true) == '#method_missing'
|
55
|
+
return true if meth.constructor?
|
56
|
+
false
|
57
|
+
end
|
58
|
+
|
59
|
+
def attr_listing
|
60
|
+
return @attrs if @attrs
|
61
|
+
@attrs = []
|
62
|
+
[:class, :instance].each do |scope|
|
63
|
+
object.attributes[scope].each do |name, rw|
|
64
|
+
@attrs << (rw[:read] || rw[:write])
|
65
|
+
end
|
66
|
+
end
|
67
|
+
@attrs = sort_listing(prune_method_listing(@attrs, false))
|
68
|
+
end
|
69
|
+
|
70
|
+
def constant_listing
|
71
|
+
return @constants if @constants
|
72
|
+
@constants = object.constants(:included => false, :inherited => false)
|
73
|
+
@constants += object.cvars
|
74
|
+
@constants = run_verifier(@constants)
|
75
|
+
@constants
|
76
|
+
end
|
77
|
+
|
78
|
+
def sort_listing(list)
|
79
|
+
list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
|
80
|
+
end
|
81
|
+
|
82
|
+
def docstring_summary(obj)
|
83
|
+
docstring = ""
|
84
|
+
if obj.tags(:overload).size == 1 && obj.docstring.empty?
|
85
|
+
docstring = obj.tag(:overload).docstring
|
86
|
+
else
|
87
|
+
docstring = obj.docstring
|
88
|
+
end
|
89
|
+
|
90
|
+
if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
|
91
|
+
docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase }.strip)
|
92
|
+
end
|
93
|
+
|
94
|
+
docstring.summary
|
95
|
+
end
|
96
|
+
|
97
|
+
def scopes(list)
|
98
|
+
[:class, :instance].each do |scope|
|
99
|
+
items = list.select {|m| m.scope == scope }
|
100
|
+
yield(items, scope) unless items.empty?
|
101
|
+
end
|
102
|
+
end
|
metadata
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yard-slipstream
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 0.0.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Dreamcat4
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-04-04 00:00:00 +01:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 2
|
30
|
+
- 9
|
31
|
+
version: 1.2.9
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: yard
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: cucumber
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 0
|
55
|
+
version: "0"
|
56
|
+
type: :development
|
57
|
+
version_requirements: *id003
|
58
|
+
description: yard-slipstream is a yard plugin for Yard-0.5.3 and higher. Slipstream gives users an option for faster page navigation in their yard documents. We just want to optimize the most frequent lookups and remove any duplicate info. Other than that its just plain straight Yard, with all the same "look and feel" as the default template.
|
59
|
+
email: dreamcat4@gmail.com
|
60
|
+
executables: []
|
61
|
+
|
62
|
+
extensions: []
|
63
|
+
|
64
|
+
extra_rdoc_files:
|
65
|
+
- LICENSE
|
66
|
+
- README.rdoc
|
67
|
+
files:
|
68
|
+
- .document
|
69
|
+
- .gitignore
|
70
|
+
- LICENSE
|
71
|
+
- README.rdoc
|
72
|
+
- Rakefile
|
73
|
+
- VERSION
|
74
|
+
- features/step_definitions/yard-slipstream_steps.rb
|
75
|
+
- features/support/env.rb
|
76
|
+
- features/yard-slipstream.feature
|
77
|
+
- lib/yard-slipstream.rb
|
78
|
+
- lib/yard-slipstream/handler.rb
|
79
|
+
- lib/yard-slipstream/legacy.rb
|
80
|
+
- spec/spec.opts
|
81
|
+
- spec/spec_helper.rb
|
82
|
+
- spec/yard-slipstream_spec.rb
|
83
|
+
- templates/default/fulldoc/html/css/custom.css
|
84
|
+
- templates/default/fulldoc/html/css/style.css
|
85
|
+
- templates/default/fulldoc/html/css/yardoc-custom.css
|
86
|
+
- templates/default/fulldoc/html/css/yardoc.css
|
87
|
+
- templates/default/fulldoc/html/css/yardoc.html
|
88
|
+
- templates/default/fulldoc/html/js/autocomplete.js
|
89
|
+
- templates/default/fulldoc/html/js/live.js
|
90
|
+
- templates/default/fulldoc/html/setup.rb
|
91
|
+
- templates/default/layout/html/headers.erb
|
92
|
+
- templates/default/layout/html/index.erb
|
93
|
+
- templates/default/layout/html/search.erb
|
94
|
+
- templates/default/module/html/attribute_summary.erb
|
95
|
+
- templates/default/module/html/box_info.erb
|
96
|
+
- templates/default/module/html/local_methods.erb
|
97
|
+
- templates/default/module/setup.rb
|
98
|
+
has_rdoc: true
|
99
|
+
homepage: http://github.com/dreamcat4/yard-slipstream
|
100
|
+
licenses: []
|
101
|
+
|
102
|
+
post_install_message:
|
103
|
+
rdoc_options:
|
104
|
+
- --charset=UTF-8
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.3.6
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: Streamlined Navigation for the default yard template
|
128
|
+
test_files:
|
129
|
+
- spec/spec_helper.rb
|
130
|
+
- spec/yard-slipstream_spec.rb
|