rocco_rails 0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Gemfile +7 -0
- data/LICENSE +22 -0
- data/README.md +71 -0
- data/Rakefile +7 -0
- data/docs/index.html +12 -0
- data/docs/lib/rocco_rails.html +129 -0
- data/docs/lib/rocco_rails/railtie.html +53 -0
- data/docs/lib/rocco_rails/version.html +31 -0
- data/docs/lib/tasks/rails_tasks.html +136 -0
- data/docs/lib/tasks/rocco_tasks.html +84 -0
- data/docs/menu.html +70 -0
- data/docs/resources/jquery-1.7.1.min.js +4 -0
- data/docs/resources/jquery.simpletreeview.min.js +1 -0
- data/docs/resources/rocco.css +155 -0
- data/lib/config/rocco.yml +5 -0
- data/lib/config/rocco.yml.sample +3 -0
- data/lib/rocco_rails.rb +72 -0
- data/lib/rocco_rails/railtie.rb +13 -0
- data/lib/rocco_rails/version.rb +3 -0
- data/lib/tasks/rails_tasks.rake +78 -0
- data/lib/tasks/rocco_tasks.rake +37 -0
- data/lib/templates/index.erb +12 -0
- data/lib/templates/layout.mustache +43 -0
- data/lib/templates/menu.erb +70 -0
- data/lib/templates/menu_resources/jquery-1.7.1.min.js +4 -0
- data/lib/templates/menu_resources/jquery.simpletreeview.min.js +1 -0
- data/lib/templates/resources/rocco.css +155 -0
- data/rocco_rails.gemspec +22 -0
- metadata +118 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 Mawi Marin
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# RoccoRails
|
2
|
+
|
3
|
+
Rocco customizable addon to generate docco style documentation in rails projects
|
4
|
+
|
5
|
+
## What is rocco/docco?
|
6
|
+
|
7
|
+
Rocco is a quick-and-dirty, literate-programming-style documentation
|
8
|
+
generator for Ruby. See the Rocco generated docs for more information:
|
9
|
+
|
10
|
+
<http://rtomayko.github.com/rocco/>
|
11
|
+
|
12
|
+
|
13
|
+
Rocco is a port of, and borrows heavily from, Docco -- the original
|
14
|
+
quick-and-dirty, hundred-line-long, literate-programming-style
|
15
|
+
documentation generator in CoffeeScript:
|
16
|
+
|
17
|
+
<http://jashkenas.github.com/docco/>
|
18
|
+
|
19
|
+
## Installation
|
20
|
+
|
21
|
+
Add this lines to your application's Gemfile:
|
22
|
+
|
23
|
+
gem 'rocco', :git => "git://github.com/rtomayko/rocco.git"
|
24
|
+
gem 'rocco_rails', :git => "git://github.com/mawi/rocco_rails.git"
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
### Easy way
|
29
|
+
|
30
|
+
To generate application's documentation into 'docs' directory just run:
|
31
|
+
|
32
|
+
rake rails:rocco
|
33
|
+
|
34
|
+
### Custom way
|
35
|
+
|
36
|
+
rocco_rails uses a rocco.yml config file inside gem directory. It can be customized by copying it to your application's config directory or running rake rails:rocco_setup.
|
37
|
+
|
38
|
+
Default rocco.yml:
|
39
|
+
|
40
|
+
output: docs
|
41
|
+
template: lib/templates/layout.mustache
|
42
|
+
resources_path: lib/templates/resources
|
43
|
+
excluded_items: config/, spec/, db/
|
44
|
+
|
45
|
+
* output => define target directory
|
46
|
+
* template => moustache template used by rocco to generate html
|
47
|
+
* resources_path => if you have your own template and want to use your .css or .js just put it into this directory. It will be copied and linked in generated docs
|
48
|
+
* excluded_items => A comma separated list of directories not to look into
|
49
|
+
|
50
|
+
Your custom rocco.yml doesn't have to have all options. It will merge whit gem's config. Sample rocco.yml would be good if you don't have a custom template.
|
51
|
+
|
52
|
+
You can test your rocco.yml running
|
53
|
+
|
54
|
+
rake rails:test_rocco_config
|
55
|
+
|
56
|
+
And then, again
|
57
|
+
|
58
|
+
rake rails:rocco
|
59
|
+
|
60
|
+
|
61
|
+
## Known issues
|
62
|
+
|
63
|
+
Rocco gem that is actualy in rubygems doesn't have the option to select a stylesheet to use. If your generated docs seems to have no style, try to use rocco's github code (see Instalation)
|
64
|
+
|
65
|
+
## Contributing
|
66
|
+
|
67
|
+
1. Fork it
|
68
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
69
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
70
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
71
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/docs/index.html
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/html4/frameset.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title> Rocco Documentation </title>
|
6
|
+
</head>
|
7
|
+
<frameset cols="20%, 80%">
|
8
|
+
<frame src="menu.html">
|
9
|
+
<frame name="rocco" src="">
|
10
|
+
</frameset>
|
11
|
+
|
12
|
+
</HTML>
|
@@ -0,0 +1,129 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>rocco_rails.rb</title>
|
6
|
+
<link rel='stylesheet' href='/Users/mmarin/Work/rocco_rails/docs/resources/rocco.css'>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div id='container'>
|
12
|
+
<div id="background"></div>
|
13
|
+
<table cellspacing=0 cellpadding=0>
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
|
17
|
+
<th class='docs'>
|
18
|
+
<h1>rocco_rails.rb</h1>
|
19
|
+
<p class=hint> lib/rocco_rails.rb </p>
|
20
|
+
</th>
|
21
|
+
|
22
|
+
<th class=code>
|
23
|
+
</th>
|
24
|
+
</tr>
|
25
|
+
</thead>
|
26
|
+
<tbody>
|
27
|
+
|
28
|
+
</tr>
|
29
|
+
<tr id='section-1'>
|
30
|
+
<td class=docs>
|
31
|
+
<div class="pilwrap">
|
32
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
</td>
|
36
|
+
<td class=code>
|
37
|
+
<div class='highlight'><pre><span class="nb">require</span> <span class="no">File</span><span class="o">.</span><span class="n">expand_path</span><span class="p">(</span><span class="s1">'../rocco_rails/lib/rocco_rails/version.rb'</span><span class="p">)</span>
|
38
|
+
<span class="nb">require</span> <span class="s2">"rocco"</span>
|
39
|
+
|
40
|
+
<span class="k">module</span> <span class="nn">RoccoRails</span>
|
41
|
+
|
42
|
+
<span class="k">class</span> <span class="o"><<</span> <span class="nb">self</span>
|
43
|
+
<span class="nb">require</span> <span class="s1">'rocco_rails/railtie'</span> <span class="k">if</span> <span class="n">defined?</span><span class="p">(</span><span class="no">Rails</span><span class="p">)</span>
|
44
|
+
<span class="kp">include</span> <span class="no">Rake</span><span class="o">::</span><span class="no">DSL</span> <span class="k">if</span> <span class="n">defined?</span><span class="p">(</span><span class="no">Rake</span><span class="o">::</span><span class="no">DSL</span><span class="p">)</span></pre></div>
|
45
|
+
</td>
|
46
|
+
</tr>
|
47
|
+
<tr id='section-2'>
|
48
|
+
<td class=docs>
|
49
|
+
<div class="pilwrap">
|
50
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
51
|
+
</div>
|
52
|
+
<p>Rocco only use a var named stylesheet supposed to be the path for the stylesheet. This is a little hack to use it to
|
53
|
+
inject a complete directory. Default is /resources</p>
|
54
|
+
</td>
|
55
|
+
<td class=code>
|
56
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">generate_resources</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">rocco_out</span><span class="p">)</span>
|
57
|
+
<span class="n">files</span> <span class="o">=</span> <span class="no">Dir</span><span class="o">.</span><span class="n">entries</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="o">-</span> <span class="o">[</span><span class="s2">"."</span><span class="p">,</span> <span class="s2">".."</span><span class="o">]</span>
|
58
|
+
<span class="n">out</span> <span class="o">=</span> <span class="s2">""</span>
|
59
|
+
<span class="n">files</span><span class="o">.</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">file</span><span class="o">|</span>
|
60
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="s2">"<link rel='stylesheet' href='</span><span class="si">#{</span><span class="o">[</span><span class="n">rocco_out</span><span class="p">,</span> <span class="n">file</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span><span class="si">}</span><span class="s2">'></span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file</span><span class="o">.</span><span class="n">end_with?</span><span class="p">(</span><span class="s2">".css"</span><span class="p">)</span>
|
61
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="s2">"<script src='</span><span class="si">#{</span><span class="o">[</span><span class="n">rocco_out</span><span class="p">,</span> <span class="n">file</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span><span class="si">}</span><span class="s2">'></script></span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file</span><span class="o">.</span><span class="n">end_with?</span><span class="p">(</span><span class="s2">".js"</span><span class="p">)</span>
|
62
|
+
<span class="k">end</span>
|
63
|
+
<span class="n">out</span>
|
64
|
+
|
65
|
+
<span class="k">end</span>
|
66
|
+
|
67
|
+
<span class="k">def</span> <span class="nf">generate_file_list</span><span class="p">(</span><span class="n">excuded_items</span> <span class="o">=</span> <span class="o">[]</span><span class="p">)</span>
|
68
|
+
<span class="n">rails_files</span> <span class="o">=</span> <span class="no">Dir</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="no">File</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">"**"</span><span class="p">,</span> <span class="s2">"*.rb"</span><span class="p">))</span>
|
69
|
+
<span class="n">excuded_items</span><span class="o">.</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">excluded</span><span class="o">|</span>
|
70
|
+
<span class="n">rails_files</span><span class="o">.</span><span class="n">delete_if</span><span class="p">{</span><span class="o">|</span><span class="n">x</span><span class="o">|</span> <span class="n">x</span><span class="o">.</span><span class="n">include?</span><span class="p">(</span><span class="n">excluded</span><span class="p">)}</span>
|
71
|
+
<span class="k">end</span>
|
72
|
+
<span class="n">rails_files</span>
|
73
|
+
<span class="k">end</span></pre></div>
|
74
|
+
</td>
|
75
|
+
</tr>
|
76
|
+
<tr id='section-3'>
|
77
|
+
<td class=docs>
|
78
|
+
<div class="pilwrap">
|
79
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
80
|
+
</div>
|
81
|
+
<p>http://stackoverflow.com/questions/760233/generate-a-file-list-based-on-an-array</p>
|
82
|
+
|
83
|
+
</td>
|
84
|
+
<td class=code>
|
85
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">generate_menu</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
|
86
|
+
|
87
|
+
<span class="n">old_pwd</span> <span class="o">=</span> <span class="no">Dir</span><span class="o">.</span><span class="n">pwd</span>
|
88
|
+
<span class="no">Dir</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
|
89
|
+
<span class="n">dirs</span> <span class="o">=</span> <span class="no">Dir</span><span class="o">[</span><span class="s2">"**/*.html"</span><span class="o">]</span>
|
90
|
+
<span class="no">Dir</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">old_pwd</span><span class="p">)</span>
|
91
|
+
|
92
|
+
<span class="n">tree</span> <span class="o">=</span> <span class="p">{}</span>
|
93
|
+
<span class="n">menu</span> <span class="o">=</span> <span class="s2">""</span>
|
94
|
+
|
95
|
+
<span class="n">dirs</span><span class="o">.</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">path</span><span class="o">|</span>
|
96
|
+
<span class="n">current</span> <span class="o">=</span> <span class="n">tree</span>
|
97
|
+
<span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span><span class="o">.</span><span class="n">inject</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span> <span class="k">do</span> <span class="o">|</span><span class="n">sub_path</span><span class="p">,</span><span class="n">dir</span><span class="o">|</span>
|
98
|
+
<span class="n">sub_path</span> <span class="o">=</span> <span class="n">sub_path</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">==</span> <span class="p">(</span><span class="s2">"/"</span><span class="p">)</span> <span class="p">?</span> <span class="n">sub_path</span><span class="o">[</span><span class="mi">1</span><span class="o">.</span><span class="n">.</span><span class="o">-</span><span class="mi">1</span><span class="o">]</span> <span class="p">:</span> <span class="n">sub_path</span>
|
99
|
+
<span class="n">sub_path</span> <span class="o">=</span> <span class="no">File</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sub_path</span><span class="p">,</span> <span class="n">dir</span><span class="p">)</span>
|
100
|
+
<span class="n">current</span><span class="o">[</span><span class="n">sub_path</span><span class="o">]</span> <span class="o">||=</span> <span class="p">{}</span>
|
101
|
+
<span class="n">current</span> <span class="o">=</span> <span class="n">current</span><span class="o">[</span><span class="n">sub_path</span><span class="o">]</span>
|
102
|
+
<span class="n">sub_path</span>
|
103
|
+
<span class="k">end</span>
|
104
|
+
<span class="k">end</span>
|
105
|
+
<span class="k">return</span> <span class="n">print_tree</span><span class="p">(</span><span class="n">tree</span><span class="p">)</span>
|
106
|
+
<span class="k">end</span>
|
107
|
+
|
108
|
+
|
109
|
+
<span class="kp">protected</span>
|
110
|
+
|
111
|
+
<span class="k">def</span> <span class="nf">print_tree</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
|
112
|
+
<span class="n">out</span> <span class="o">=</span> <span class="s2">""</span>
|
113
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="s2">"<ul>"</span>
|
114
|
+
<span class="n">node</span><span class="o">.</span><span class="n">each_pair</span> <span class="k">do</span> <span class="o">|</span><span class="n">path</span><span class="p">,</span> <span class="n">subtree</span><span class="o">|</span>
|
115
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="n">path</span><span class="o">.</span><span class="n">end_with?</span><span class="p">(</span><span class="s2">".html"</span><span class="p">)</span> <span class="p">?</span> <span class="s2">"<li> <a href='</span><span class="si">#{</span><span class="n">path</span><span class="si">}</span><span class="s2">'> </span><span class="si">#{</span><span class="no">File</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span><span class="si">}</span><span class="s2"></a>"</span> <span class="p">:</span> <span class="s2">"<li></span><span class="si">#{</span><span class="no">File</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span>
|
116
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="n">print_tree</span><span class="p">(</span><span class="n">subtree</span><span class="p">)</span> <span class="k">unless</span> <span class="n">subtree</span><span class="o">.</span><span class="n">empty?</span>
|
117
|
+
<span class="k">end</span>
|
118
|
+
<span class="n">out</span> <span class="o">+=</span> <span class="s2">"</li></ul>"</span>
|
119
|
+
<span class="k">return</span> <span class="n">out</span>
|
120
|
+
<span class="k">end</span>
|
121
|
+
|
122
|
+
|
123
|
+
<span class="k">end</span>
|
124
|
+
<span class="k">end</span></pre></div>
|
125
|
+
</td>
|
126
|
+
</tr>
|
127
|
+
</table>
|
128
|
+
</div>
|
129
|
+
</body>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>railtie.rb</title>
|
6
|
+
<link rel='stylesheet' href='/Users/mmarin/Work/rocco_rails/docs/resources/rocco.css'>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div id='container'>
|
12
|
+
<div id="background"></div>
|
13
|
+
<table cellspacing=0 cellpadding=0>
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
|
17
|
+
<th class='docs'>
|
18
|
+
<h1>railtie.rb</h1>
|
19
|
+
<p class=hint> lib/rocco_rails/railtie.rb </p>
|
20
|
+
</th>
|
21
|
+
|
22
|
+
<th class=code>
|
23
|
+
</th>
|
24
|
+
</tr>
|
25
|
+
</thead>
|
26
|
+
<tbody>
|
27
|
+
|
28
|
+
</tr>
|
29
|
+
<tr id='section-1'>
|
30
|
+
<td class=docs>
|
31
|
+
<div class="pilwrap">
|
32
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
33
|
+
</div>
|
34
|
+
<p>From http://blog.nathanhumbert.com/2010/02/rails-3-loading-rake-tasks-from-gem.html</p>
|
35
|
+
|
36
|
+
</td>
|
37
|
+
<td class=code>
|
38
|
+
<div class='highlight'><pre><span class="nb">require</span> <span class="s1">'rocco_rails'</span>
|
39
|
+
<span class="nb">require</span> <span class="s1">'rails'</span>
|
40
|
+
<span class="k">module</span> <span class="nn">RoccoRails</span>
|
41
|
+
<span class="k">class</span> <span class="nc">Railtie</span> <span class="o"><</span> <span class="no">Rails</span><span class="o">::</span><span class="no">Railtie</span>
|
42
|
+
<span class="n">railtie_name</span> <span class="ss">:rocco_rails</span>
|
43
|
+
|
44
|
+
<span class="n">rake_tasks</span> <span class="k">do</span>
|
45
|
+
<span class="nb">load</span> <span class="s2">"tasks/rails_tasks.rake"</span>
|
46
|
+
<span class="k">end</span>
|
47
|
+
<span class="k">end</span>
|
48
|
+
<span class="k">end</span></pre></div>
|
49
|
+
</td>
|
50
|
+
</tr>
|
51
|
+
</table>
|
52
|
+
</div>
|
53
|
+
</body>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>version.rb</title>
|
6
|
+
<link rel='stylesheet' href='/Users/mmarin/Work/rocco_rails/docs/resources/rocco.css'>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div id='container'>
|
12
|
+
<div id="background"></div>
|
13
|
+
<table cellspacing=0 cellpadding=0>
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
|
17
|
+
<th class='docs'>
|
18
|
+
<h1>version.rb</h1>
|
19
|
+
<p class=hint> lib/rocco_rails/version.rb </p>
|
20
|
+
</th>
|
21
|
+
|
22
|
+
<th class=code>
|
23
|
+
</th>
|
24
|
+
</tr>
|
25
|
+
</thead>
|
26
|
+
<tbody>
|
27
|
+
|
28
|
+
</tr>
|
29
|
+
</table>
|
30
|
+
</div>
|
31
|
+
</body>
|
@@ -0,0 +1,136 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
5
|
+
<title>rails_tasks.rake</title>
|
6
|
+
<link rel='stylesheet' href='/Users/mmarin/Work/rocco_rails/docs/resources/rocco.css'>
|
7
|
+
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div id='container'>
|
12
|
+
<div id="background"></div>
|
13
|
+
<table cellspacing=0 cellpadding=0>
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
|
17
|
+
<th class='docs'>
|
18
|
+
<h1>rails_tasks.rake</h1>
|
19
|
+
<p class=hint> lib/tasks/rails_tasks.rake </p>
|
20
|
+
</th>
|
21
|
+
|
22
|
+
<th class=code>
|
23
|
+
</th>
|
24
|
+
</tr>
|
25
|
+
</thead>
|
26
|
+
<tbody>
|
27
|
+
|
28
|
+
</tr>
|
29
|
+
<tr id='section-1'>
|
30
|
+
<td class=docs>
|
31
|
+
<div class="pilwrap">
|
32
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
33
|
+
</div>
|
34
|
+
<p>Taken from https://github.com/hotsh/rstat.us/blob/master/lib/tasks/rocco.rake and
|
35
|
+
https://github.com/rtomayko/rocco/blob/master/lib/rocco/tasks.rb</p>
|
36
|
+
</td>
|
37
|
+
<td class=code>
|
38
|
+
<div class='highlight'><pre><span class="nb">require</span> <span class="s1">'rocco/tasks'</span>
|
39
|
+
<span class="nb">require</span> <span class="s1">'erb'</span>
|
40
|
+
|
41
|
+
<span class="n">namespace</span> <span class="ss">:rails</span> <span class="k">do</span></pre></div>
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
<tr id='section-2'>
|
45
|
+
<td class=docs>
|
46
|
+
<div class="pilwrap">
|
47
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
48
|
+
</div>
|
49
|
+
<p>If exists a config/rocco.yml in rails path use it</p>
|
50
|
+
</td>
|
51
|
+
<td class=code>
|
52
|
+
<div class='highlight'><pre> <span class="k">def</span> <span class="nf">load_config</span>
|
53
|
+
<span class="vi">@gem_path</span> <span class="o">=</span> <span class="no">Gem</span><span class="o">.</span><span class="n">loaded_specs</span><span class="o">[</span><span class="s1">'rocco_rails'</span><span class="o">].</span><span class="n">full_gem_path</span> <span class="o">+</span> <span class="s2">"/"</span>
|
54
|
+
<span class="n">gem_config</span> <span class="o">=</span> <span class="no">YAML</span><span class="o">.</span><span class="n">load_file</span><span class="p">(</span><span class="vi">@gem_path</span> <span class="o">+</span> <span class="s2">"lib/config/rocco.yml"</span><span class="p">)</span>
|
55
|
+
<span class="k">begin</span>
|
56
|
+
<span class="vi">@base_path</span> <span class="o">=</span> <span class="no">Rails</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">to_s</span> <span class="o">+</span> <span class="s2">"/"</span>
|
57
|
+
<span class="n">rails_config</span> <span class="o">=</span> <span class="no">YAML</span><span class="o">.</span><span class="n">load_file</span><span class="p">(</span><span class="vi">@base_path</span> <span class="o">+</span> <span class="s2">"config/rocco.yml"</span><span class="p">)</span>
|
58
|
+
<span class="vi">@config</span> <span class="o">=</span> <span class="n">gem_config</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">rails_config</span><span class="p">)</span>
|
59
|
+
<span class="k">rescue</span> <span class="no">Exception</span> <span class="o">=></span> <span class="n">e</span>
|
60
|
+
<span class="vi">@base_path</span> <span class="o">=</span> <span class="vi">@gem_path</span>
|
61
|
+
<span class="vi">@config</span> <span class="o">=</span> <span class="n">gem_config</span>
|
62
|
+
<span class="k">end</span>
|
63
|
+
|
64
|
+
<span class="vi">@out</span> <span class="o">=</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"output"</span><span class="o">]</span>
|
65
|
+
|
66
|
+
<span class="n">template</span> <span class="o">=</span> <span class="vi">@base_path</span> <span class="o">+</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"template"</span><span class="o">]</span>
|
67
|
+
<span class="vi">@template</span> <span class="o">=</span> <span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="n">template</span><span class="p">)</span> <span class="p">?</span> <span class="n">template</span> <span class="p">:</span> <span class="vi">@gem_path</span> <span class="o">+</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"template"</span><span class="o">]</span>
|
68
|
+
|
69
|
+
<span class="n">resources_path</span> <span class="o">=</span> <span class="vi">@base_path</span> <span class="o">+</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"resources_path"</span><span class="o">]</span>
|
70
|
+
<span class="vi">@resources_path</span> <span class="o">=</span> <span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="n">resources_path</span><span class="p">)</span> <span class="p">?</span> <span class="n">resources_path</span> <span class="p">:</span> <span class="vi">@gem_path</span> <span class="o">+</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"resources_path"</span><span class="o">]</span>
|
71
|
+
|
72
|
+
<span class="vi">@excluded_items</span> <span class="o">=</span> <span class="vi">@config</span><span class="o">[</span><span class="s2">"excluded_items"</span><span class="o">].</span><span class="n">split</span><span class="p">(</span><span class="s2">", "</span><span class="p">)</span>
|
73
|
+
|
74
|
+
<span class="k">end</span>
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
<span class="n">desc</span> <span class="s1">'Build rocco docs'</span>
|
79
|
+
<span class="n">task</span> <span class="ss">:rocco_docs</span>
|
80
|
+
|
81
|
+
<span class="n">load_config</span>
|
82
|
+
<span class="no">Rocco</span><span class="o">::</span><span class="no">Task</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="ss">:rocco_docs</span><span class="p">,</span> <span class="vi">@out</span><span class="p">,</span> <span class="no">RoccoRails</span><span class="o">.</span><span class="n">generate_file_list</span><span class="p">(</span><span class="vi">@excluded_items</span><span class="p">),</span> <span class="p">{</span><span class="ss">:template_file</span> <span class="o">=></span> <span class="vi">@template</span><span class="p">,</span> <span class="ss">:stylesheet</span> <span class="o">=></span> <span class="no">RoccoRails</span><span class="o">.</span><span class="n">generate_resources</span><span class="p">(</span><span class="vi">@resources_path</span><span class="p">,</span> <span class="o">[</span><span class="no">Rails</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">to_s</span><span class="p">,</span> <span class="vi">@out</span><span class="p">,</span> <span class="s2">"resources"</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s2">"/"</span><span class="p">))</span> <span class="p">})</span></pre></div>
|
83
|
+
</td>
|
84
|
+
</tr>
|
85
|
+
<tr id='section-3'>
|
86
|
+
<td class=docs>
|
87
|
+
<div class="pilwrap">
|
88
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
89
|
+
</div>
|
90
|
+
<p>Copy resources folder to out folder</p>
|
91
|
+
|
92
|
+
</td>
|
93
|
+
<td class=code>
|
94
|
+
<div class='highlight'><pre> <span class="no">FileUtils</span><span class="o">.</span><span class="n">mkdir_p</span><span class="p">(</span><span class="vi">@out</span> <span class="o">+</span> <span class="s2">"/resources"</span><span class="p">)</span> <span class="k">if</span> <span class="no">Dir</span><span class="o">[</span><span class="vi">@out</span><span class="o">].</span><span class="n">blank?</span>
|
95
|
+
<span class="no">FileUtils</span><span class="o">.</span><span class="n">cp_r</span><span class="p">(</span><span class="vi">@resources_path</span><span class="p">,</span> <span class="vi">@out</span><span class="p">)</span>
|
96
|
+
|
97
|
+
|
98
|
+
<span class="n">desc</span> <span class="s1">'Generates and index.html for a rocco folder'</span>
|
99
|
+
<span class="n">task</span> <span class="ss">:rocco_index</span> <span class="k">do</span>
|
100
|
+
<span class="n">load_config</span>
|
101
|
+
<span class="vi">@menu</span> <span class="o">=</span> <span class="no">RoccoRails</span><span class="o">.</span><span class="n">generate_menu</span><span class="p">(</span><span class="vi">@out</span><span class="p">)</span>
|
102
|
+
<span class="vi">@title</span> <span class="o">=</span> <span class="s2">"Rocco Documentation"</span>
|
103
|
+
<span class="o">[</span><span class="s2">"menu"</span><span class="p">,</span> <span class="s2">"index"</span><span class="o">].</span><span class="n">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">page</span><span class="o">|</span>
|
104
|
+
<span class="n">template</span> <span class="o">=</span> <span class="no">File</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="vi">@gem_path</span> <span class="o">+</span> <span class="s2">"lib/templates/</span><span class="si">#{</span><span class="n">page</span><span class="si">}</span><span class="s2">.erb"</span><span class="p">)</span>
|
105
|
+
<span class="n">html</span> <span class="o">=</span> <span class="no">ERB</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">template</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"%<>"</span><span class="p">)</span><span class="o">.</span><span class="n">result</span>
|
106
|
+
<span class="no">File</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="vi">@out</span> <span class="o">+</span> <span class="s2">"/</span><span class="si">#{</span><span class="n">page</span><span class="si">}</span><span class="s2">.html"</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">f</span><span class="o">|</span> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">html</span><span class="p">)</span> <span class="p">}</span>
|
107
|
+
<span class="k">end</span>
|
108
|
+
<span class="no">FileUtils</span><span class="o">.</span><span class="n">cp_r</span><span class="p">(</span><span class="vi">@gem_path</span><span class="o">+</span><span class="s2">"lib/templates/menu_resources/."</span><span class="p">,</span> <span class="vi">@out</span> <span class="o">+</span> <span class="s2">"/resources"</span><span class="p">)</span>
|
109
|
+
|
110
|
+
<span class="k">end</span>
|
111
|
+
|
112
|
+
<span class="n">desc</span> <span class="s1">'Test actual config.yml'</span>
|
113
|
+
<span class="n">task</span> <span class="ss">:test_rocco_config</span> <span class="k">do</span>
|
114
|
+
<span class="n">load_config</span>
|
115
|
+
|
116
|
+
|
117
|
+
<span class="nb">p</span> <span class="s2">"Template exist => </span><span class="si">#{</span><span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="vi">@template</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span>
|
118
|
+
<span class="nb">p</span> <span class="s2">"Resources exist => </span><span class="si">#{</span><span class="no">File</span><span class="o">.</span><span class="n">exists?</span><span class="p">(</span><span class="vi">@resources_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span>
|
119
|
+
<span class="nb">p</span> <span class="s2">"List of files to generate docs => </span><span class="si">#{</span><span class="no">RoccoRails</span><span class="o">.</span><span class="n">generate_file_list</span><span class="p">(</span><span class="vi">@excluded_items</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span>
|
120
|
+
<span class="k">end</span>
|
121
|
+
|
122
|
+
<span class="n">desc</span> <span class="s1">'Copy rocco.yml to rails config path'</span>
|
123
|
+
<span class="n">task</span> <span class="ss">:rocco_setup</span> <span class="k">do</span>
|
124
|
+
<span class="n">yml_path</span> <span class="o">=</span> <span class="o">[</span><span class="no">Gem</span><span class="o">.</span><span class="n">loaded_specs</span><span class="o">[</span><span class="s1">'rocco_rails'</span><span class="o">].</span><span class="n">full_gem_path</span><span class="p">,</span> <span class="s2">"lib"</span><span class="p">,</span> <span class="s2">"config"</span><span class="p">,</span> <span class="s2">"rocco.yml.sample"</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span>
|
125
|
+
<span class="no">FileUtils</span><span class="o">.</span><span class="n">cp</span><span class="p">(</span><span class="n">yml_path</span><span class="p">,</span> <span class="no">Rails</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">to_s</span> <span class="o">+</span> <span class="s2">"/config/rocco.yml"</span><span class="p">)</span>
|
126
|
+
<span class="nb">p</span> <span class="s2">"rocco.yml copied to config/rocco.yml"</span>
|
127
|
+
<span class="k">end</span>
|
128
|
+
|
129
|
+
<span class="n">task</span> <span class="ss">:rocco</span> <span class="o">=></span> <span class="o">[</span><span class="ss">:rocco_docs</span><span class="p">,</span> <span class="ss">:rocco_index</span><span class="o">]</span>
|
130
|
+
|
131
|
+
<span class="k">end</span></pre></div>
|
132
|
+
</td>
|
133
|
+
</tr>
|
134
|
+
</table>
|
135
|
+
</div>
|
136
|
+
</body>
|