bivouac 0.0.8 → 0.0.9

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/README CHANGED
@@ -12,6 +12,16 @@ Bivouac is a simple generator for camping[http://code.whytheluckystiff.net/campi
12
12
 
13
13
  == FEATURES/PROBLEMS:
14
14
 
15
+ === 0.0.9:
16
+ * Upgrade to simple-daemon >=0.1.2
17
+ * Better migration support! And migrate is now migration ! That's better no ?
18
+ * Add MySQL, PostgreSQL, ... support. See
19
+ $ bivouac -h
20
+ * Add tests support with mosquito[http://mosquito.rubyforge.org/] :
21
+ $ ruby script/generate test my_test_name
22
+ To run a test, juste do :
23
+ $ ruby test/test_my_test_name.rb
24
+
15
25
  === 0.0.8:
16
26
  * Bivouac now work with WEBrick -- Bug correction
17
27
  * Markaby::Builder.set(:indent, 2)
@@ -58,8 +68,7 @@ Bivouac is a simple generator for camping[http://code.whytheluckystiff.net/campi
58
68
  == TODO:
59
69
 
60
70
  * add test with mosquito[http://code.whytheluckystiff.net/camping/wiki/MosquitoForBugFreeCamping]
61
- * test with Apache and Lighttpd
62
- * add mysql, postgresql, oracle, ... support
71
+ * more helpers...
63
72
 
64
73
  == SYNOPSIS:
65
74
 
data/bin/bivouac CHANGED
@@ -13,7 +13,10 @@ require 'fileutils'
13
13
  require 'bivouac/template'
14
14
  include Bivouac::Template
15
15
 
16
- @conf = OpenStruct.new( :db => "sqlite3", :orgtype => "GOH", :port => 3301, :address => "0.0.0.0" )
16
+ database_configuration = {
17
+ :adapter => "sqlite3"
18
+ }
19
+ @conf = OpenStruct.new( :db => "{\n\t:adapter => 'sqlite3'\n\t:database => 'db/bivouac.db'\n}", :orgtype => "GOH", :port => 3301, :address => "0.0.0.0" )
17
20
 
18
21
  opts = OptionParser.new do |opts|
19
22
  opts.banner = "Usage: bivouac [options] app"
@@ -21,8 +24,33 @@ opts = OptionParser.new do |opts|
21
24
  opts.separator ""
22
25
  opts.separator "Specific options:"
23
26
 
24
-
25
- #opts.on("-d", "--database NAME", "Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite2/sqlite3).") { |@conf.db| }
27
+ opts.on("-d", "--database NAME", "Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite2/sqlite3).") { |dbtype|
28
+ database_configuration = {
29
+ :adapter => dbtype
30
+ }
31
+
32
+ case dbtype
33
+ when "mysql"
34
+ database_configuration[:username] = ""
35
+ database_configuration[:password] = ""
36
+ database_configuration[:host] = "localhost"
37
+ when "postgresql"
38
+ database_configuration[:username] = "root"
39
+ database_configuration[:password] = ""
40
+ database_configuration[:host] = "localhost"
41
+ when "oracle"
42
+ database_configuration[:username] = ""
43
+ database_configuration[:password] = ""
44
+ when "sqlite2"
45
+ database_configuration[:adapter] = "sqlite"
46
+ when "sqlite3"
47
+ else
48
+ puts opts
49
+ exit
50
+ end
51
+
52
+ @conf.db = "{\n\t:adapter => '#{dbtype}'\n\t:database => 'db/bivouac.db'\n}"
53
+ }
26
54
  opts.on("-P", "--port PORT", "Which port to bind to (3301)") { |@conf.port| }
27
55
  opts.on("-a", "--address ADDR", "Address to bind to (0.0.0.0)") { |@conf.address| }
28
56
  opts.on("-o", "--organize TYPE", "Type or organisation (options: JOF:Just On File/GOH:Get Out of Hand/ERB:use Eruby or Erb)") { |@conf.orgtype|
@@ -61,6 +89,13 @@ name = ARGV.dup
61
89
  @conf.appname = name[0].classify
62
90
  @conf.appdir = @conf.appname.underscore
63
91
 
92
+ if database_configuration[:adapter] =~ /sqlite/
93
+ database_configuration[:database] = "db/" + @conf.appdir + ".db"
94
+ else
95
+ database_configuration[:database] = @conf.appdir
96
+ end
97
+ @conf.db = database_configuration.inspect
98
+
64
99
  @appname = @conf.appname
65
100
 
66
101
  createDir( @conf.appdir )
@@ -103,6 +103,44 @@ bivouac/helpers/view/html
103
103
 
104
104
  <h2 class="ruled">Methods</h2>
105
105
  <h4 class="ruled">Public Instance method:
106
+ <strong><a name="M000027">partial( partial, options = {} )</a></strong> <a href="#M000027"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: partial" /></a></h4>
107
+
108
+ <p>
109
+ Alias for <a href="BaseView.html#M000026">render</a>
110
+ </p>
111
+
112
+ <h4 class="ruled">Public Instance method:
113
+ <strong><a name="M000028">public_to_str( file )</a></strong> <a href="#M000028"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: public_to_str" /></a></h4>
114
+
115
+ <p>
116
+ Return the content of a public file as string
117
+ </p>
118
+ <pre>
119
+ public_to_str( &quot;/stylesheets/autocomplete.css&quot; )
120
+ #=&gt; &quot;div.autocomplete {\n position:absolute;\n...&quot;
121
+ </pre>
122
+
123
+ <div class="sourcecode">
124
+ <p class="source-link">[ <a href="javascript:toggleSource('M000028_source')" id="l_M000028_source">show source</a> ]</p>
125
+ <div id="M000028_source" class="dyn-source">
126
+ <pre>
127
+ <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/base.rb, line 22</span>
128
+ 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">public_to_str</span>( <span class="ruby-identifier">file</span> )
129
+ 23: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">&quot;..&quot;</span>
130
+ 24: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
131
+ 25: <span class="ruby-keyword kw">end</span>
132
+ 26:
133
+ 27: <span class="ruby-identifier">file</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'BIVOUAC_ROOT'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/public/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>
134
+ 28: <span class="ruby-identifier">open</span>( <span class="ruby-identifier">file</span> ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
135
+ 29: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
136
+ 30: <span class="ruby-keyword kw">end</span>
137
+ 31:
138
+ 32: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">data</span>
139
+ 33: <span class="ruby-keyword kw">end</span>
140
+ </pre>
141
+ </div>
142
+ </div>
143
+ <h4 class="ruled">Public Instance method:
106
144
  <strong><a name="M000026">render( partial, options = {} )</a></strong> <a href="#M000026"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: render" /></a></h4>
107
145
 
108
146
  <pre>
@@ -103,7 +103,7 @@ bivouac/helpers/view/html
103
103
 
104
104
  <h2 class="ruled">Methods</h2>
105
105
  <h4 class="ruled">Public Instance method:
106
- <strong><a name="M000040">auto_complete_field( field_id, options = nil )</a></strong> <a href="#M000040"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: auto_complete_field" /></a></h4>
106
+ <strong><a name="M000042">auto_complete_field( field_id, options = nil )</a></strong> <a href="#M000042"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: auto_complete_field" /></a></h4>
107
107
 
108
108
  <p>
109
109
  Adds AJAX autocomplete functionality to the text input field with the DOM
@@ -111,8 +111,8 @@ ID specified by <tt>field_id</tt>.
111
111
  </p>
112
112
 
113
113
  <div class="sourcecode">
114
- <p class="source-link">[ <a href="javascript:toggleSource('M000040_source')" id="l_M000040_source">show source</a> ]</p>
115
- <div id="M000040_source" class="dyn-source">
114
+ <p class="source-link">[ <a href="javascript:toggleSource('M000042_source')" id="l_M000042_source">show source</a> ]</p>
115
+ <div id="M000042_source" class="dyn-source">
116
116
  <pre>
117
117
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 6</span>
118
118
  6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">auto_complete_field</span>( <span class="ruby-identifier">field_id</span>, <span class="ruby-identifier">options</span> = <span class="ruby-keyword kw">nil</span> )
@@ -131,7 +131,7 @@ ID specified by <tt>field_id</tt>.
131
131
  </div>
132
132
  </div>
133
133
  <h4 class="ruled">Public Instance method:
134
- <strong><a name="M000042">button_to_function(name, *args, &amp;block)</a></strong> <a href="#M000042"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: button_to_function" /></a></h4>
134
+ <strong><a name="M000044">button_to_function(name, *args, &amp;block)</a></strong> <a href="#M000044"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: button_to_function" /></a></h4>
135
135
 
136
136
  <p>
137
137
  Returns a button that&#8216;ll trigger a JavaScript function using the
@@ -144,8 +144,8 @@ making an Ajax request first).
144
144
  </p>
145
145
 
146
146
  <div class="sourcecode">
147
- <p class="source-link">[ <a href="javascript:toggleSource('M000042_source')" id="l_M000042_source">show source</a> ]</p>
148
- <div id="M000042_source" class="dyn-source">
147
+ <p class="source-link">[ <a href="javascript:toggleSource('M000044_source')" id="l_M000044_source">show source</a> ]</p>
148
+ <div id="M000044_source" class="dyn-source">
149
149
  <pre>
150
150
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 63</span>
151
151
  63: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">button_to_function</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
@@ -163,7 +163,7 @@ making an Ajax request first).
163
163
  </div>
164
164
  </div>
165
165
  <h4 class="ruled">Public Instance method:
166
- <strong><a name="M000045">form_remote_tag(options = {}, &amp;block)</a></strong> <a href="#M000045"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: form_remote_tag" /></a></h4>
166
+ <strong><a name="M000047">form_remote_tag(options = {}, &amp;block)</a></strong> <a href="#M000047"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: form_remote_tag" /></a></h4>
167
167
 
168
168
  <p>
169
169
  Returns a form tag that will submit using XMLHttpRequest in the background
@@ -185,15 +185,15 @@ Example:
185
185
  </pre>
186
186
  <p>
187
187
  The Hash passed to the :html key is equivalent to the options (2nd)
188
- argument in the <a href="FormView.html#M000044">form_tag</a> method.
188
+ argument in the <a href="FormView.html#M000046">form_tag</a> method.
189
189
  </p>
190
190
  <p>
191
191
  By default the fall-through action is the same as the one specified in the
192
192
  :url (and the default method is :post).
193
193
  </p>
194
194
  <p>
195
- <a href="FormView.html#M000045">form_remote_tag</a> takes a block, like <a
196
- href="FormView.html#M000044">form_tag</a>:
195
+ <a href="FormView.html#M000047">form_remote_tag</a> takes a block, like <a
196
+ href="FormView.html#M000046">form_tag</a>:
197
197
  </p>
198
198
  <pre>
199
199
  form_remote_tag :url =&gt; '/posts' do
@@ -202,8 +202,8 @@ href="FormView.html#M000044">form_tag</a>:
202
202
  </pre>
203
203
 
204
204
  <div class="sourcecode">
205
- <p class="source-link">[ <a href="javascript:toggleSource('M000045_source')" id="l_M000045_source">show source</a> ]</p>
206
- <div id="M000045_source" class="dyn-source">
205
+ <p class="source-link">[ <a href="javascript:toggleSource('M000047_source')" id="l_M000047_source">show source</a> ]</p>
206
+ <div id="M000047_source" class="dyn-source">
207
207
  <pre>
208
208
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 159</span>
209
209
  159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">form_remote_tag</span>(<span class="ruby-identifier">options</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
@@ -220,7 +220,7 @@ href="FormView.html#M000044">form_tag</a>:
220
220
  </div>
221
221
  </div>
222
222
  <h4 class="ruled">Public Instance method:
223
- <strong><a name="M000044">form_tag(url, options = {}) {|| ...}</a></strong> <a href="#M000044"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: form_tag" /></a></h4>
223
+ <strong><a name="M000046">form_tag(url, options = {}) {|| ...}</a></strong> <a href="#M000046"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: form_tag" /></a></h4>
224
224
 
225
225
  <p>
226
226
  Starts a form tag that points the action to an url. The method for the form
@@ -230,11 +230,11 @@ defaults to POST.
230
230
  Examples:
231
231
  </p>
232
232
  <ul>
233
- <li><tt><a href="FormView.html#M000044">form_tag</a>(&#8217;/posts&#8217;)
233
+ <li><tt><a href="FormView.html#M000046">form_tag</a>(&#8217;/posts&#8217;)
234
234
  =&gt; &lt;form action=&quot;/posts&quot; method=&quot;post&quot;&gt;</tt>
235
235
 
236
236
  </li>
237
- <li><tt><a href="FormView.html#M000044">form_tag</a>(&#8217;/upload&#8217;,
237
+ <li><tt><a href="FormView.html#M000046">form_tag</a>(&#8217;/upload&#8217;,
238
238
  :multipart =&gt; true) =&gt; &lt;form action=&quot;/upload&quot;
239
239
  method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;</tt>
240
240
 
@@ -273,8 +273,8 @@ either &quot;get&quot; or &quot;post&quot;.
273
273
  </ul>
274
274
 
275
275
  <div class="sourcecode">
276
- <p class="source-link">[ <a href="javascript:toggleSource('M000044_source')" id="l_M000044_source">show source</a> ]</p>
277
- <div id="M000044_source" class="dyn-source">
276
+ <p class="source-link">[ <a href="javascript:toggleSource('M000046_source')" id="l_M000046_source">show source</a> ]</p>
277
+ <div id="M000046_source" class="dyn-source">
278
278
  <pre>
279
279
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 109</span>
280
280
  109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">form_tag</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
@@ -306,18 +306,18 @@ either &quot;get&quot; or &quot;post&quot;.
306
306
  </div>
307
307
  </div>
308
308
  <h4 class="ruled">Public Instance method:
309
- <strong><a name="M000043">submit_to_remote(name, value, options = {})</a></strong> <a href="#M000043"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: submit_to_remote" /></a></h4>
309
+ <strong><a name="M000045">submit_to_remote(name, value, options = {})</a></strong> <a href="#M000045"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: submit_to_remote" /></a></h4>
310
310
 
311
311
  <p>
312
312
  Returns a button input tag that will submit form using XMLHttpRequest in
313
313
  the background instead of regular reloading POST arrangement.
314
314
  <tt>options</tt> argument is the same as in <tt><a
315
- href="FormView.html#M000045">form_remote_tag</a></tt>.
315
+ href="FormView.html#M000047">form_remote_tag</a></tt>.
316
316
  </p>
317
317
 
318
318
  <div class="sourcecode">
319
- <p class="source-link">[ <a href="javascript:toggleSource('M000043_source')" id="l_M000043_source">show source</a> ]</p>
320
- <div id="M000043_source" class="dyn-source">
319
+ <p class="source-link">[ <a href="javascript:toggleSource('M000045_source')" id="l_M000045_source">show source</a> ]</p>
320
+ <div id="M000045_source" class="dyn-source">
321
321
  <pre>
322
322
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 78</span>
323
323
  78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">submit_to_remote</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span> = {})
@@ -335,7 +335,7 @@ href="FormView.html#M000045">form_remote_tag</a></tt>.
335
335
  </div>
336
336
  </div>
337
337
  <h4 class="ruled">Public Instance method:
338
- <strong><a name="M000041">text_field(field_name, value = &quot;&quot;, options = {})</a></strong> <a href="#M000041"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: text_field" /></a></h4>
338
+ <strong><a name="M000043">text_field(field_name, value = &quot;&quot;, options = {})</a></strong> <a href="#M000043"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: text_field" /></a></h4>
339
339
 
340
340
  <p>
341
341
  Autocomplete options :
@@ -355,8 +355,8 @@ them here, in the usual {field: &#8216;value&#8217;,another:
355
355
  </p>
356
356
 
357
357
  <div class="sourcecode">
358
- <p class="source-link">[ <a href="javascript:toggleSource('M000041_source')" id="l_M000041_source">show source</a> ]</p>
359
- <div id="M000041_source" class="dyn-source">
358
+ <p class="source-link">[ <a href="javascript:toggleSource('M000043_source')" id="l_M000043_source">show source</a> ]</p>
359
+ <div id="M000043_source" class="dyn-source">
360
360
  <pre>
361
361
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/form.rb, line 30</span>
362
362
  30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">text_field</span>(<span class="ruby-identifier">field_name</span>, <span class="ruby-identifier">value</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">options</span> = {})
@@ -103,7 +103,7 @@ bivouac/helpers/view/html
103
103
 
104
104
  <h2 class="ruled">Methods</h2>
105
105
  <h4 class="ruled">Public Instance method:
106
- <strong><a name="M000038">image_tag( source, options = {} )</a></strong> <a href="#M000038"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: image_tag" /></a></h4>
106
+ <strong><a name="M000040">image_tag( source, options = {} )</a></strong> <a href="#M000040"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: image_tag" /></a></h4>
107
107
 
108
108
  <p>
109
109
  Returns an html image tag for the <tt>source</tt>. The <tt>source</tt> must
@@ -121,8 +121,8 @@ without the extension)
121
121
  </pre>
122
122
 
123
123
  <div class="sourcecode">
124
- <p class="source-link">[ <a href="javascript:toggleSource('M000038_source')" id="l_M000038_source">show source</a> ]</p>
125
- <div id="M000038_source" class="dyn-source">
124
+ <p class="source-link">[ <a href="javascript:toggleSource('M000040_source')" id="l_M000040_source">show source</a> ]</p>
125
+ <div id="M000040_source" class="dyn-source">
126
126
  <pre>
127
127
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/html.rb, line 73</span>
128
128
  73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">image_tag</span>( <span class="ruby-identifier">source</span>, <span class="ruby-identifier">options</span> = {} )
@@ -135,7 +135,7 @@ without the extension)
135
135
  </div>
136
136
  </div>
137
137
  <h4 class="ruled">Public Instance method:
138
- <strong><a name="M000037">javascript_include_tag( *sources )</a></strong> <a href="#M000037"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: javascript_include_tag" /></a></h4>
138
+ <strong><a name="M000039">javascript_include_tag( *sources )</a></strong> <a href="#M000039"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: javascript_include_tag" /></a></h4>
139
139
 
140
140
  <p>
141
141
  Returns an html script tag for each of the <tt>sources</tt> provided. You
@@ -154,8 +154,8 @@ libraries in your application, pass :defaults as the source.
154
154
  </pre>
155
155
 
156
156
  <div class="sourcecode">
157
- <p class="source-link">[ <a href="javascript:toggleSource('M000037_source')" id="l_M000037_source">show source</a> ]</p>
158
- <div id="M000037_source" class="dyn-source">
157
+ <p class="source-link">[ <a href="javascript:toggleSource('M000039_source')" id="l_M000039_source">show source</a> ]</p>
158
+ <div id="M000039_source" class="dyn-source">
159
159
  <pre>
160
160
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/html.rb, line 43</span>
161
161
  43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">javascript_include_tag</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">sources</span> )
@@ -180,7 +180,7 @@ libraries in your application, pass :defaults as the source.
180
180
  </div>
181
181
  </div>
182
182
  <h4 class="ruled">Public Instance method:
183
- <strong><a name="M000039">link_to(name, address, options = {})</a></strong> <a href="#M000039"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to" /></a></h4>
183
+ <strong><a name="M000041">link_to(name, address, options = {})</a></strong> <a href="#M000041"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to" /></a></h4>
184
184
 
185
185
  <p>
186
186
  Creates a link tag of the given <tt>name</tt> using <tt>address</tt> has
@@ -213,8 +213,8 @@ You can mix and match the <tt>options</tt>.
213
213
  </pre>
214
214
 
215
215
  <div class="sourcecode">
216
- <p class="source-link">[ <a href="javascript:toggleSource('M000039_source')" id="l_M000039_source">show source</a> ]</p>
217
- <div id="M000039_source" class="dyn-source">
216
+ <p class="source-link">[ <a href="javascript:toggleSource('M000041_source')" id="l_M000041_source">show source</a> ]</p>
217
+ <div id="M000041_source" class="dyn-source">
218
218
  <pre>
219
219
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/html.rb, line 99</span>
220
220
  99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">link_to</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">address</span>, <span class="ruby-identifier">options</span> = {})
@@ -227,7 +227,7 @@ You can mix and match the <tt>options</tt>.
227
227
  </div>
228
228
  </div>
229
229
  <h4 class="ruled">Public Instance method:
230
- <strong><a name="M000036">stylesheet_link_tag( *data )</a></strong> <a href="#M000036"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: stylesheet_link_tag" /></a></h4>
230
+ <strong><a name="M000038">stylesheet_link_tag( *data )</a></strong> <a href="#M000038"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: stylesheet_link_tag" /></a></h4>
231
231
 
232
232
  <p>
233
233
  Returns a stylesheet link tag for the sources specified as arguments. If
@@ -247,8 +247,8 @@ You can modify the link attributes by passing a hash as the last argument.
247
247
  </pre>
248
248
 
249
249
  <div class="sourcecode">
250
- <p class="source-link">[ <a href="javascript:toggleSource('M000036_source')" id="l_M000036_source">show source</a> ]</p>
251
- <div id="M000036_source" class="dyn-source">
250
+ <p class="source-link">[ <a href="javascript:toggleSource('M000038_source')" id="l_M000038_source">show source</a> ]</p>
251
+ <div id="M000038_source" class="dyn-source">
252
252
  <pre>
253
253
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/html.rb, line 20</span>
254
254
  20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stylesheet_link_tag</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">data</span> )
@@ -103,7 +103,7 @@ bivouac/helpers/view/html
103
103
 
104
104
  <h2 class="ruled">Methods</h2>
105
105
  <h4 class="ruled">Public Instance method:
106
- <strong><a name="M000027">escape_javascript(javascript)</a></strong> <a href="#M000027"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: escape_javascript" /></a></h4>
106
+ <strong><a name="M000029">escape_javascript(javascript)</a></strong> <a href="#M000029"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: escape_javascript" /></a></h4>
107
107
 
108
108
  <p>
109
109
  Escape carrier returns and single and double quotes for JavaScript
@@ -111,8 +111,8 @@ segments.
111
111
  </p>
112
112
 
113
113
  <div class="sourcecode">
114
- <p class="source-link">[ <a href="javascript:toggleSource('M000027_source')" id="l_M000027_source">show source</a> ]</p>
115
- <div id="M000027_source" class="dyn-source">
114
+ <p class="source-link">[ <a href="javascript:toggleSource('M000029_source')" id="l_M000029_source">show source</a> ]</p>
115
+ <div id="M000029_source" class="dyn-source">
116
116
  <pre>
117
117
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 202</span>
118
118
  202: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape_javascript</span>(<span class="ruby-identifier">javascript</span>)
@@ -122,7 +122,7 @@ segments.
122
122
  </div>
123
123
  </div>
124
124
  <h4 class="ruled">Public Instance method:
125
- <strong><a name="M000028">javascript_tag( content, options = {} )</a></strong> <a href="#M000028"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: javascript_tag" /></a></h4>
125
+ <strong><a name="M000030">javascript_tag( content, options = {} )</a></strong> <a href="#M000030"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: javascript_tag" /></a></h4>
126
126
 
127
127
  <p>
128
128
  Returns a JavaScript tag with the <tt>block</tt> inside. Example:
@@ -142,8 +142,8 @@ Returns:
142
142
  </pre>
143
143
 
144
144
  <div class="sourcecode">
145
- <p class="source-link">[ <a href="javascript:toggleSource('M000028_source')" id="l_M000028_source">show source</a> ]</p>
146
- <div id="M000028_source" class="dyn-source">
145
+ <p class="source-link">[ <a href="javascript:toggleSource('M000030_source')" id="l_M000030_source">show source</a> ]</p>
146
+ <div id="M000030_source" class="dyn-source">
147
147
  <pre>
148
148
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 218</span>
149
149
  218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">javascript_tag</span>( <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span> = {} )
@@ -156,7 +156,7 @@ Returns:
156
156
  </div>
157
157
  </div>
158
158
  <h4 class="ruled">Public Instance method:
159
- <strong><a name="M000031">link_to_function( name, *args, &amp;block )</a></strong> <a href="#M000031"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to_function" /></a></h4>
159
+ <strong><a name="M000033">link_to_function( name, *args, &amp;block )</a></strong> <a href="#M000033"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to_function" /></a></h4>
160
160
 
161
161
  <p>
162
162
  Returns a link that will trigger a JavaScript function using the onclick
@@ -164,7 +164,7 @@ handler and return false after the fact.
164
164
  </p>
165
165
  <p>
166
166
  The function argument can be omitted in favor of an <a
167
- href="JavaScriptView.html#M000029">update_page</a> block, which evaluates
167
+ href="JavaScriptView.html#M000031">update_page</a> block, which evaluates
168
168
  to a string when the template is rendered (instead of making an Ajax
169
169
  request first).
170
170
  </p>
@@ -213,8 +213,8 @@ Produces:
213
213
  </pre>
214
214
 
215
215
  <div class="sourcecode">
216
- <p class="source-link">[ <a href="javascript:toggleSource('M000031_source')" id="l_M000031_source">show source</a> ]</p>
217
- <div id="M000031_source" class="dyn-source">
216
+ <p class="source-link">[ <a href="javascript:toggleSource('M000033_source')" id="l_M000033_source">show source</a> ]</p>
217
+ <div id="M000033_source" class="dyn-source">
218
218
  <pre>
219
219
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 273</span>
220
220
  273: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">link_to_function</span>( <span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> )
@@ -234,7 +234,7 @@ Produces:
234
234
  </div>
235
235
  </div>
236
236
  <h4 class="ruled">Public Instance method:
237
- <strong><a name="M000032">link_to_remote(name, options = {}, html_options = {})</a></strong> <a href="#M000032"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to_remote" /></a></h4>
237
+ <strong><a name="M000034">link_to_remote(name, options = {}, html_options = {})</a></strong> <a href="#M000034"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: link_to_remote" /></a></h4>
238
238
 
239
239
  <p>
240
240
  Returns a link to a remote action defined by <tt>options[:url]</tt>
@@ -358,8 +358,8 @@ the ID of a table row or any other DOM element.
358
358
  </table>
359
359
 
360
360
  <div class="sourcecode">
361
- <p class="source-link">[ <a href="javascript:toggleSource('M000032_source')" id="l_M000032_source">show source</a> ]</p>
362
- <div id="M000032_source" class="dyn-source">
361
+ <p class="source-link">[ <a href="javascript:toggleSource('M000034_source')" id="l_M000034_source">show source</a> ]</p>
362
+ <div id="M000034_source" class="dyn-source">
363
363
  <pre>
364
364
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 371</span>
365
365
  371: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">link_to_remote</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {}, <span class="ruby-identifier">html_options</span> = {})
@@ -369,7 +369,7 @@ the ID of a table row or any other DOM element.
369
369
  </div>
370
370
  </div>
371
371
  <h4 class="ruled">Public Instance method:
372
- <strong><a name="M000034">observe_field(field_id, options = {})</a></strong> <a href="#M000034"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: observe_field" /></a></h4>
372
+ <strong><a name="M000036">observe_field(field_id, options = {})</a></strong> <a href="#M000036"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: observe_field" /></a></h4>
373
373
 
374
374
  <p>
375
375
  Observes the field with the DOM ID specified by <tt>field_id</tt> and makes
@@ -419,12 +419,12 @@ radio buttons and checkboxes. With this, you can specify it instead to be
419
419
  </table>
420
420
  <p>
421
421
  Additionally, you may specify any of the options documented in <a
422
- href="JavaScriptView.html#M000032">link_to_remote</a>.
422
+ href="JavaScriptView.html#M000034">link_to_remote</a>.
423
423
  </p>
424
424
 
425
425
  <div class="sourcecode">
426
- <p class="source-link">[ <a href="javascript:toggleSource('M000034_source')" id="l_M000034_source">show source</a> ]</p>
427
- <div id="M000034_source" class="dyn-source">
426
+ <p class="source-link">[ <a href="javascript:toggleSource('M000036_source')" id="l_M000036_source">show source</a> ]</p>
427
+ <div id="M000036_source" class="dyn-source">
428
428
  <pre>
429
429
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 420</span>
430
430
  420: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">observe_field</span>(<span class="ruby-identifier">field_id</span>, <span class="ruby-identifier">options</span> = {})
@@ -438,7 +438,7 @@ href="JavaScriptView.html#M000032">link_to_remote</a>.
438
438
  </div>
439
439
  </div>
440
440
  <h4 class="ruled">Public Instance method:
441
- <strong><a name="M000033">periodically_call_remote(options = {})</a></strong> <a href="#M000033"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: periodically_call_remote" /></a></h4>
441
+ <strong><a name="M000035">periodically_call_remote(options = {})</a></strong> <a href="#M000035"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: periodically_call_remote" /></a></h4>
442
442
 
443
443
  <p>
444
444
  Periodically calls the specified url (<tt>options[:url]</tt>) every
@@ -446,12 +446,12 @@ Periodically calls the specified url (<tt>options[:url]</tt>) every
446
446
  update a specified div (<tt>options[:update]</tt>) with the results of the
447
447
  remote call. The options for specifying the target with :url and defining
448
448
  callbacks is the same as <a
449
- href="JavaScriptView.html#M000032">link_to_remote</a>.
449
+ href="JavaScriptView.html#M000034">link_to_remote</a>.
450
450
  </p>
451
451
 
452
452
  <div class="sourcecode">
453
- <p class="source-link">[ <a href="javascript:toggleSource('M000033_source')" id="l_M000033_source">show source</a> ]</p>
454
- <div id="M000033_source" class="dyn-source">
453
+ <p class="source-link">[ <a href="javascript:toggleSource('M000035_source')" id="l_M000035_source">show source</a> ]</p>
454
+ <div id="M000035_source" class="dyn-source">
455
455
  <pre>
456
456
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 380</span>
457
457
  380: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">periodically_call_remote</span>(<span class="ruby-identifier">options</span> = {})
@@ -463,11 +463,11 @@ href="JavaScriptView.html#M000032">link_to_remote</a>.
463
463
  </div>
464
464
  </div>
465
465
  <h4 class="ruled">Public Instance method:
466
- <strong><a name="M000035">remote_function(options)</a></strong> <a href="#M000035"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: remote_function" /></a></h4>
466
+ <strong><a name="M000037">remote_function(options)</a></strong> <a href="#M000037"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: remote_function" /></a></h4>
467
467
 
468
468
  <p>
469
469
  Returns the JavaScript needed for a remote function. Takes the same
470
- arguments as <a href="JavaScriptView.html#M000032">link_to_remote</a>.
470
+ arguments as <a href="JavaScriptView.html#M000034">link_to_remote</a>.
471
471
  </p>
472
472
  <p>
473
473
  Example:
@@ -486,8 +486,8 @@ Example:
486
486
  </pre>
487
487
 
488
488
  <div class="sourcecode">
489
- <p class="source-link">[ <a href="javascript:toggleSource('M000035_source')" id="l_M000035_source">show source</a> ]</p>
490
- <div id="M000035_source" class="dyn-source">
489
+ <p class="source-link">[ <a href="javascript:toggleSource('M000037_source')" id="l_M000037_source">show source</a> ]</p>
490
+ <div id="M000037_source" class="dyn-source">
491
491
  <pre>
492
492
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 442</span>
493
493
  442: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remote_function</span>(<span class="ruby-identifier">options</span>)
@@ -521,7 +521,7 @@ Example:
521
521
  </div>
522
522
  </div>
523
523
  <h4 class="ruled">Public Instance method:
524
- <strong><a name="M000029">update_page( &amp;block )</a></strong> <a href="#M000029"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: update_page" /></a></h4>
524
+ <strong><a name="M000031">update_page( &amp;block )</a></strong> <a href="#M000031"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: update_page" /></a></h4>
525
525
 
526
526
  <p>
527
527
  Yields a <a href="../JavaScriptGenerator.html">JavaScriptGenerator</a> and
@@ -532,8 +532,8 @@ information.
532
532
  </p>
533
533
 
534
534
  <div class="sourcecode">
535
- <p class="source-link">[ <a href="javascript:toggleSource('M000029_source')" id="l_M000029_source">show source</a> ]</p>
536
- <div id="M000029_source" class="dyn-source">
535
+ <p class="source-link">[ <a href="javascript:toggleSource('M000031_source')" id="l_M000031_source">show source</a> ]</p>
536
+ <div id="M000031_source" class="dyn-source">
537
537
  <pre>
538
538
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 228</span>
539
539
  228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_page</span>( <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> )
@@ -543,18 +543,18 @@ information.
543
543
  </div>
544
544
  </div>
545
545
  <h4 class="ruled">Public Instance method:
546
- <strong><a name="M000030">update_page_tag( options = {}, &amp;block )</a></strong> <a href="#M000030"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: update_page_tag" /></a></h4>
546
+ <strong><a name="M000032">update_page_tag( options = {}, &amp;block )</a></strong> <a href="#M000032"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: update_page_tag" /></a></h4>
547
547
 
548
548
  <p>
549
- Works like <a href="JavaScriptView.html#M000029">update_page</a> but wraps
549
+ Works like <a href="JavaScriptView.html#M000031">update_page</a> but wraps
550
550
  the generated JavaScript in a &lt;script&gt; tag. See <a
551
551
  href="../JavaScriptGenerator.html">JavaScriptGenerator</a> for more
552
552
  information.
553
553
  </p>
554
554
 
555
555
  <div class="sourcecode">
556
- <p class="source-link">[ <a href="javascript:toggleSource('M000030_source')" id="l_M000030_source">show source</a> ]</p>
557
- <div id="M000030_source" class="dyn-source">
556
+ <p class="source-link">[ <a href="javascript:toggleSource('M000032_source')" id="l_M000032_source">show source</a> ]</p>
557
+ <div id="M000032_source" class="dyn-source">
558
558
  <pre>
559
559
  <span class="ruby-comment cmt"># File lib/bivouac/helpers/view/goh/javascript.rb, line 234</span>
560
560
  234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_page_tag</span>( <span class="ruby-identifier">options</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> )
data/doc/rdoc/created.rid CHANGED
@@ -1 +1 @@
1
- Thu, 20 Sep 2007 19:42:20 +0200
1
+ Thu, 11 Oct 2007 18:31:41 +0200
@@ -87,7 +87,7 @@ end</strong>
87
87
  <div id="README" class="page_shade">
88
88
  <div class="page">
89
89
  <div class="header">
90
- <div class="path">README / Wed Sep 19 09:25:49 +0200 2007</div>
90
+ <div class="path">README / Thu Oct 11 18:31:28 +0200 2007</div>
91
91
  </div>
92
92
 
93
93
  <h1>Bivouac</h1>
@@ -112,6 +112,35 @@ Bivouac is a simple generator for <a
112
112
  href="http://code.whytheluckystiff.net/camping">camping</a>.
113
113
  </p>
114
114
  <h2>FEATURES/PROBLEMS:</h2>
115
+ <h3>0.0.9:</h3>
116
+ <ul>
117
+ <li>Upgrade to simple-daemon &gt;=0.1.2
118
+
119
+ </li>
120
+ <li>Better migration support! And migrate is now migration ! That&#8216;s
121
+ better no ?
122
+
123
+ </li>
124
+ <li>Add MySQL, PostgreSQL, &#8230; support. See
125
+
126
+ <pre>
127
+ $ bivouac -h
128
+ </pre>
129
+ </li>
130
+ <li>Add tests support with <a
131
+ href="http://mosquito.rubyforge.org/">mosquito</a> :
132
+
133
+ <pre>
134
+ $ ruby script/generate test my_test_name
135
+ </pre>
136
+ <p>
137
+ To run a test, juste do :
138
+ </p>
139
+ <pre>
140
+ $ ruby test/test_my_test_name.rb
141
+ </pre>
142
+ </li>
143
+ </ul>
115
144
  <h3>0.0.8:</h3>
116
145
  <ul>
117
146
  <li>Bivouac now work with WEBrick &#8212; Bug correction
@@ -228,10 +257,7 @@ change <tt>do_GET(req, res)</tt> to <tt>do_GET(req, resp)</tt>
228
257
  href="http://code.whytheluckystiff.net/camping/wiki/MosquitoForBugFreeCamping">mosquito</a>
229
258
 
230
259
  </li>
231
- <li>test with Apache and Lighttpd
232
-
233
- </li>
234
- <li>add mysql, postgresql, oracle, &#8230; support
260
+ <li>more helpers&#8230;
235
261
 
236
262
  </li>
237
263
  </ul>
@@ -87,7 +87,7 @@ end</strong>
87
87
  <div id="lib/bivouac/helpers/view/goh/base.rb" class="page_shade">
88
88
  <div class="page">
89
89
  <div class="header">
90
- <div class="path">lib/bivouac/helpers/view/goh/base.rb / Thu Sep 06 14:25:18 +0200 2007</div>
90
+ <div class="path">lib/bivouac/helpers/view/goh/base.rb / Thu Oct 11 12:06:08 +0200 2007</div>
91
91
  </div>
92
92
 
93
93
  <p>
@@ -91,16 +91,16 @@
91
91
 
92
92
  }
93
93
  .source-link { text-align: right; font-size: 8pt; }
94
- .ruby-comment { color: green; font-style: italic }
95
- .ruby-constant { color: #CCDDFF; font-weight: bold; }
96
- .ruby-identifier { color: #CCCCCC; }
97
- .ruby-ivar { color: #BBCCFF; }
98
- .ruby-keyword { color: #EEEEFF; font-weight: bold }
94
+ .ruby-comment { color: black; font-style: italic }
95
+ .ruby-constant { color: #123456; font-weight: bold; }
96
+ .ruby-identifier { color: #005599; }
97
+ .ruby-ivar { color: orange; }
98
+ .ruby-keyword { color: red; font-weight: bold }
99
99
  .ruby-node { color: #FFFFFF; }
100
- .ruby-operator { color: #CCCCCC; }
100
+ .ruby-operator { color: #055005; }
101
101
  .ruby-regexp { color: #DDFFDD; }
102
102
  .ruby-value { color: #FFAAAA; font-style: italic }
103
- .kw { color: #DDDDFF; font-weight: bold }
104
- .cmt { color: #CCFFCC; font-style: italic }
103
+ .kw { color: red; font-weight: bold }
104
+ .cmt { color: green; font-style: italic }
105
105
  .str { color: #EECCCC; font-style: italic }
106
106
  .re { color: #EECCCC; }
@@ -7,6 +7,8 @@ require 'optparse'
7
7
  require 'ostruct'
8
8
  require 'bivouac/template'
9
9
  require 'active_support'
10
+ require 'active_record'
11
+ require 'find'
10
12
  require File.dirname($0) + '/../config/environment.rb'
11
13
 
12
14
  module Bivouac
@@ -14,17 +16,17 @@ module Bivouac
14
16
  include Bivouac::Template
15
17
 
16
18
  def initialize( argv )
17
- # Generator type (controller, model, migrate, view, ...)
19
+ # Generator type (controller, model, migration, view, ...)
18
20
  @generator_type = argv.shift
19
21
 
20
22
  # Generator options
21
- @options = OpenStruct.new( :noview => false, :default_route => true, :routes => [] )
23
+ @options = OpenStruct.new( :noview => false, :notest => false, :default_route => true, :routes => [] )
22
24
  @opts = OptionParser.new do |opts|
23
25
  opts.banner = "Usage: script/generate generator [options] [args]"
24
26
 
25
27
  opts.separator ""
26
28
  opts.separator "Generators"
27
- opts.separator " Builtin: controller, model, migrate, view, scaffold"
29
+ opts.separator " Builtin: controller, model, migration, view, test, scaffold"
28
30
 
29
31
  opts.separator ""
30
32
  opts.separator "controller generator options:"
@@ -49,7 +51,14 @@ module Bivouac
49
51
  end
50
52
  @options.routes = routes.split(',')
51
53
  }
52
-
54
+ opts.on("-t", "--no-test", "Do not generate any test for the controller") { |@options.notest|
55
+ if @generator_type != 'controller'
56
+ puts @opts
57
+ exit
58
+ end
59
+ @options.notest = true
60
+ }
61
+
53
62
  opts.separator ""
54
63
  opts.separator "Common options:"
55
64
  opts.on_tail("-h", "--help", "Show this message") do
@@ -82,8 +91,16 @@ module Bivouac
82
91
  # Application name for the generator, passed to the template
83
92
  @generation_app_name = @app.environment.appname
84
93
 
94
+ @generation_app_dir = @app.environment.appdir
95
+
85
96
  # Application organisation (goh, jof or erb)
86
97
  @generation_type = @app.environment.orgtype
98
+
99
+ # Database configuration
100
+ @database_configuration = @app.environment.db
101
+ if @database_configuration[:adapter] =~ /sqlite/
102
+ @database_configuration[:database] = File.expand_path( File.dirname( $0 ) + "/../" + @database_configuration[:database] )
103
+ end
87
104
  end
88
105
 
89
106
  def run
@@ -102,10 +119,10 @@ module Bivouac
102
119
  @destination_file = File.dirname( $0 ) + "/../app/controllers/" + @generation_file_name.underscore + ".rb"
103
120
  @generation_view_name = @generation_class_name.underscore
104
121
 
105
- default_route = '/' + @generation_view_name
122
+ default_route = @generation_view_name
106
123
  @options.routes << default_route if @options.default_route and @options.routes.include?( default_route ) == false
107
124
  @generation_routes = if @options.routes.size > 0
108
- " < R '" + @options.routes.join("', '") + "'"
125
+ " < R '/" + @options.routes.join("', '/") + "'"
109
126
  else
110
127
  ""
111
128
  end
@@ -115,14 +132,46 @@ module Bivouac
115
132
  end
116
133
 
117
134
  view( ) if @options.noview == false
135
+ test( ) if @options.notest == false
118
136
  end
119
137
 
120
- def migrate
138
+ def migration( from_model = false )
139
+ # Get old and new version
140
+ old_version = 0.0
141
+ begin
142
+ ActiveRecord::Base.establish_connection @database_configuration
143
+ conn = ActiveRecord::Base.connection
144
+ table = nil
145
+ conn.tables.each { |t| table = t if t =~ /_schema_infos$/ }
146
+ version_info = conn.select_all( "select * from #{table}" )
147
+ old_version = version_info[0]['version'].to_f
148
+ rescue
149
+ end
150
+ @new_version = old_version + 1
151
+
152
+ # Get prefix for file
153
+ files = []
154
+ Find.find( File.dirname( $0 ) + "/../db/migrate/" ) do |f|
155
+ fn = File.basename( f )
156
+ files << fn if fn =~ /^\d\d\d/
157
+ end
158
+ file_prefix = "001"
159
+ if files.size > 0
160
+ files = files.sort {|x,y| y[0,3] <=> x[0,3]}
161
+ file_prefix = sprintf( "%03d", (files[0][0,3].to_i + 1) )
162
+ end
163
+
164
+ puts "\t* Migration from version #{old_version} to version #{@new_version}" if old_version > 0.0
165
+
121
166
  @generation_table_name = (@generation_app_name.downcase + "_" + @generation_name).tableize
122
167
 
123
- @destination_file = File.dirname( $0 ) + "/../db/migrate/" + @generation_file_name.underscore + ".rb"
168
+ @destination_file = File.dirname( $0 ) + "/../db/migrate/" + file_prefix + "_" + @generation_file_name.underscore + ".rb"
124
169
  createFile( @destination_file ) do |io|
125
- io.puts template( "generate/migrate", binding )
170
+ if from_model
171
+ io.puts template( "generate/migrate", binding )
172
+ else
173
+ io.puts template( "generate/migration", binding )
174
+ end
126
175
  end
127
176
 
128
177
  @destination_file = File.dirname( $0 ) + "/../db/create.rb"
@@ -137,7 +186,7 @@ module Bivouac
137
186
  io.puts template( "generate/model", binding )
138
187
  end
139
188
 
140
- migrate( )
189
+ migration( true )
141
190
  end
142
191
 
143
192
  def view
@@ -153,6 +202,17 @@ module Bivouac
153
202
  end
154
203
  end
155
204
 
205
+ def test
206
+ @destination_file = File.dirname( $0 ) + "/../test/test_" + @generation_file_name.underscore + ".rb"
207
+ createFile( @destination_file ) do |io|
208
+ io.puts template( "generate/test_begin", binding )
209
+ @options.routes.each do |@test_route|
210
+ io.puts template( "generate/test_views", binding )
211
+ end
212
+ io.puts template( "generate/test_end", binding )
213
+ end
214
+ end
215
+
156
216
  def scaffold
157
217
  @generation_view_name = @generation_class_name.underscore
158
218
 
@@ -12,5 +12,24 @@ module BivouacHelpers
12
12
  end
13
13
  self.send( partial.to_sym )
14
14
  end
15
+
16
+ alias_method :partial, :render
17
+
18
+ # Return the content of a public file as string
19
+ #
20
+ # public_to_str( "/stylesheets/autocomplete.css" )
21
+ # #=> "div.autocomplete {\n position:absolute;\n..."
22
+ def public_to_str( file )
23
+ if file.include? ".."
24
+ return nil
25
+ end
26
+
27
+ file = ENV['BIVOUAC_ROOT'] + "/public/" + file
28
+ open( file ) do |f|
29
+ data = f.read
30
+ end
31
+
32
+ return data
33
+ end
15
34
  end
16
35
  end
@@ -8,14 +8,20 @@
8
8
  require 'simple-daemon'
9
9
 
10
10
  DIRNAME = File.expand_path( File.dirname(__FILE__) )
11
- SimpleDaemon::WorkingDirectory = DIRNAME + "/../log/"
11
+ SimpleDaemon::WORKING_DIRECTORY = DIRNAME + "/../log/"
12
+
12
13
  class <%= @appname %>Daemon < SimpleDaemon::Base
13
14
  @@server = nil
14
15
 
15
16
  def self.start
16
17
  config = Bivouac::Environment.new( )
17
18
 
18
- <%= @appname %>::Models::Base.establish_connection :adapter => 'sqlite3', :database => DIRNAME + "/../db/<%= @appname %>.db"
19
+ database_connection = config.environment.db
20
+ if database_connection[:adapter] =~ /sqlite/
21
+ database_connection[:database] = DIRNAME + "/../" + database_connection[:database]
22
+ end
23
+ <%= @appname %>::Models::Base.establish_connection database_connection
24
+ # :adapter => 'sqlite3', :database => DIRNAME + "/../db/<%= @appname %>.db"
19
25
  <%= @appname %>::Models::Base.logger = Logger.new(DIRNAME + "/../log/<%= @appname %>.log")
20
26
  <%= @appname %>::Models::Base.threaded_connections = false
21
27
  <%= @appname %>.create if <%= @appname %>.respond_to? :create
@@ -20,6 +20,9 @@ module Bivouac
20
20
  # Application port
21
21
  :port => <%= @conf.port %>,
22
22
 
23
+ # Database configuration
24
+ :db => <%= @conf.db %>,
25
+
23
26
  # Name of the application
24
27
  # DO NOT CHANGE IT, OR YOU REALLY KNOW WHAT YOU ARE DOING!
25
28
  :appname => "<%= @conf.appname %>",
@@ -4,5 +4,6 @@ end
4
4
 
5
5
  def <%= @generation_app_name %>.create
6
6
  Camping::Models::Session.create_schema
7
- <%= @generation_app_name %>::Models.create_schema :assume => (<%= @generation_app_name %>::Models::<%= @generation_class_name %>.table_exists? ? 1.0 : 0.0)
7
+ <%= @generation_app_name %>::Models.create_schema
8
+ # :assume => (<%= @generation_app_name %>::Models::<%= @generation_class_name %>.table_exists? ? 1.0 : 0.0)
8
9
  end
@@ -1,11 +1,12 @@
1
1
  module <%= @generation_app_name %>::Models
2
- class Create<%= @generation_class_name %> < V 1.0
2
+ class Create<%= @generation_class_name %> < V <%= @new_version %>
3
3
  def self.up
4
4
  create_table :<%= @generation_table_name %> do |t|
5
5
  t.column :id, :integer, :null => false
6
6
  # ...
7
7
  end
8
8
  end
9
+
9
10
  def self.down
10
11
  drop_table :<%= @generation_table_name %>
11
12
  end
@@ -0,0 +1,9 @@
1
+ module <%= @generation_app_name %>::Models
2
+ class <%= @generation_class_name %> < V <%= @new_version %>
3
+ def self.up
4
+ end
5
+
6
+ def self.down
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'mosquito'
3
+
4
+ ENV['BIVOUAC_ROOT'] = File.expand_path( File.dirname(__FILE__) + "/../" )
5
+ require ENV['BIVOUAC_ROOT'] + "/app/<%= @generation_app_dir %>"
6
+
7
+ <%= @generation_app_name %>.create if <%= @generation_app_name %>.respond_to? :create
8
+ include <%= @generation_app_name %>::Models
9
+
10
+ class Test<%= @generation_app_name %> < Camping::FunctionalTest
@@ -0,0 +1 @@
1
+ end
@@ -0,0 +1,4 @@
1
+ def test_<%= @test_route %>
2
+ get '/<%= @test_route %>'
3
+ assert_response :success
4
+ end
@@ -2,4 +2,5 @@
2
2
  require 'rubygems'
3
3
  app = File.dirname(__FILE__) + "/../app/<%= @conf.appdir %>.rb"
4
4
 
5
+ ENV['BIVOUAC_ROOT'] = File.expand_path( File.dirname(__FILE__) + "/../" )
5
6
  system "ruby #{app} #{ARGV.join(' ')}"
data/lib/bivouac.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  module Bivouac
2
2
  def files( xPath, *options, &block )
3
3
  path = File.dirname($0) + "/" + xPath.to_s + "/*.rb"
4
+ if ENV['BIVOUAC_ROOT']
5
+ path = ENV['BIVOUAC_ROOT'] + "/app/" + xPath.to_s + "/*.rb"
6
+ end
4
7
 
5
8
  Dir[path].each do |file|
6
9
  if options[0]
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: bivouac
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.8
7
- date: 2007-09-20 00:00:00 +02:00
6
+ version: 0.0.9
7
+ date: 2007-10-11 00:00:00 +02:00
8
8
  summary: Developpe with Camping like you do with Rails
9
9
  require_paths:
10
10
  - lib
@@ -93,6 +93,7 @@ files:
93
93
  - lib/bivouac/template/generate/controller.rb
94
94
  - lib/bivouac/template/generate/create.rb
95
95
  - lib/bivouac/template/generate/migrate.rb
96
+ - lib/bivouac/template/generate/migration.rb
96
97
  - lib/bivouac/template/generate/model.rb
97
98
  - lib/bivouac/template/generate/scaffold_controller_create.rb
98
99
  - lib/bivouac/template/generate/scaffold_controller_list.rb
@@ -103,6 +104,9 @@ files:
103
104
  - lib/bivouac/template/generate/scaffold_view_list_goh.rb
104
105
  - lib/bivouac/template/generate/scaffold_view_view_erb.rb
105
106
  - lib/bivouac/template/generate/scaffold_view_view_goh.rb
107
+ - lib/bivouac/template/generate/test_begin.rb
108
+ - lib/bivouac/template/generate/test_end.rb
109
+ - lib/bivouac/template/generate/test_views.rb
106
110
  - lib/bivouac/template/generate/view_erb.rb
107
111
  - lib/bivouac/template/generate/view_goh.rb
108
112
  - lib/bivouac/template/generate.rb
@@ -350,5 +354,14 @@ dependencies:
350
354
  requirements:
351
355
  - - ">="
352
356
  - !ruby/object:Gem::Version
353
- version: 0.1.1
357
+ version: 0.1.2
358
+ version:
359
+ - !ruby/object:Gem::Dependency
360
+ name: mosquito
361
+ version_requirement:
362
+ version_requirements: !ruby/object:Gem::Version::Requirement
363
+ requirements:
364
+ - - ">"
365
+ - !ruby/object:Gem::Version
366
+ version: 0.0.0
354
367
  version: