rocco_rails 0.8
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.
- 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>
|