stage 0.2.0 → 0.3.1
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/History.txt +6 -0
- data/Manifest.txt +17 -0
- data/README.txt +5 -5
- data/lib/stage/version.rb +2 -2
- data/rails_generators/stage/USAGE +5 -0
- data/rails_generators/stage/stage_generator.rb +99 -0
- data/rails_generators/stage/templates/controller.rb +85 -0
- data/rails_generators/stage/templates/data_partial.html.erb +6 -0
- data/rails_generators/stage/templates/form_partial.html.erb +11 -0
- data/rails_generators/stage/templates/helper.rb +12 -0
- data/rails_generators/stage/templates/layout.html.erb +17 -0
- data/rails_generators/stage/templates/migration.rb +16 -0
- data/rails_generators/stage/templates/model.rb +2 -0
- data/rails_generators/stage/templates/view_edit.html.erb +6 -0
- data/rails_generators/stage/templates/view_index.html.erb +24 -0
- data/rails_generators/stage/templates/view_new.html.erb +5 -0
- data/rails_generators/stage/templates/view_show.html.erb +4 -0
- data/test/test_generator_helper.rb +10 -1
- data/test/test_stage_generator.rb +8 -6
- data/website/index.html +5 -155
- data/website/index.txt +5 -147
- data/website/merb.html +244 -0
- data/website/merb.txt +173 -0
- data/website/rails.html +275 -0
- data/website/rails.txt +204 -0
- metadata +21 -2
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>stage</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/stage"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/stage" class="numbers">0.
|
36
|
+
<a href="http://rubyforge.org/projects/stage" class="numbers">0.3.1</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘stage’</h1>
|
39
39
|
|
@@ -41,163 +41,13 @@
|
|
41
41
|
<h2>What</h2>
|
42
42
|
|
43
43
|
|
44
|
-
<p>Stage is a code template generator that utilizes helpers as presenters to reduce ruby code used in views.
|
44
|
+
<p>Stage is a code template generator that utilizes helpers as presenters to reduce ruby code used in views. Of course, contributions are welcome if you like the concept. I would especially like to hear of any code reduction suggestions.</p>
|
45
45
|
|
46
46
|
|
47
|
-
<h2>
|
48
|
-
|
49
|
-
|
50
|
-
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">stage</span></pre></p>
|
47
|
+
<h2><a href="merb.html">Merb Instructions</a></h2>
|
51
48
|
|
52
49
|
|
53
|
-
<h2>
|
54
|
-
|
55
|
-
|
56
|
-
<p><pre class='syntax'>
|
57
|
-
<span class="global">$ </span><span class="ident">merb</span><span class="punct">-</span><span class="ident">gen</span> <span class="ident">stage</span> <span class="ident">page</span> <span class="ident">title</span><span class="symbol">:string</span> <span class="ident">content</span><span class="symbol">:text</span>
|
58
|
-
<span class="ident">exists</span> <span class="ident">app</span>
|
59
|
-
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">controllers</span>
|
60
|
-
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">helpers</span>
|
61
|
-
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">models</span>
|
62
|
-
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span>
|
63
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span>
|
64
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">controllers</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">.</span><span class="ident">rb</span>
|
65
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">helpers</span><span class="punct">/</span><span class="ident">pages_helper</span><span class="punct">.</span><span class="ident">rb</span>
|
66
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">models</span><span class="punct">/</span><span class="ident">page</span><span class="punct">.</span><span class="ident">rb</span>
|
67
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">_data</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
68
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">_form</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
69
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">edit</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
70
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">index</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
71
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">new</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
72
|
-
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">show</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
73
|
-
</pre></p>
|
74
|
-
|
75
|
-
|
76
|
-
<p>The controller generated:
|
77
|
-
<pre class='syntax'>
|
78
|
-
<span class="keyword">class </span><span class="class">Pages</span> <span class="punct"><</span> <span class="constant">Application</span>
|
79
|
-
<span class="ident">before</span> <span class="symbol">:find_page</span><span class="punct">,</span> <span class="symbol">:only</span> <span class="punct">=></span> <span class="punct">[</span><span class="symbol">:show</span><span class="punct">,</span> <span class="symbol">:edit</span><span class="punct">,</span> <span class="symbol">:update</span><span class="punct">,</span> <span class="symbol">:delete</span><span class="punct">]</span>
|
80
|
-
|
81
|
-
<span class="keyword">def </span><span class="method">index</span>
|
82
|
-
<span class="attribute">@pages</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">all</span>
|
83
|
-
<span class="ident">display</span> <span class="attribute">@pages</span>
|
84
|
-
<span class="keyword">end</span>
|
85
|
-
|
86
|
-
<span class="keyword">def </span><span class="method">show</span>
|
87
|
-
<span class="ident">display</span> <span class="attribute">@page</span>
|
88
|
-
<span class="keyword">end</span>
|
89
|
-
|
90
|
-
<span class="keyword">def </span><span class="method">new</span>
|
91
|
-
<span class="ident">only_provides</span> <span class="symbol">:html</span>
|
92
|
-
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">new</span>
|
93
|
-
<span class="ident">render</span>
|
94
|
-
<span class="keyword">end</span>
|
95
|
-
|
96
|
-
<span class="keyword">def </span><span class="method">edit</span>
|
97
|
-
<span class="ident">only_provides</span> <span class="symbol">:html</span>
|
98
|
-
<span class="ident">render</span>
|
99
|
-
<span class="keyword">end</span>
|
100
|
-
|
101
|
-
<span class="keyword">def </span><span class="method">create</span>
|
102
|
-
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:page</span><span class="punct">])</span>
|
103
|
-
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">save</span>
|
104
|
-
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="attribute">@page</span><span class="punct">)</span>
|
105
|
-
<span class="keyword">else</span>
|
106
|
-
<span class="ident">render</span> <span class="symbol">:new</span>
|
107
|
-
<span class="keyword">end</span>
|
108
|
-
<span class="keyword">end</span>
|
109
|
-
|
110
|
-
<span class="keyword">def </span><span class="method">update</span>
|
111
|
-
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">update_attributes</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:page</span><span class="punct">])</span>
|
112
|
-
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="attribute">@page</span><span class="punct">)</span>
|
113
|
-
<span class="keyword">else</span>
|
114
|
-
<span class="keyword">raise</span> <span class="constant">BadRequest</span>
|
115
|
-
<span class="keyword">end</span>
|
116
|
-
<span class="keyword">end</span>
|
117
|
-
|
118
|
-
<span class="keyword">def </span><span class="method">delete</span>
|
119
|
-
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">destroy!</span>
|
120
|
-
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">)</span>
|
121
|
-
<span class="keyword">else</span>
|
122
|
-
<span class="keyword">raise</span> <span class="constant">BadRequest</span>
|
123
|
-
<span class="keyword">end</span>
|
124
|
-
<span class="keyword">end</span>
|
125
|
-
|
126
|
-
<span class="ident">private</span>
|
127
|
-
<span class="keyword">def </span><span class="method">find_page</span>
|
128
|
-
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">first</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:id</span><span class="punct">])</span>
|
129
|
-
<span class="keyword">raise</span> <span class="constant">NotFound</span> <span class="keyword">unless</span> <span class="attribute">@page</span>
|
130
|
-
<span class="keyword">end</span>
|
131
|
-
<span class="keyword">end</span>
|
132
|
-
</pre></p>
|
133
|
-
|
134
|
-
|
135
|
-
<p>The edit page:
|
136
|
-
<pre class='syntax'>
|
137
|
-
<span class="punct"><</span><span class="ident">h1</span><span class="punct">></span><span class="constant">Editing</span> <span class="ident">page</span><span class="punct"></</span><span class="regex">h1>
|
138
|
-
|
139
|
-
<%= partial "form" %>
|
140
|
-
|
141
|
-
<%= link_to 'Show', url(:page, @page) %> |
|
142
|
-
<%= link_to 'Back', url(:pages) %><span class="normal">
|
143
|
-
</span></span></pre></p>
|
144
|
-
|
145
|
-
|
146
|
-
<p>The form partial:
|
147
|
-
<pre class='syntax'>
|
148
|
-
<span class="punct"><%</span>
|
149
|
-
<span class="ident">submit_label</span> <span class="punct">=</span> <span class="punct">"</span><span class="string">Update</span><span class="punct">"</span>
|
150
|
-
<span class="ident">submit_label</span> <span class="punct">=</span> <span class="punct">"</span><span class="string">Create</span><span class="punct">"</span> <span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">new_record?</span>
|
151
|
-
<span class="punct">-%></span><span class="string">
|
152
|
-
|
153
|
-
<%= error_messages_for @page %</span><span class="punct">></span>
|
154
|
-
|
155
|
-
<span class="punct"><%</span> <span class="ident">form_for</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="symbol">:action</span> <span class="punct">=></span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span><span class="attribute">@page</span><span class="punct">))</span> <span class="keyword">do</span> <span class="punct">%></span><span class="string">
|
156
|
-
<%= partial :data %</span><span class="punct">></span>
|
157
|
-
<span class="punct"><</span><span class="ident">p</span><span class="punct">></span> <span class="punct"><%=</span><span class="string"> submit_button submit_label %> </p>
|
158
|
-
<% end %><span class="normal">
|
159
|
-
</span></span></pre></p>
|
160
|
-
|
161
|
-
|
162
|
-
<p>The data partial (the show view calls this directly):
|
163
|
-
<pre class='syntax'>
|
164
|
-
<span class="punct"><</span><span class="ident">p</span><span class="punct">></span>
|
165
|
-
<span class="punct"><</span><span class="ident">b</span><span class="punct">></span><span class="constant">Title</span><span class="punct"></</span><span class="regex">b><br </span><span class="punct">/></span>
|
166
|
-
<span class="punct"><%=</span><span class="string"> page_title_value %>
|
167
|
-
</p>
|
168
|
-
|
169
|
-
<p>
|
170
|
-
<b>Content</b><br />
|
171
|
-
<%</span><span class="punct">=</span> <span class="ident">page_content_value</span> <span class="punct">%></span><span class="string">
|
172
|
-
</p</span><span class="punct">></span>
|
173
|
-
</pre></p>
|
174
|
-
|
175
|
-
|
176
|
-
<p>As you can see, there are <model>_<field>_value methods. These are defined in the pages helper:
|
177
|
-
<pre class='syntax'>
|
178
|
-
<span class="keyword">module </span><span class="module">Merb</span>
|
179
|
-
<span class="keyword">module </span><span class="module">PagesHelper</span>
|
180
|
-
<span class="keyword">def </span><span class="method">page_title_value</span>
|
181
|
-
<span class="keyword">if</span> <span class="attribute">@action_name</span> <span class="punct">==</span> <span class="punct">"</span><span class="string">show</span><span class="punct">"</span>
|
182
|
-
<span class="attribute">@page</span><span class="punct">.</span><span class="ident">title</span>
|
183
|
-
<span class="keyword">else</span>
|
184
|
-
<span class="ident">text_field</span> <span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">page[title]</span><span class="punct">",</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">title</span>
|
185
|
-
<span class="keyword">end</span>
|
186
|
-
<span class="keyword">end</span>
|
187
|
-
|
188
|
-
<span class="keyword">def </span><span class="method">page_content_value</span>
|
189
|
-
<span class="keyword">if</span> <span class="attribute">@action_name</span> <span class="punct">==</span> <span class="punct">"</span><span class="string">show</span><span class="punct">"</span>
|
190
|
-
<span class="attribute">@page</span><span class="punct">.</span><span class="ident">content</span>
|
191
|
-
<span class="keyword">else</span>
|
192
|
-
<span class="ident">text_field</span> <span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">page[content]</span><span class="punct">",</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">content</span>
|
193
|
-
<span class="keyword">end</span>
|
194
|
-
<span class="keyword">end</span>
|
195
|
-
<span class="keyword">end</span>
|
196
|
-
<span class="keyword">end</span>
|
197
|
-
</pre></p>
|
198
|
-
|
199
|
-
|
200
|
-
<p>I need to get more precise with the form helpers, but for now this will do.</p>
|
50
|
+
<h2><a href="rails.html">Rails Instructions</a></h2>
|
201
51
|
|
202
52
|
|
203
53
|
<h2>Forum</h2>
|
@@ -229,7 +79,7 @@
|
|
229
79
|
|
230
80
|
<p>Comments and suggestions are welcome via the <a href="http://groups.google.com/group/stonean_stage?hl=en">forum</a></p>
|
231
81
|
<p class="coda">
|
232
|
-
|
82
|
+
26th April 2008<br>
|
233
83
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
234
84
|
</p>
|
235
85
|
</div>
|
data/website/index.txt
CHANGED
@@ -5,153 +5,11 @@ h1. → 'stage'
|
|
5
5
|
|
6
6
|
h2. What
|
7
7
|
|
8
|
-
Stage is a code template generator that utilizes helpers as presenters to reduce ruby code used in views.
|
9
|
-
|
10
|
-
h2.
|
11
|
-
|
12
|
-
<
|
13
|
-
|
14
|
-
h2. Demonstration of usage
|
15
|
-
|
16
|
-
<pre syntax="ruby">
|
17
|
-
$ merb-gen stage page title:string content:text
|
18
|
-
exists app
|
19
|
-
exists app/controllers
|
20
|
-
exists app/helpers
|
21
|
-
exists app/models
|
22
|
-
exists app/views
|
23
|
-
create app/views/pages
|
24
|
-
create app/controllers/pages.rb
|
25
|
-
create app/helpers/pages_helper.rb
|
26
|
-
create app/models/page.rb
|
27
|
-
create app/views/pages/_data.html.erb
|
28
|
-
create app/views/pages/_form.html.erb
|
29
|
-
create app/views/pages/edit.html.erb
|
30
|
-
create app/views/pages/index.html.erb
|
31
|
-
create app/views/pages/new.html.erb
|
32
|
-
create app/views/pages/show.html.erb
|
33
|
-
</pre>
|
34
|
-
|
35
|
-
The controller generated:
|
36
|
-
<pre syntax="ruby">
|
37
|
-
class Pages < Application
|
38
|
-
before :find_page, :only => [:show, :edit, :update, :delete]
|
39
|
-
|
40
|
-
def index
|
41
|
-
@pages = Page.all
|
42
|
-
display @pages
|
43
|
-
end
|
44
|
-
|
45
|
-
def show
|
46
|
-
display @page
|
47
|
-
end
|
48
|
-
|
49
|
-
def new
|
50
|
-
only_provides :html
|
51
|
-
@page = Page.new
|
52
|
-
render
|
53
|
-
end
|
54
|
-
|
55
|
-
def edit
|
56
|
-
only_provides :html
|
57
|
-
render
|
58
|
-
end
|
59
|
-
|
60
|
-
def create
|
61
|
-
@page = Page.new(params[:page])
|
62
|
-
if @page.save
|
63
|
-
redirect url(:page, @page)
|
64
|
-
else
|
65
|
-
render :new
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def update
|
70
|
-
if @page.update_attributes(params[:page])
|
71
|
-
redirect url(:page, @page)
|
72
|
-
else
|
73
|
-
raise BadRequest
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def delete
|
78
|
-
if @page.destroy!
|
79
|
-
redirect url(:page)
|
80
|
-
else
|
81
|
-
raise BadRequest
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
private
|
86
|
-
def find_page
|
87
|
-
@page = Page.first(params[:id])
|
88
|
-
raise NotFound unless @page
|
89
|
-
end
|
90
|
-
end
|
91
|
-
</pre>
|
92
|
-
|
93
|
-
The edit page:
|
94
|
-
<pre syntax="ruby">
|
95
|
-
<h1>Editing page</h1>
|
96
|
-
|
97
|
-
<%= partial "form" %>
|
98
|
-
|
99
|
-
<%= link_to 'Show', url(:page, @page) %> |
|
100
|
-
<%= link_to 'Back', url(:pages) %>
|
101
|
-
</pre>
|
102
|
-
|
103
|
-
The form partial:
|
104
|
-
<pre syntax="ruby">
|
105
|
-
<%
|
106
|
-
submit_label = "Update"
|
107
|
-
submit_label = "Create" if @page.new_record?
|
108
|
-
-%>
|
109
|
-
|
110
|
-
<%= error_messages_for @page %>
|
111
|
-
|
112
|
-
<% form_for(:page, :action => url(:page,@page)) do %>
|
113
|
-
<%= partial :data %>
|
114
|
-
<p> <%= submit_button submit_label %> </p>
|
115
|
-
<% end %>
|
116
|
-
</pre>
|
117
|
-
|
118
|
-
The data partial (the show view calls this directly):
|
119
|
-
<pre syntax="ruby">
|
120
|
-
<p>
|
121
|
-
<b>Title</b><br />
|
122
|
-
<%= page_title_value %>
|
123
|
-
</p>
|
124
|
-
|
125
|
-
<p>
|
126
|
-
<b>Content</b><br />
|
127
|
-
<%= page_content_value %>
|
128
|
-
</p>
|
129
|
-
</pre>
|
130
|
-
|
131
|
-
As you can see, there are <model>_<field>_value methods. These are defined in the pages helper:
|
132
|
-
<pre syntax="ruby">
|
133
|
-
module Merb
|
134
|
-
module PagesHelper
|
135
|
-
def page_title_value
|
136
|
-
if @action_name == "show"
|
137
|
-
@page.title
|
138
|
-
else
|
139
|
-
text_field :name => "page[title]", :value => @page.title
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
def page_content_value
|
144
|
-
if @action_name == "show"
|
145
|
-
@page.content
|
146
|
-
else
|
147
|
-
text_field :name => "page[content]", :value => @page.content
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
</pre>
|
153
|
-
|
154
|
-
I need to get more precise with the form helpers, but for now this will do.
|
8
|
+
Stage is a code template generator that utilizes helpers as presenters to reduce ruby code used in views. Of course, contributions are welcome if you like the concept. I would especially like to hear of any code reduction suggestions.
|
9
|
+
|
10
|
+
h2. <a href="merb.html">Merb Instructions</a>
|
11
|
+
|
12
|
+
h2. <a href="rails.html">Rails Instructions</a>
|
155
13
|
|
156
14
|
h2. Forum
|
157
15
|
|
data/website/merb.html
ADDED
@@ -0,0 +1,244 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
stage
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>stage</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/stage"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/stage" class="numbers">0.3.1</a>
|
37
|
+
</div>
|
38
|
+
<h1>→ ‘stage’</h1>
|
39
|
+
|
40
|
+
|
41
|
+
<h2>Merb Instructions</h2>
|
42
|
+
|
43
|
+
|
44
|
+
<h2>Installing</h2>
|
45
|
+
|
46
|
+
|
47
|
+
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">stage</span></pre></p>
|
48
|
+
|
49
|
+
|
50
|
+
<h2>Demonstration of usage</h2>
|
51
|
+
|
52
|
+
|
53
|
+
<p><pre class='syntax'>
|
54
|
+
<span class="global">$ </span><span class="ident">merb</span><span class="punct">-</span><span class="ident">gen</span> <span class="ident">stage</span> <span class="ident">page</span> <span class="ident">title</span><span class="symbol">:string</span> <span class="ident">content</span><span class="symbol">:text</span>
|
55
|
+
<span class="ident">exists</span> <span class="ident">app</span>
|
56
|
+
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">controllers</span>
|
57
|
+
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">helpers</span>
|
58
|
+
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">models</span>
|
59
|
+
<span class="ident">exists</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span>
|
60
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span>
|
61
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">controllers</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">.</span><span class="ident">rb</span>
|
62
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">helpers</span><span class="punct">/</span><span class="ident">pages_helper</span><span class="punct">.</span><span class="ident">rb</span>
|
63
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">models</span><span class="punct">/</span><span class="ident">page</span><span class="punct">.</span><span class="ident">rb</span>
|
64
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">_data</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
65
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">_form</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
66
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">edit</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
67
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">index</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
68
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">new</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
69
|
+
<span class="ident">create</span> <span class="ident">app</span><span class="punct">/</span><span class="ident">views</span><span class="punct">/</span><span class="ident">pages</span><span class="punct">/</span><span class="ident">show</span><span class="punct">.</span><span class="ident">html</span><span class="punct">.</span><span class="ident">erb</span>
|
70
|
+
</pre></p>
|
71
|
+
|
72
|
+
|
73
|
+
<p>The controller generated:
|
74
|
+
<pre class='syntax'>
|
75
|
+
<span class="keyword">class </span><span class="class">Pages</span> <span class="punct"><</span> <span class="constant">Application</span>
|
76
|
+
<span class="ident">before</span> <span class="symbol">:find_page</span><span class="punct">,</span> <span class="symbol">:only</span> <span class="punct">=></span> <span class="punct">[</span><span class="symbol">:show</span><span class="punct">,</span> <span class="symbol">:edit</span><span class="punct">,</span> <span class="symbol">:update</span><span class="punct">,</span> <span class="symbol">:delete</span><span class="punct">]</span>
|
77
|
+
|
78
|
+
<span class="keyword">def </span><span class="method">index</span>
|
79
|
+
<span class="attribute">@pages</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">all</span>
|
80
|
+
<span class="ident">display</span> <span class="attribute">@pages</span>
|
81
|
+
<span class="keyword">end</span>
|
82
|
+
|
83
|
+
<span class="keyword">def </span><span class="method">show</span>
|
84
|
+
<span class="ident">display</span> <span class="attribute">@page</span>
|
85
|
+
<span class="keyword">end</span>
|
86
|
+
|
87
|
+
<span class="keyword">def </span><span class="method">new</span>
|
88
|
+
<span class="ident">only_provides</span> <span class="symbol">:html</span>
|
89
|
+
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">new</span>
|
90
|
+
<span class="ident">render</span>
|
91
|
+
<span class="keyword">end</span>
|
92
|
+
|
93
|
+
<span class="keyword">def </span><span class="method">edit</span>
|
94
|
+
<span class="ident">only_provides</span> <span class="symbol">:html</span>
|
95
|
+
<span class="ident">render</span>
|
96
|
+
<span class="keyword">end</span>
|
97
|
+
|
98
|
+
<span class="keyword">def </span><span class="method">create</span>
|
99
|
+
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:page</span><span class="punct">])</span>
|
100
|
+
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">save</span>
|
101
|
+
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="attribute">@page</span><span class="punct">)</span>
|
102
|
+
<span class="keyword">else</span>
|
103
|
+
<span class="ident">render</span> <span class="symbol">:new</span>
|
104
|
+
<span class="keyword">end</span>
|
105
|
+
<span class="keyword">end</span>
|
106
|
+
|
107
|
+
<span class="keyword">def </span><span class="method">update</span>
|
108
|
+
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">update_attributes</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:page</span><span class="punct">])</span>
|
109
|
+
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="attribute">@page</span><span class="punct">)</span>
|
110
|
+
<span class="keyword">else</span>
|
111
|
+
<span class="keyword">raise</span> <span class="constant">BadRequest</span>
|
112
|
+
<span class="keyword">end</span>
|
113
|
+
<span class="keyword">end</span>
|
114
|
+
|
115
|
+
<span class="keyword">def </span><span class="method">delete</span>
|
116
|
+
<span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">destroy!</span>
|
117
|
+
<span class="ident">redirect</span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">)</span>
|
118
|
+
<span class="keyword">else</span>
|
119
|
+
<span class="keyword">raise</span> <span class="constant">BadRequest</span>
|
120
|
+
<span class="keyword">end</span>
|
121
|
+
<span class="keyword">end</span>
|
122
|
+
|
123
|
+
<span class="ident">private</span>
|
124
|
+
<span class="keyword">def </span><span class="method">find_page</span>
|
125
|
+
<span class="attribute">@page</span> <span class="punct">=</span> <span class="constant">Page</span><span class="punct">.</span><span class="ident">first</span><span class="punct">(</span><span class="ident">params</span><span class="punct">[</span><span class="symbol">:id</span><span class="punct">])</span>
|
126
|
+
<span class="keyword">raise</span> <span class="constant">NotFound</span> <span class="keyword">unless</span> <span class="attribute">@page</span>
|
127
|
+
<span class="keyword">end</span>
|
128
|
+
<span class="keyword">end</span>
|
129
|
+
</pre></p>
|
130
|
+
|
131
|
+
|
132
|
+
<p>The edit page:
|
133
|
+
<pre class='syntax'>
|
134
|
+
<span class="punct"><</span><span class="ident">h1</span><span class="punct">></span><span class="constant">Editing</span> <span class="ident">page</span><span class="punct"></</span><span class="regex">h1>
|
135
|
+
|
136
|
+
<%= partial "form" %>
|
137
|
+
|
138
|
+
<%= link_to 'Show', url(:page, @page) %> |
|
139
|
+
<%= link_to 'Back', url(:pages) %><span class="normal">
|
140
|
+
</span></span></pre></p>
|
141
|
+
|
142
|
+
|
143
|
+
<p>The form partial:
|
144
|
+
<pre class='syntax'>
|
145
|
+
<span class="punct"><%</span>
|
146
|
+
<span class="ident">submit_label</span> <span class="punct">=</span> <span class="punct">"</span><span class="string">Update</span><span class="punct">"</span>
|
147
|
+
<span class="ident">submit_label</span> <span class="punct">=</span> <span class="punct">"</span><span class="string">Create</span><span class="punct">"</span> <span class="keyword">if</span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">new_record?</span>
|
148
|
+
<span class="punct">-%></span><span class="string">
|
149
|
+
|
150
|
+
<%= error_messages_for @page %</span><span class="punct">></span>
|
151
|
+
|
152
|
+
<span class="punct"><%</span> <span class="ident">form_for</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span> <span class="symbol">:action</span> <span class="punct">=></span> <span class="ident">url</span><span class="punct">(</span><span class="symbol">:page</span><span class="punct">,</span><span class="attribute">@page</span><span class="punct">))</span> <span class="keyword">do</span> <span class="punct">%></span><span class="string">
|
153
|
+
<%= partial :data %</span><span class="punct">></span>
|
154
|
+
<span class="punct"><</span><span class="ident">p</span><span class="punct">></span> <span class="punct"><%=</span><span class="string"> submit_button submit_label %> </p>
|
155
|
+
<% end %><span class="normal">
|
156
|
+
</span></span></pre></p>
|
157
|
+
|
158
|
+
|
159
|
+
<p>The data partial (the show view calls this directly):
|
160
|
+
<pre class='syntax'>
|
161
|
+
<span class="punct"><</span><span class="ident">p</span><span class="punct">></span>
|
162
|
+
<span class="punct"><</span><span class="ident">b</span><span class="punct">></span><span class="constant">Title</span><span class="punct"></</span><span class="regex">b><br </span><span class="punct">/></span>
|
163
|
+
<span class="punct"><%=</span><span class="string"> page_title_value %>
|
164
|
+
</p>
|
165
|
+
|
166
|
+
<p>
|
167
|
+
<b>Content</b><br />
|
168
|
+
<%</span><span class="punct">=</span> <span class="ident">page_content_value</span> <span class="punct">%></span><span class="string">
|
169
|
+
</p</span><span class="punct">></span>
|
170
|
+
</pre></p>
|
171
|
+
|
172
|
+
|
173
|
+
<p>As you can see, there are <model>_<field>_value methods. These are defined in the pages helper:
|
174
|
+
<pre class='syntax'>
|
175
|
+
<span class="keyword">module </span><span class="module">Merb</span>
|
176
|
+
<span class="keyword">module </span><span class="module">PagesHelper</span>
|
177
|
+
<span class="keyword">def </span><span class="method">page_title_value</span>
|
178
|
+
<span class="keyword">if</span> <span class="attribute">@action_name</span> <span class="punct">==</span> <span class="punct">"</span><span class="string">show</span><span class="punct">"</span>
|
179
|
+
<span class="attribute">@page</span><span class="punct">.</span><span class="ident">title</span>
|
180
|
+
<span class="keyword">else</span>
|
181
|
+
<span class="ident">text_field</span> <span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">page[title]</span><span class="punct">",</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">title</span>
|
182
|
+
<span class="keyword">end</span>
|
183
|
+
<span class="keyword">end</span>
|
184
|
+
|
185
|
+
<span class="keyword">def </span><span class="method">page_content_value</span>
|
186
|
+
<span class="keyword">if</span> <span class="attribute">@action_name</span> <span class="punct">==</span> <span class="punct">"</span><span class="string">show</span><span class="punct">"</span>
|
187
|
+
<span class="attribute">@page</span><span class="punct">.</span><span class="ident">content</span>
|
188
|
+
<span class="keyword">else</span>
|
189
|
+
<span class="ident">text_field</span> <span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">page[content]</span><span class="punct">",</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="attribute">@page</span><span class="punct">.</span><span class="ident">content</span>
|
190
|
+
<span class="keyword">end</span>
|
191
|
+
<span class="keyword">end</span>
|
192
|
+
<span class="keyword">end</span>
|
193
|
+
<span class="keyword">end</span>
|
194
|
+
</pre></p>
|
195
|
+
|
196
|
+
|
197
|
+
<p>I need to get more precise with the form helpers, but for now this will do.</p>
|
198
|
+
|
199
|
+
|
200
|
+
<h2>Forum</h2>
|
201
|
+
|
202
|
+
|
203
|
+
<p><a href="http://groups.google.com/group/stonean_stage?hl=en">http://groups.google.com/group/stonean_stage?hl=en</a></p>
|
204
|
+
|
205
|
+
|
206
|
+
<h2>How to submit patches</h2>
|
207
|
+
|
208
|
+
|
209
|
+
<p>The Clone <span class="caps">URL</span>: git://github.com/stonean/stage.git</p>
|
210
|
+
|
211
|
+
|
212
|
+
<p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people’s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
|
213
|
+
|
214
|
+
|
215
|
+
<p>I’m new to git and this whole opensource project admin gig, so please be patient with my stumbling around.</p>
|
216
|
+
|
217
|
+
|
218
|
+
<h2>License</h2>
|
219
|
+
|
220
|
+
|
221
|
+
<p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
|
222
|
+
|
223
|
+
|
224
|
+
<h2>Contact</h2>
|
225
|
+
|
226
|
+
|
227
|
+
<p>Comments and suggestions are welcome via the <a href="http://groups.google.com/group/stonean_stage?hl=en">forum</a></p>
|
228
|
+
<p class="coda">
|
229
|
+
26th April 2008<br>
|
230
|
+
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
231
|
+
</p>
|
232
|
+
</div>
|
233
|
+
|
234
|
+
<script type="text/javascript">
|
235
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
236
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
237
|
+
</script>
|
238
|
+
<script type="text/javascript">
|
239
|
+
var pageTracker = _gat._getTracker("UA-4186995-1");
|
240
|
+
pageTracker._initData();
|
241
|
+
pageTracker._trackPageview();
|
242
|
+
</script>
|
243
|
+
</body>
|
244
|
+
</html>
|