bivouac 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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: