rocco_rails 0.8

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'rocco', :git => "git://github.com/rtomayko/rocco.git"
4
+ gem 'rake'
5
+
6
+ # Specify your gem's dependencies in rocco_rails.gemspec
7
+ gemspec
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
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require 'rubygems'
4
+
5
+ load 'lib/tasks/rocco_tasks.rake'
6
+
7
+ $LOAD_PATH.unshift 'lib'
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">&#182;</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">&#39;../rocco_rails/lib/rocco_rails/version.rb&#39;</span><span class="p">)</span>
38
+ <span class="nb">require</span> <span class="s2">&quot;rocco&quot;</span>
39
+
40
+ <span class="k">module</span> <span class="nn">RoccoRails</span>
41
+
42
+ <span class="k">class</span> <span class="o">&lt;&lt;</span> <span class="nb">self</span>
43
+ <span class="nb">require</span> <span class="s1">&#39;rocco_rails/railtie&#39;</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">&#182;</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">&quot;.&quot;</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="o">]</span>
58
+ <span class="n">out</span> <span class="o">=</span> <span class="s2">&quot;&quot;</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">&quot;&lt;link rel=&#39;stylesheet&#39; href=&#39;</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">&#39;/&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&#39;&gt;</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;.css&quot;</span><span class="p">)</span>
61
+ <span class="n">out</span> <span class="o">+=</span> <span class="s2">&quot;&lt;script src=&#39;</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">&#39;/&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">&#39;&gt;&lt;/script&gt;</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;.js&quot;</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">&quot;**&quot;</span><span class="p">,</span> <span class="s2">&quot;*.rb&quot;</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">&#182;</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">&quot;**/*.html&quot;</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">&quot;&quot;</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">&quot;/&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">inject</span><span class="p">(</span><span class="s2">&quot;&quot;</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">&quot;/&quot;</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">&quot;&quot;</span>
113
+ <span class="n">out</span> <span class="o">+=</span> <span class="s2">&quot;&lt;ul&gt;&quot;</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">&quot;.html&quot;</span><span class="p">)</span> <span class="p">?</span> <span class="s2">&quot;&lt;li&gt; &lt;a href=&#39;</span><span class="si">#{</span><span class="n">path</span><span class="si">}</span><span class="s2">&#39;&gt; </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">&lt;/a&gt;&quot;</span> <span class="p">:</span> <span class="s2">&quot;&lt;li&gt;</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">&quot;</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">&quot;&lt;/li&gt;&lt;/ul&gt;&quot;</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">&#182;</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">&#39;rocco_rails&#39;</span>
39
+ <span class="nb">require</span> <span class="s1">&#39;rails&#39;</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">&lt;</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">&quot;tasks/rails_tasks.rake&quot;</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">&#182;</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">&#39;rocco/tasks&#39;</span>
39
+ <span class="nb">require</span> <span class="s1">&#39;erb&#39;</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">&#182;</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">&#39;rocco_rails&#39;</span><span class="o">].</span><span class="n">full_gem_path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</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">&quot;lib/config/rocco.yml&quot;</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">&quot;/&quot;</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">&quot;config/rocco.yml&quot;</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">=&gt;</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">&quot;output&quot;</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">&quot;template&quot;</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">&quot;template&quot;</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">&quot;resources_path&quot;</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">&quot;resources_path&quot;</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">&quot;excluded_items&quot;</span><span class="o">].</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;, &quot;</span><span class="p">)</span>
73
+
74
+ <span class="k">end</span>
75
+
76
+
77
+
78
+ <span class="n">desc</span> <span class="s1">&#39;Build rocco docs&#39;</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">=&gt;</span> <span class="vi">@template</span><span class="p">,</span> <span class="ss">:stylesheet</span> <span class="o">=&gt;</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">&quot;resources&quot;</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;/&quot;</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">&#182;</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">&quot;/resources&quot;</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">&#39;Generates and index.html for a rocco folder&#39;</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">&quot;Rocco Documentation&quot;</span>
103
+ <span class="o">[</span><span class="s2">&quot;menu&quot;</span><span class="p">,</span> <span class="s2">&quot;index&quot;</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">&quot;lib/templates/</span><span class="si">#{</span><span class="n">page</span><span class="si">}</span><span class="s2">.erb&quot;</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">&quot;%&lt;&gt;&quot;</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">&quot;/</span><span class="si">#{</span><span class="n">page</span><span class="si">}</span><span class="s2">.html&quot;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</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">&quot;lib/templates/menu_resources/.&quot;</span><span class="p">,</span> <span class="vi">@out</span> <span class="o">+</span> <span class="s2">&quot;/resources&quot;</span><span class="p">)</span>
109
+
110
+ <span class="k">end</span>
111
+
112
+ <span class="n">desc</span> <span class="s1">&#39;Test actual config.yml&#39;</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">&quot;Template exist =&gt; </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">&quot;</span>
118
+ <span class="nb">p</span> <span class="s2">&quot;Resources exist =&gt; </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">&quot;</span>
119
+ <span class="nb">p</span> <span class="s2">&quot;List of files to generate docs =&gt; </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">&quot;</span>
120
+ <span class="k">end</span>
121
+
122
+ <span class="n">desc</span> <span class="s1">&#39;Copy rocco.yml to rails config path&#39;</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">&#39;rocco_rails&#39;</span><span class="o">].</span><span class="n">full_gem_path</span><span class="p">,</span> <span class="s2">&quot;lib&quot;</span><span class="p">,</span> <span class="s2">&quot;config&quot;</span><span class="p">,</span> <span class="s2">&quot;rocco.yml.sample&quot;</span><span class="o">].</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;/&quot;</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">&quot;/config/rocco.yml&quot;</span><span class="p">)</span>
126
+ <span class="nb">p</span> <span class="s2">&quot;rocco.yml copied to config/rocco.yml&quot;</span>
127
+ <span class="k">end</span>
128
+
129
+ <span class="n">task</span> <span class="ss">:rocco</span> <span class="o">=&gt;</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>