Skip to content
This repository
Newer
Older
100644 349 lines (251 sloc) 13.079 kb
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
1 h1. Formtastic Sneaky Preview
dcf8bebb » Justin French
2008-04-07 Initial Commit
2
3 Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications.
4
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
5 h2. The Story
dcf8bebb » Justin French
2008-04-07 Initial Commit
6
2d4a72b4 »
2009-02-16 big update to the README
7 One day, I finally had enough, so I opened up my text editor, and wrote a DSL for how I'd like to author forms:
dcf8bebb » Justin French
2008-04-07 Initial Commit
8
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
9 <pre>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
10 <% semantic_form_for @article do |form| %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
11
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
12 <% form.inputs :name => "Basic" do %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
13 <%= form.input :title %>
14 <%= form.input :body %>
15 <%= form.input :section_id %>
16 <%= form.input :publication_state_id, :as => :radio %>
17 <%= form.input :author_id, :as => :select %>
18 <%= form.input :allow_comments, :label => "Allow commenting on this article" %>
19 <% end %>
20
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
21 <% form.inputs :name => "Advanced" do %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
22 <%= form.input :keywords, :required => false, :hint => "Example: ruby, rails, forms" %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
23 <%= form.input :extract, :required => false %>
24 <%= form.input :description, :required => false %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
25 <%= form.input :url_title, :required => false %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
26 <% end %>
27
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
28 <% form.buttons do %>
29 <%= form.commit_button %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
30 <% end %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
31
dcf8bebb » Justin French
2008-04-07 Initial Commit
32 <% end %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
33 </pre>
34
6734cfd2 »
2008-07-21 sme typos and cleanups in the readme
35 I also wrote the accompanying HTML output I expected, favoring something very similar to the fieldsets, lists and other semantic elements Aaron Gustafson presented in "Learning to Love Forms":http://www.slideshare.net/AaronGustafson/learning-to-love-forms-web-directions-south-07, hacking together enough Ruby to prove it could be done.
dcf8bebb » Justin French
2008-04-07 Initial Commit
36
37
15e0bd98 » Justin French
2008-05-30 updated the README a little to match last night's slides
38 h2. Why?
39
40 * web apps = lots of forms
41 * forms are so friggin' boring to code
42 * semantically rich & accessible forms really are possible
43 * the "V" is way behind the "M" and "C" in Rails' MVC – it's the ugly sibling
dcf8bebb » Justin French
2008-04-07 Initial Commit
44 * best practices and common patterns have to start somewhere
15e0bd98 » Justin French
2008-05-30 updated the README a little to match last night's slides
45 * i need a challenge
dcf8bebb » Justin French
2008-04-07 Initial Commit
46
47
15e0bd98 » Justin French
2008-05-30 updated the README a little to match last night's slides
48 h2. Opinions
49
50 * it should be easier to do things the right way than the wrong way
51 * sometimes _more mark-up_ is better
52 * elements and attribute hooks are _gold_ for stylesheet authors
53 * make the common things we do easy, yet still ensure uncommon things are still possible
54
dcf8bebb » Justin French
2008-04-07 Initial Commit
55
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
56 h2. The Available Inputs
57
58 * :select (a select menu for belongs_to associations) - default for columns ending in '_id'
59 * :radio (a set of radio inputs for belongs_to associations) - alternative for columns ending in '_id'
60 * :password (a password input) - default for :string column types with 'password' in the method name
61 * :text (a textarea) - default for :text column types
62 * :date (a date select) - default for :date column types
63 * :datetime (a date and time select) - default for :datetime and :timestamp column types
64 * :time (a time select) - default for :time column types
65 * :boolean (a checkbox) - default for :boolean column types
2007904b »
2008-07-06 added a new boolean_select input, for boolean fields that work better…
66 * :boolean_select (a yes/no select box)
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
67 * :string (a text field) - default for :string column types
68 * :numeric (a text field, like string) - default for :integer, :float and :decimal column types
945b76cb » sprsquish
2009-02-16 Add detection for Paperclip and AttachmentFu attributes.
69 * :file (a file field) - default for paperclip or attachment_fu attributes
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
70
827d9acc »
2008-11-02 typo fix
71 The documentation is pretty good for each of these (what it does, what the output is, etc) so go check it out.
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
72
73
2d4a72b4 »
2009-02-16 big update to the README
74 h3. Fields without database columns and non-ActiveRecord objects
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
75
76 Formtastic is pretty tightly coupled to ActiveRecord database columns, but it will at least _attempt_ to play nicely with your models other methods (like a virtual column 'full_name' which is split into first_name and last_name in a before save callback), and I'd like this to continue and improve.
77
78
79 h2. Configuration
80
81 If you wish, put something like this in config/initializers/formtastic_config.rb:
82
83 <pre>
2d4a72b4 »
2009-02-16 big update to the README
84 # Should all fields be considered "required" by default
85 # Defaults to true, see ValidationReflection notes below
ee26f189 » sprsquish
2009-02-16 Remove JustinFrench namespace and add deprecation message for anyone …
86 Formtastic::SemanticFormBuilder.all_fields_required_by_default = false
2d4a72b4 »
2009-02-16 big update to the README
87
88 # Set the string that will be appended to the labels/fieldsets which are required
89 # Default is '<abbr title="required">*</abbr>'
ee26f189 » sprsquish
2009-02-16 Remove JustinFrench namespace and add deprecation message for anyone …
90 Formtastic::SemanticFormBuilder.required_string = "(required)"
2d4a72b4 »
2009-02-16 big update to the README
91
92 # Set the string that will be appended to the labels/fieldsets which are optional
93 # Defaults to an empty string ("")
ee26f189 » sprsquish
2009-02-16 Remove JustinFrench namespace and add deprecation message for anyone …
94 Formtastic::SemanticFormBuilder.optional_string = "(optional)"
5d072fa7 » andypearson
2009-01-24 Updating README to include a note about configuring inline errors
95
2d4a72b4 »
2009-02-16 big update to the README
96 # Set the way inline errors will be displayed.
d3d53d0a »
2009-02-17 typo fix in README
97 # Defaults to :sentence, valid options are :sentence, :list and :none
2d4a72b4 »
2009-02-16 big update to the README
98 Formtastic::SemanticFormBuilder.inline_errors = :list
282b28c2 » sprsquish
2009-02-16 Add I18n support
99
2d4a72b4 »
2009-02-16 big update to the README
100 # Set the method to call on label text to transform or format it for human-friendly reading
101 # Defaults to :titleize, but you might want :humanize, :to_s, etc
282b28c2 » sprsquish
2009-02-16 Add I18n support
102 Formtastic::SemanticFormBuilder.label_str_method = :titleize
30cfc862 » sprsquish
2009-02-16 Add Formtastic::SemanticFormBuilder.collection_label_methods to allow…
103
2d4a72b4 »
2009-02-16 big update to the README
104 # Set the array of methods to try calling on parent objects in :select and :radio inputs
105 # for the text inside each @<option>@ tag or alongside each radio @<input>@. The first method
106 # that is found on the object will be used.
107 # Defaults to ["to_label", "display_name", "full_name", "name", "title", "username", "login", "value", "to_s"]
108 Formtastic::SemanticFormBuilder.collection_label_methods = ["title_and_author", "display_name", "login", "to_s"]
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
109 </pre>
110
111
2d4a72b4 »
2009-02-16 big update to the README
112 h2. ValidationReflection plugin
113
114 If you have the "ValidationReflection":http://github.com/redinger/validation_reflection plugin installed, you won't have to specify the :required option (it checks the validations on the model instead).
115
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
116
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
117 h2. Status
dcf8bebb » Justin French
2008-04-07 Initial Commit
118
2d4a72b4 »
2009-02-16 big update to the README
119 *THIS IS DEFINITELY NOT PRODUCTION-READY. THINGS ARE GOING TO CHANGE A BIT BEFORE WE HIT 1.0.*
dcf8bebb » Justin French
2008-04-07 Initial Commit
120
2d4a72b4 »
2009-02-16 big update to the README
121 It's opinionated, incomplete, a work in progress and a bit rough around the edges stiull, but I hope you try it and offer some suggestions and improvements any way.
122
123 On the plus side, it has a comprehensive spec suite and contributions from at least ten independent developers.
dcf8bebb » Justin French
2008-04-07 Initial Commit
124
125
25d0c7aa »
2008-12-08 fleshed out a 'roadmap to 1.0' in the README
126 h2. Roadmap to 1.0
dcf8bebb » Justin French
2008-04-07 Initial Commit
127
2d4a72b4 »
2009-02-16 big update to the README
128 "Wishlist":http://wiki.github.com/justinfrench/formtastic/wishlist on the wiki is serving as pretty good documentation for the roadmap to 1.0 and beyond right now, but I'll work on getting a real tracking system or something happening soon.
c5d02e69 »
2009-02-16 link to the wiki for the roadmap to 1.0 in README
129
dcf8bebb » Justin French
2008-04-07 Initial Commit
130
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
131 h2. Usage
dcf8bebb » Justin French
2008-04-07 Initial Commit
132
133 The smallest example:
134
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
135 <pre>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
136 <% semantic_form_for @post do |form| %>
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
137 <% form.inputs do %>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
138 <%= form.input :title %>
139 <%= form.input :body %>
140 <%= form.input :section_id, :as => :radio %>
141 <% end %>
142 <% form.buttons do %>
143 <%= form.commit_button %>
7e3874a1 »
2008-08-13 trying to fix README formatting of <'s at the start of lines
144 <% end %>
dcf8bebb » Justin French
2008-04-07 Initial Commit
145 <% end %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
146 </pre>
dcf8bebb » Justin French
2008-04-07 Initial Commit
147
2d4a72b4 »
2009-02-16 big update to the README
148 Yes, *it'll even handle belongs_to associations*, rendering a radio list or select box with the right set of choices! The output is something like:
dcf8bebb » Justin French
2008-04-07 Initial Commit
149
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
150 <pre>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
151 <form action="/posts" class="formtastic new_post" id="new_post" method="post">
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
152 <fieldset class="inputs">
153 <ol>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
154 <li class="string required" id="post_title_input">
155 <label for="post_title">Title<abbr title="required">*</abbr></label>
156 <input id="post_title" maxlength="255" name="post[title]" size="50" type="text" />
157 </li>
158 <li class="text optional" id="post_body_input">
159 <label for="post_body">Body</label>
160 <textarea cols="40" id="post_body" name="post[body]" rows="20"></textarea>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
161 </li>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
162 <li class="radio required" id="post_author_id_input">
163 <fieldset>
164 <legend><span>Author<abbr title="required">*</abbr></span></legend>
165 <ol>
166 <li>
167 <label for="post_author_id_37">
168 <input id="post_author_id_37" name="post[author_id]" type="radio" value="37" />
169 Fred Smith
170 </label>
171 </li>
172 <li>
173 <label for="post_author_id_42">
174 <input id="post_author_id_42" name="post[author_id]" type="radio" value="42" />
175 Bob Rock
176 </label>
177 </li>
178 </ol>
179 </fieldset>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
180 </li>
181 </ol>
dcf8bebb » Justin French
2008-04-07 Initial Commit
182 </fieldset>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
183 <fieldset class="buttons">
184 <ol>
185 <li class="commit">
186 <input name="commit" type="submit" value="Create Post" />
187 </li>
188 </ol>
189 </fieldset>
190 </form></pre>
0c71a468 » Justin French
2008-05-04 mentioned to_label in the README
191
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
192 If you're happy to accept the default input types and labels, there's a shorthand version too:
193
194 <pre>
195 <% semantic_form_for @user do |form| %>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
196 <%= form.inputs :title, :body, :section_id, :created_at %>
197 <%= form.buttons :commit %>
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
198 <% end %>
199 </pre>
200
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
201 You don't even have to specify the field list (Formtastic will simply render and input for each column in the database table) or button list (usually you only need one commit button to create/save):
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
202
203 <pre>
204 <% semantic_form_for @user do |form| %>
205 <%= form.inputs %>
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
206 <%= form.buttons %>
0b370bae »
2009-01-06 Renamed input_field_set() to just inputs() and added a shorthand vers…
207 <% end %>
208 </pre>
209
92e5fc3d »
2009-01-09 Updates to the README with better examples and output samples.
210 Pretty soon we won't have to write any code at all ;)
211
2d4a72b4 »
2009-02-16 big update to the README
212
085e22f7 » sprsquish
2009-02-16 Add support for nested forms (http://ryandaigle.com/articles/2009/2/1…
213 h2. Nested forms (Rails 2.3+)
214
215 Nested forms are supported:
216
217 <pre>
218 <% semantic_form_for @post do |post| %>
219 <%= post.semantic_fields_for :author do |author| %>
220 <%= author.inputs %>
221 <%= end %>
222 <%= post.buttons %>
223 <% end %>
224 </pre>
282b28c2 » sprsquish
2009-02-16 Add I18n support
225
2d4a72b4 »
2009-02-16 big update to the README
226
282b28c2 » sprsquish
2009-02-16 Add I18n support
227 h2. Internationalization (I18n)
228
229 Supports I18n! ActiveRecord object names and attributes are, by default, taken from calling @object.human_name and @object.human_attribute_name(attr) respectively. There are a few words specific to Formtastic that can be translated.
230
231 Here is an example locale file:
232
233 <pre>
2d4a72b4 »
2009-02-16 big update to the README
234 en:
235 formtastic:
236 yes: 'Yes'
237 no: 'No'
238 create: 'Create'
239 save: 'Save'
240 year: 'Year'
241 month: 'Month'
242 day: 'Day'
243 hour: 'Hour'
244 minute: 'Minute'
245 second: 'Second'
282b28c2 » sprsquish
2009-02-16 Add I18n support
246 </pre>
085e22f7 » sprsquish
2009-02-16 Add support for nested forms (http://ryandaigle.com/articles/2009/2/1…
247
2d4a72b4 »
2009-02-16 big update to the README
248
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
249 h2. Extending Formtastic
250
6ba950e2 » markmansour
2009-01-14 created example which doesn't use the JustinFrench::Formtastic namesp…
251 Adding functionality to Formtastic can be done by extending SemanticFormBuilder and configuring formtastic's builder.
252
2d4a72b4 »
2009-02-16 big update to the README
253 To create a new form method that displayed a star rating define the new builder by subclassing SemanticFormBuilder:
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
254
255 <pre>
2d4a72b4 »
2009-02-16 big update to the README
256 # lib/rating_semantic_form_builder.rb
257 class RatingBuilder < Formtastic::SemanticFormBuilder
258 # new method to be added allowing full control over the label and value
259 def rating(stars, options = {})
260 options[:label] ||= 'rating'
261 content = input_label(options[:label], options)
262 content += @template.content_tag(:span, '*' * stars.to_i, :id => "#{@object_name}_#{options[:label]}")
263 @template.content_tag(:li, content)
264 end
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
265 end
266 </pre>
267
2d4a72b4 »
2009-02-16 big update to the README
268 Set Formtastic's builder to your newly defined RatingBuilder
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
269 <pre>
2d4a72b4 »
2009-02-16 big update to the README
270 # RAILS_ROOT/config/initializers/override_formtastic_builder.rb
271 require 'rating_semantic_form_builder.rb'
272
273 # set the formtastic builder to a customized version of the formtastic builder
274 Formtastic::SemanticFormHelper.builder = RatingBuilder
6ba950e2 » markmansour
2009-01-14 created example which doesn't use the JustinFrench::Formtastic namesp…
275 </pre>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
276
2d4a72b4 »
2009-02-16 big update to the README
277 Use @semantic_form_for@ just like you would with Formtastic.
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
278 <pre>
6ba950e2 » markmansour
2009-01-14 created example which doesn't use the JustinFrench::Formtastic namesp…
279 <% semantic_form_for Project.new do |form| %>
280 <% form.input_field_set :name => "ratings" do %>
281 <%= form.rating 5 %>
282 <%= form.rating 11, :label => 'awesomeness (out of 10)' %>
283 <% end %>
2d4a72b4 »
2009-02-16 big update to the README
284 <%= form.buttons %>
6ba950e2 » markmansour
2009-01-14 created example which doesn't use the JustinFrench::Formtastic namesp…
285 <% end %>
353618ed » markmansour
2009-01-13 Extending Formtastic can be done by overriding the semantic_form_buil…
286 </pre>
0c71a468 » Justin French
2008-05-04 mentioned to_label in the README
287
288
b03d5b70 »
2008-11-02 Cleaned up the code and specs around the validation_reflection, inclu…
289 h2. Dependencies
290
49485dad »
2008-11-15 updated the dependencies in the README to cover the test suite
291 There are none, but...
292
293 * if you have the "ValidationReflection":http://github.com/redinger/validation_reflection plugin is installed, you won't have to specify the :required option (it checks the validations on the model instead)
294 * rspec, rspec_hpricot_matchers and rcov gems (plus any of their own dependencies) are required for the test suite
b03d5b70 »
2008-11-02 Cleaned up the code and specs around the validation_reflection, inclu…
295
0c71a468 » Justin French
2008-05-04 mentioned to_label in the README
296
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
297 h2. What about Stylesheets?
dcf8bebb » Justin French
2008-04-07 Initial Commit
298
9525ac2c » Justin French
2008-05-04 updated the README a little to walk through stylesheet usage
299 A proof-of-concept (very much a work-in-progress) stylesheet is provided which you can include in your layout. Customisation is best achieved by overriding these styles in an additional stylesheet so that the formtastic styles can be updated without clobbering your changes.
dcf8bebb » Justin French
2008-04-07 Initial Commit
300
ef95efff »
2008-07-04 updated README to refelct the generated formtastic_changes.css
301 1. Use the generator to copy the formtastic.css and formtastic_changes.css into your public directory
4f147ea7 » Justin French
2008-04-20 added some stylsheet usage help to the README and to formtastic.css, …
302
9525ac2c » Justin French
2008-05-04 updated the README a little to walk through stylesheet usage
303 <pre>
4f147ea7 » Justin French
2008-04-20 added some stylsheet usage help to the README and to formtastic.css, …
304 ./script/generate formtastic_stylesheets
9525ac2c » Justin French
2008-05-04 updated the README a little to walk through stylesheet usage
305 </pre>
306
519b6402 »
2008-07-04 no need for yahoo's reset.css any more... doing my own resets
307 2. Add both formtastic.css and formtastic_changes.css to your layout:
4f147ea7 » Justin French
2008-04-20 added some stylsheet usage help to the README and to formtastic.css, …
308
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
309 <pre>
310 <%= stylesheet_link_tag "formtastic" %>
9525ac2c » Justin French
2008-05-04 updated the README a little to walk through stylesheet usage
311 <%= stylesheet_link_tag "formtastic_changes" %>
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
312 </pre>
dcf8bebb » Justin French
2008-04-07 Initial Commit
313
9525ac2c » Justin French
2008-05-04 updated the README a little to walk through stylesheet usage
314
315
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
316 h2. Compatibility
dcf8bebb » Justin French
2008-04-07 Initial Commit
317
2d4a72b4 »
2009-02-16 big update to the README
318 I'm only testing Formtastic with the latest Rails 2.2.x stable release, and it should be fine under Rails 2.3 as well (including nested forms).
dcf8bebb » Justin French
2008-04-07 Initial Commit
319
320
09d957d0 » Justin French
2008-04-29 textilized the README so that it looks pretty pretty on GitHub
321 h2. But it doesn't do that thing I really need!
dcf8bebb » Justin French
2008-04-07 Initial Commit
322
2d4a72b4 »
2009-02-16 big update to the README
323 It might not ever do it either, there are no silver bullets. I want to make the usual stuff easy, and the unusual stuff possible. That might mean that some of the inputs on your form still have to be hard-coded, but some is better than all, right?
dcf8bebb » Justin French
2008-04-07 Initial Commit
324
325
326
2d4a72b4 »
2009-02-16 big update to the README
327 h2. Many thanks to Formtastic's contributors
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
328
5a394436 »
2008-06-28 bulking up the documentation and readme with the different inputs ava…
329 * "Justin French":http://justinfrench.com
330 * "Xavier Shay":http://rhnh.net
0c50ce3f »
2009-01-20 Updated contributors list in the README. Thanks Everyone\!
331 * "Bin Dong":http://github.com/dongbin
dc3ace93 »
2008-12-08 more on the README
332 * "Ben Hamill":http://blog.benhamill.com/
15ff964a »
2009-01-06 Added Pat and negonicrac to contributors.
333 * "Pat Allan":http://github.com/freelancing-god
334 * "negonicrac":http://github.com/negonicrac
0c50ce3f »
2009-01-20 Updated contributors list in the README. Thanks Everyone\!
335 * "Andy Pearson":http://github.com/andypearson
1587c561 »
2009-01-20 Vanity commit for Mark ;)
336 * "Mark Mansour":http://stateofflux.com
0c50ce3f »
2009-01-20 Updated contributors list in the README. Thanks Everyone\!
337 * "Tien Dung":http://github.com/tiendung
c8d721e8 »
2009-02-16 Updated the contributors list
338 * "Sascha Hoellger":http://github.com/mitnal
339 * "Jeff Smick":http://github.com/sprsquish
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
340
2d4a72b4 »
2009-02-16 big update to the README
341
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
342 h2. Project Info
343
dc3ace93 »
2008-12-08 more on the README
344 Formtastic is hosted on Github: http://github.com/justinfrench/formtastic/, where your contributions, forkings, comments and feedback are greatly welcomed.
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
345
324a875e »
2009-02-17 link to the google group from the README
346 There's also a newly created "Formtastic Google Group":http://groups.google.com.au/group/formtastic.
347
ba3ce055 »
2008-06-27 updated the README a little with contributors and some other busy work
348
25d0c7aa »
2008-12-08 fleshed out a 'roadmap to 1.0' in the README
349 Copyright (c) 2007-2008 Justin French, released under the MIT license.
Something went wrong with that request. Please try again.