formatted_form 1.1.0 → 2.0.0

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.
Files changed (82) hide show
  1. data/Gemfile +7 -0
  2. data/{LICENSE.txt → LICENSE} +1 -1
  3. data/README.md +121 -29
  4. data/Rakefile +29 -10
  5. data/VERSION +1 -1
  6. data/app/assets/javascripts/formatted_form.js +12 -0
  7. data/app/assets/stylesheets/formatted_form.css +0 -0
  8. data/app/views/formatted_form/_check_box.html.erb +1 -0
  9. data/app/views/formatted_form/_date_select.html.erb +1 -0
  10. data/app/views/formatted_form/_datetime_select.html.erb +1 -0
  11. data/app/views/formatted_form/_element.html.erb +1 -0
  12. data/app/views/formatted_form/_email_field.html.erb +1 -0
  13. data/app/views/formatted_form/_file_field.html.erb +1 -0
  14. data/app/views/formatted_form/_number_field.html.erb +1 -0
  15. data/app/views/formatted_form/_password_field.html.erb +1 -0
  16. data/app/views/formatted_form/_phone_field.html.erb +1 -0
  17. data/app/views/formatted_form/_radio_button.html.erb +1 -0
  18. data/app/views/formatted_form/_range_field.html.erb +1 -0
  19. data/app/views/formatted_form/_search_field.html.erb +1 -0
  20. data/app/views/formatted_form/_select.html.erb +1 -0
  21. data/app/views/formatted_form/_submit.html.erb +1 -0
  22. data/app/views/formatted_form/_telephone_field.html.erb +1 -0
  23. data/app/views/formatted_form/_text_area.html.erb +1 -0
  24. data/app/views/formatted_form/_text_field.html.erb +1 -0
  25. data/app/views/formatted_form/_time_select.html.erb +1 -0
  26. data/app/views/formatted_form/_time_zone_select.html.erb +1 -0
  27. data/app/views/formatted_form/templates/_choices.html.erb +35 -0
  28. data/app/views/formatted_form/templates/_field.html.erb +34 -0
  29. data/formatted_form.gemspec +76 -26
  30. data/lib/formatted_form/engine.rb +6 -11
  31. data/lib/formatted_form/form_builder.rb +125 -0
  32. data/lib/formatted_form/view_helper.rb +49 -0
  33. data/lib/formatted_form.rb +3 -20
  34. data/test/dummy/README.rdoc +261 -0
  35. data/test/dummy/Rakefile +7 -0
  36. data/test/dummy/app/assets/javascripts/application.js +15 -0
  37. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  38. data/test/dummy/app/controllers/application_controller.rb +3 -0
  39. data/test/dummy/app/helpers/application_helper.rb +2 -0
  40. data/test/dummy/app/mailers/.gitkeep +0 -0
  41. data/test/dummy/app/models/.gitkeep +0 -0
  42. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  43. data/test/dummy/config/application.rb +65 -0
  44. data/test/dummy/config/boot.rb +10 -0
  45. data/test/dummy/config/environment.rb +5 -0
  46. data/test/dummy/config/environments/development.rb +31 -0
  47. data/test/dummy/config/environments/production.rb +64 -0
  48. data/test/dummy/config/environments/test.rb +35 -0
  49. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  50. data/test/dummy/config/initializers/inflections.rb +15 -0
  51. data/test/dummy/config/initializers/mime_types.rb +5 -0
  52. data/test/dummy/config/initializers/secret_token.rb +7 -0
  53. data/test/dummy/config/initializers/session_store.rb +8 -0
  54. data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
  55. data/test/dummy/config/locales/en.yml +5 -0
  56. data/test/dummy/config/routes.rb +58 -0
  57. data/test/dummy/config.ru +4 -0
  58. data/test/dummy/lib/assets/.gitkeep +0 -0
  59. data/test/dummy/log/.gitkeep +0 -0
  60. data/test/dummy/public/404.html +26 -0
  61. data/test/dummy/public/422.html +26 -0
  62. data/test/dummy/public/500.html +25 -0
  63. data/test/dummy/public/favicon.ico +0 -0
  64. data/test/dummy/script/rails +6 -0
  65. data/test/form_builder_test.rb +391 -0
  66. data/test/test_helper.rb +47 -0
  67. metadata +105 -25
  68. data/app/views/formatted_form/_check_box.html.haml +0 -14
  69. data/app/views/formatted_form/_default_field.html.haml +0 -17
  70. data/app/views/formatted_form/_radio_button.html.haml +0 -17
  71. data/app/views/formatted_form/_submit.html.haml +0 -3
  72. data/app/views/twitter_bootstrap/_check_box.html.haml +0 -18
  73. data/app/views/twitter_bootstrap/_default_field.html.haml +0 -10
  74. data/app/views/twitter_bootstrap/_radio_button.html.haml +0 -24
  75. data/app/views/twitter_bootstrap/_submit.html.haml +0 -3
  76. data/lib/formatted_form/builder.rb +0 -178
  77. data/lib/formatted_form/configuration.rb +0 -16
  78. data/lib/formatted_form/helper.rb +0 -10
  79. data/lib/generators/formatted_form/javascripts/javascripts_generator.rb +0 -11
  80. data/lib/generators/formatted_form/stylesheets/stylesheets_generator.rb +0 -11
  81. data/templates/javascripts/formatted_form.js +0 -17
  82. data/templates/stylesheets/formatted_form.sass +0 -121
@@ -0,0 +1,391 @@
1
+ require 'test_helper'
2
+
3
+ # `raise output_buffer.inspect` if you want to peek inside generated html
4
+ class FormBuilderTest < ActionView::TestCase
5
+
6
+ # -- Form -----------------------------------------------------------------
7
+ def test_form
8
+ with_formatted_form_for(@user, :url => ''){|f|}
9
+ assert_select "form[class='formatted']"
10
+ end
11
+
12
+ def test_form_with_type_inline
13
+ with_formatted_form_for(@user, :url => '', :type => :inline){|f|}
14
+ assert_select "form[class='formatted form-inline']"
15
+ end
16
+
17
+ def test_form_with_type_horizontal
18
+ with_formatted_form_for(@user, :url => '', :type => :horizontal){|f|}
19
+ assert_select "form[class='formatted form-horizontal']"
20
+ end
21
+
22
+ def test_form_with_type_search
23
+ with_formatted_form_for(@user, :url => '', :type => :search){|f|}
24
+ assert_select "form[class='formatted form-search']"
25
+ end
26
+
27
+ def test_form_overriding_existing_class
28
+ with_formatted_form_for(@user, :url => '', :type => :inline, :html => {:class => 'custom'}){|f|}
29
+ assert_select "form[class='custom form-inline']"
30
+ end
31
+
32
+ def test_form_with_type_derived_from_class
33
+ with_formatted_form_for(@user, :url => '', :type => :inline, :html => {:class => 'form-horizontal'}){|f|}
34
+ assert_select "form[class='form-horizontal']"
35
+ end
36
+
37
+ # -- Text Field -----------------------------------------------------------
38
+ def test_text_field
39
+ with_text_field :name
40
+ assert_select "div[class='control-group cg-name']" do
41
+ assert_select "label[for='user_name']", 'Name'
42
+ assert_select "div[class='controls']" do
43
+ assert_select "input[type='text'][id='user_name'][name='user[name]']"
44
+ end
45
+ end
46
+ end
47
+
48
+ def test_text_field_prepend_append
49
+ with_text_field :twitter, :prepend => '@', :append => '!'
50
+ assert_select "div[class='control-group cg-twitter']" do
51
+ assert_select "label[for='user_twitter']", 'Twitter'
52
+ assert_select "div[class='controls']" do
53
+ assert_select "div[class='input-prepend input-append']" do
54
+ assert_select "span[class='add-on']", '@'
55
+ assert_select "input[type='text'][id='user_twitter'][name='user[twitter]']"
56
+ assert_select "span[class='add-on']", '!'
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ def test_text_field_prepend_append_html
63
+ with_text_field :twitter, :prepend_html => '<b>b</b>', :append_html => '<i>i</i>'
64
+ assert_select "div[class='control-group cg-twitter']" do
65
+ assert_select "label[for='user_twitter']", 'Twitter'
66
+ assert_select "div[class='controls']" do
67
+ assert_select "div[class='input-prepend input-append']" do
68
+ assert_select "i", 'i'
69
+ assert_select "input[type='text'][id='user_twitter'][name='user[twitter]']"
70
+ assert_select "b", 'b'
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ def test_text_field_with_help_block
77
+ with_text_field :name, :help_block => 'Help'
78
+ assert_select "div[class='control-group cg-name']" do
79
+ assert_select "div[class='controls']" do
80
+ assert_select "input[type='text'][id='user_name'][name='user[name]']"
81
+ assert_select "span[class='help-block']", 'Help'
82
+ end
83
+ end
84
+ end
85
+
86
+ def test_text_field_with_errors
87
+ assert @user.invalid?
88
+ with_text_field :name
89
+ assert_select "div[class='control-group cg-name error']" do
90
+ assert_select "div[class='controls']" do
91
+ assert_select "input[type='text'][id='user_name'][name='user[name]']"
92
+ assert_select "span[class='help-inline']", "can&#x27;t be blank"
93
+ end
94
+ end
95
+ end
96
+
97
+ def test_text_field_with_blank_label
98
+ with_text_field :name, :label => ''
99
+ assert_select "label[for='user_name']", 0
100
+
101
+ with_text_field :name, :label => false
102
+ assert_select "label[for='user_name']", 0
103
+ end
104
+
105
+ def test_text_field_for_inline_form
106
+ with_formatted_form_for(@user, :url => '', :type => :inline){|f| f.text_field :name }
107
+ assert_select "div[class='control-group cg-name']", 0
108
+ assert_select "input[type='text'][id='user_name'][name='user[name]']"
109
+ end
110
+
111
+ def test_text_field_with_no_builder
112
+ with_text_field :name, :builder => false
113
+ assert_select "div[class='control-group cg-name']", 0
114
+ assert_select "label[for='user_name']", 0
115
+ end
116
+
117
+ # -- Radio Button ---------------------------------------------------------
118
+ def test_radio_button
119
+ with_radio_button :role, 'admin'
120
+ assert_select "div[class='control-group cg-role']" do
121
+ assert_select "div[class='control-label']" do
122
+ assert_select "label[for='user_role']", 'Role'
123
+ end
124
+ assert_select "div[class='controls']" do
125
+ assert_select "input[type='radio'][id='user_role_admin'][name='user[role]'][value='admin']"
126
+ end
127
+ end
128
+ end
129
+
130
+ def test_radio_button_with_custom_label
131
+ with_radio_button :role, 'admin', :label => 'Access'
132
+ assert_select "div[class='control-label']" do
133
+ assert_select "label[for='user_role']", 'Access'
134
+ end
135
+ end
136
+
137
+ def test_radio_button_with_choices_array
138
+ with_radio_button :role, ['admin', 'regular']
139
+ assert_select "div[class='controls']" do
140
+ assert_select "label[class='radio']", 'admin' do
141
+ assert_select "input[type='radio'][id='user_role_admin'][name='user[role]'][value='admin']"
142
+ end
143
+ assert_select "label[class='radio']", 'regular' do
144
+ assert_select "input[type='radio'][id='user_role_regular'][name='user[role]'][value='regular']"
145
+ end
146
+ end
147
+ end
148
+
149
+ def test_radio_button_with_choices_tuples
150
+ with_radio_button :role, [['Admin', 1], ['Regular', 2]]
151
+ assert_select "label[class='radio']", 'Admin' do
152
+ assert_select "input[type='radio'][id='user_role_1'][name='user[role]'][value='1']"
153
+ end
154
+ assert_select "label[class='radio']", 'Regular' do
155
+ assert_select "input[type='radio'][id='user_role_2'][name='user[role]'][value='2']"
156
+ end
157
+ end
158
+
159
+ def test_radio_button_inline
160
+ with_radio_button :role, ['admin', 'regular'], :class => 'inline'
161
+ assert_select "label[class='radio inline']", 'admin' do
162
+ assert_select "input[type='radio'][id='user_role_admin'][name='user[role]'][value='admin']"
163
+ end
164
+ end
165
+
166
+ # -- Check Boxes ----------------------------------------------------------
167
+ def test_check_box
168
+ with_check_box :colors, {}, 'yes', 'no'
169
+ assert_select "div[class='control-group cg-colors']" do
170
+ assert_select "div[class='control-label']" do
171
+ assert_select "label[for='user_colors']", 'Colors'
172
+ end
173
+ assert_select "div[class='controls']" do
174
+ assert_select "input[type='hidden'][name='user[colors]'][value='no']"
175
+ assert_select "input[type='checkbox'][id='user_colors'][name='user[colors]'][value='yes']"
176
+ end
177
+ end
178
+ end
179
+
180
+ def test_check_box_custom_label
181
+ with_check_box :colors, :label => 'Kolors'
182
+ assert_select "div[class='control-label']" do
183
+ assert_select "label[for='user_colors']", 'Kolors'
184
+ end
185
+ end
186
+
187
+ def test_check_box_with_choices_array
188
+ with_check_box :colors, {}, ['red', 'green']
189
+ assert_select "div[class='controls']" do
190
+ assert_select "label[class='checkbox']", 'red' do
191
+ assert_select "input[type='checkbox'][id='user_colors_red'][name='user[colors][]'][value='red']"
192
+ end
193
+ assert_select "label[class='checkbox']", 'green' do
194
+ assert_select "input[type='checkbox'][id='user_colors_green'][name='user[colors][]'][value='green']"
195
+ end
196
+ end
197
+ end
198
+
199
+ def test_check_box_with_choices_and_labels
200
+ with_check_box :colors, {}, [['Red', 'r'], ['Green', 'g']]
201
+ assert_select "div[class='controls']" do
202
+ assert_select "label[class='checkbox']", 'Red' do
203
+ assert_select "input[type='checkbox'][id='user_colors_r'][name='user[colors][]'][value='r']"
204
+ end
205
+ assert_select "label[class='checkbox']", 'Green' do
206
+ assert_select "input[type='checkbox'][id='user_colors_g'][name='user[colors][]'][value='g']"
207
+ end
208
+ end
209
+ end
210
+
211
+ def test_check_box_inline
212
+ with_check_box :colors, {:class => 'inline'}, ['red', 'green']
213
+ assert_select "label[class='checkbox inline']" do
214
+ assert_select "input[type='checkbox'][id='user_colors_red'][name='user[colors][]']"
215
+ end
216
+ end
217
+
218
+ # -- Element --------------------------------------------------------------
219
+ def test_element
220
+ with_element 'Label', 'Content'
221
+ assert_select "div[class='control-group']" do
222
+ assert_select "label[class='control-label']", 'Label'
223
+ assert_select "div[class='controls']", 'Content'
224
+ end
225
+ end
226
+
227
+ def test_element_with_block
228
+ with_element 'Label' do
229
+ 'Content'
230
+ end
231
+ assert_select "div[class='control-group']" do
232
+ assert_select "label[class='control-label']", 'Label'
233
+ assert_select "div[class='controls']", 'Content'
234
+ end
235
+ end
236
+
237
+ def test_element_with_no_label
238
+ with_element do
239
+ 'Content'
240
+ end
241
+ assert_select "label[class='control-label']", 0
242
+ assert_select "div[class='controls']", 'Content'
243
+ end
244
+
245
+ # -- Submit ---------------------------------------------------------------
246
+ def test_submit
247
+ with_submit
248
+ assert_select "input[name=commit][value='Create User'][class='btn btn-primary']"
249
+ end
250
+
251
+ def test_submit_with_label
252
+ with_submit 'Create'
253
+ assert_select "input[name='commit'][value='Create']"
254
+ end
255
+
256
+ def test_submit_with_css_class
257
+ with_submit :class => 'btn-danger'
258
+ assert_select "input[name=commit][class='btn-danger btn']"
259
+ end
260
+
261
+ # -- Others ---------------------------------------------------------------
262
+ def test_select_field
263
+ with_select :name, ['Bob']
264
+ assert_select "div[class='controls']" do
265
+ assert_select "select[id='user_name'][name='user[name]']" do
266
+ assert_select "option[value='Bob']", 'Bob'
267
+ end
268
+ end
269
+ end
270
+
271
+ def test_password_field
272
+ with_password_field :name
273
+ assert_select "div[class='controls']" do
274
+ assert_select "input[type='password'][id='user_name'][name='user[name]']"
275
+ end
276
+ end
277
+
278
+ def test_email_field
279
+ with_email_field :name
280
+ assert_select "div[class='controls']" do
281
+ assert_select "input[type='email'][id='user_name'][name='user[name]']"
282
+ end
283
+ end
284
+
285
+ def test_telephone_field
286
+ with_telephone_field :name
287
+ assert_select "div[class='controls']" do
288
+ assert_select "input[type='tel'][id='user_name'][name='user[name]']"
289
+ end
290
+ end
291
+
292
+ def test_number_field
293
+ with_number_field :name
294
+ assert_select "div[class='controls']" do
295
+ assert_select "input[type='number'][id='user_name'][name='user[name]']"
296
+ end
297
+ end
298
+
299
+ def test_text_area
300
+ with_text_area :name
301
+ assert_select "div[class='controls']" do
302
+ assert_select "textarea[id='user_name'][name='user[name]']"
303
+ end
304
+ end
305
+
306
+ def test_file_field
307
+ with_file_field :name
308
+ assert_select "div[class='controls']" do
309
+ assert_select "input[type='file'][id='user_name'][name='user[name]']"
310
+ end
311
+ end
312
+
313
+ def test_range_field
314
+ with_range_field :name
315
+ assert_select "div[class='controls']" do
316
+ assert_select "input[type='range'][id='user_name'][name='user[name]']"
317
+ end
318
+ end
319
+
320
+ def test_search_field
321
+ with_search_field :name
322
+ assert_select "div[class='controls']" do
323
+ assert_select "input[type='search'][id='user_name'][name='user[name]']"
324
+ end
325
+ end
326
+
327
+ def test_datetime_select
328
+ with_datetime_select :timestamp
329
+ assert_select "div[class='controls']" do
330
+ assert_select "select[id='user_timestamp_1i'][name='user[timestamp(1i)]']"
331
+ assert_select "select[id='user_timestamp_2i'][name='user[timestamp(2i)]']"
332
+ assert_select "select[id='user_timestamp_3i'][name='user[timestamp(3i)]']"
333
+ assert_select "select[id='user_timestamp_4i'][name='user[timestamp(4i)]']"
334
+ assert_select "select[id='user_timestamp_5i'][name='user[timestamp(5i)]']"
335
+ end
336
+ end
337
+
338
+ def test_date_select
339
+ with_date_select :timestamp
340
+ assert_select "div[class='controls']" do
341
+ assert_select "select[id='user_timestamp_1i'][name='user[timestamp(1i)]']"
342
+ assert_select "select[id='user_timestamp_2i'][name='user[timestamp(2i)]']"
343
+ assert_select "select[id='user_timestamp_3i'][name='user[timestamp(3i)]']"
344
+ end
345
+ end
346
+
347
+ def test_time_select
348
+ with_time_select :timestamp
349
+ assert_select "div[class='controls']" do
350
+ assert_select "input[type='hidden'][id='user_timestamp_1i'][name='user[timestamp(1i)]']"
351
+ assert_select "input[type='hidden'][id='user_timestamp_2i'][name='user[timestamp(2i)]']"
352
+ assert_select "input[type='hidden'][id='user_timestamp_3i'][name='user[timestamp(3i)]']"
353
+ assert_select "select[id='user_timestamp_4i'][name='user[timestamp(4i)]']"
354
+ assert_select "select[id='user_timestamp_5i'][name='user[timestamp(5i)]']"
355
+ end
356
+ end
357
+
358
+ def test_time_zone_select
359
+ with_time_zone_select :timestamp
360
+ assert_select "div[class='controls']" do
361
+ assert_select "select[id='user_timestamp'][name='user[timestamp]']"
362
+ end
363
+ end
364
+
365
+ # -- Conditional content tag ----------------------------------------------
366
+ def test_content_tag_if_true
367
+ concat content_tag_if(true, :div, 'test', :class => 'test')
368
+ assert_equal "<div class=\"test\">test</div>", output_buffer
369
+ end
370
+
371
+ def test_content_tag_if_false
372
+ concat content_tag_if(false, :div, 'test', :class => 'test')
373
+ assert_equal 'test', output_buffer
374
+ end
375
+
376
+ def test_content_tag_if_with_block_if_true
377
+ concat(content_tag_if(true, :div, :class => 'test'){ 'test' })
378
+ assert_equal "<div class=\"test\">test</div>", output_buffer
379
+ end
380
+
381
+ def test_content_tag_if_with_block_if_false
382
+ concat(content_tag_if(false, :div, :class => 'test'){ 'test' })
383
+ assert_equal 'test', output_buffer
384
+ end
385
+
386
+ def test_content_tag_unless
387
+ concat content_tag_unless(false, :div, 'test', :class => 'test')
388
+ assert_equal "<div class=\"test\">test</div>", output_buffer
389
+ end
390
+
391
+ end
@@ -0,0 +1,47 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ class User
13
+ extend ActiveModel::Naming
14
+ include ActiveModel::Validations
15
+ include ActiveModel::Conversion
16
+
17
+ attr_accessor :id, :name, :twitter, :role, :colors, :timestamp
18
+
19
+ validates :name, :presence => true
20
+
21
+ def persisted?
22
+ false
23
+ end
24
+ end
25
+
26
+ class ActionView::TestCase
27
+ include FormattedForm::ViewHelper
28
+
29
+ setup :load_user
30
+
31
+ def load_user
32
+ @user = User.new
33
+ end
34
+
35
+ def with_formatted_form_for(*args, &block)
36
+ concat formatted_form_for(*args, &block)
37
+ end
38
+
39
+ # Helper method to handle things like `with_text_field`, `with_submit`, etc
40
+ def method_missing(method_name, *args, &block)
41
+ if method_name =~ /^with_(\w+)/
42
+ with_formatted_form_for(@user, :url => ''){ |f| f.send($1, *args, &block) }
43
+ else
44
+ super(method_name, *args, &block)
45
+ end
46
+ end
47
+ end
metadata CHANGED
@@ -1,48 +1,124 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formatted_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jack Neto
9
+ - Oleg Khabarov
10
+ - The Working Group Inc.
9
11
  autorequire:
10
12
  bindir: bin
11
13
  cert_chain: []
12
- date: 2011-10-16 00:00:00.000000000 -04:00
13
- default_executable:
14
- dependencies: []
14
+ date: 2012-12-03 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 3.1.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: 3.1.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: jeweler
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
15
48
  description: ''
16
- email: jack@theworkinggroup.ca
49
+ email: jack@twg.ca
17
50
  executables: []
18
51
  extensions: []
19
52
  extra_rdoc_files:
20
- - LICENSE.txt
53
+ - LICENSE
21
54
  - README.md
22
55
  files:
23
- - LICENSE.txt
56
+ - Gemfile
57
+ - LICENSE
24
58
  - README.md
25
59
  - Rakefile
26
60
  - VERSION
27
- - app/views/formatted_form/_check_box.html.haml
28
- - app/views/formatted_form/_default_field.html.haml
29
- - app/views/formatted_form/_radio_button.html.haml
30
- - app/views/formatted_form/_submit.html.haml
31
- - app/views/twitter_bootstrap/_check_box.html.haml
32
- - app/views/twitter_bootstrap/_default_field.html.haml
33
- - app/views/twitter_bootstrap/_radio_button.html.haml
34
- - app/views/twitter_bootstrap/_submit.html.haml
61
+ - app/assets/javascripts/formatted_form.js
62
+ - app/assets/stylesheets/formatted_form.css
63
+ - app/views/formatted_form/_check_box.html.erb
64
+ - app/views/formatted_form/_date_select.html.erb
65
+ - app/views/formatted_form/_datetime_select.html.erb
66
+ - app/views/formatted_form/_element.html.erb
67
+ - app/views/formatted_form/_email_field.html.erb
68
+ - app/views/formatted_form/_file_field.html.erb
69
+ - app/views/formatted_form/_number_field.html.erb
70
+ - app/views/formatted_form/_password_field.html.erb
71
+ - app/views/formatted_form/_phone_field.html.erb
72
+ - app/views/formatted_form/_radio_button.html.erb
73
+ - app/views/formatted_form/_range_field.html.erb
74
+ - app/views/formatted_form/_search_field.html.erb
75
+ - app/views/formatted_form/_select.html.erb
76
+ - app/views/formatted_form/_submit.html.erb
77
+ - app/views/formatted_form/_telephone_field.html.erb
78
+ - app/views/formatted_form/_text_area.html.erb
79
+ - app/views/formatted_form/_text_field.html.erb
80
+ - app/views/formatted_form/_time_select.html.erb
81
+ - app/views/formatted_form/_time_zone_select.html.erb
82
+ - app/views/formatted_form/templates/_choices.html.erb
83
+ - app/views/formatted_form/templates/_field.html.erb
35
84
  - formatted_form.gemspec
36
85
  - lib/formatted_form.rb
37
- - lib/formatted_form/builder.rb
38
- - lib/formatted_form/configuration.rb
39
86
  - lib/formatted_form/engine.rb
40
- - lib/formatted_form/helper.rb
41
- - lib/generators/formatted_form/javascripts/javascripts_generator.rb
42
- - lib/generators/formatted_form/stylesheets/stylesheets_generator.rb
43
- - templates/javascripts/formatted_form.js
44
- - templates/stylesheets/formatted_form.sass
45
- has_rdoc: true
87
+ - lib/formatted_form/form_builder.rb
88
+ - lib/formatted_form/view_helper.rb
89
+ - test/dummy/README.rdoc
90
+ - test/dummy/Rakefile
91
+ - test/dummy/app/assets/javascripts/application.js
92
+ - test/dummy/app/assets/stylesheets/application.css
93
+ - test/dummy/app/controllers/application_controller.rb
94
+ - test/dummy/app/helpers/application_helper.rb
95
+ - test/dummy/app/mailers/.gitkeep
96
+ - test/dummy/app/models/.gitkeep
97
+ - test/dummy/app/views/layouts/application.html.erb
98
+ - test/dummy/config.ru
99
+ - test/dummy/config/application.rb
100
+ - test/dummy/config/boot.rb
101
+ - test/dummy/config/environment.rb
102
+ - test/dummy/config/environments/development.rb
103
+ - test/dummy/config/environments/production.rb
104
+ - test/dummy/config/environments/test.rb
105
+ - test/dummy/config/initializers/backtrace_silencers.rb
106
+ - test/dummy/config/initializers/inflections.rb
107
+ - test/dummy/config/initializers/mime_types.rb
108
+ - test/dummy/config/initializers/secret_token.rb
109
+ - test/dummy/config/initializers/session_store.rb
110
+ - test/dummy/config/initializers/wrap_parameters.rb
111
+ - test/dummy/config/locales/en.yml
112
+ - test/dummy/config/routes.rb
113
+ - test/dummy/lib/assets/.gitkeep
114
+ - test/dummy/log/.gitkeep
115
+ - test/dummy/public/404.html
116
+ - test/dummy/public/422.html
117
+ - test/dummy/public/500.html
118
+ - test/dummy/public/favicon.ico
119
+ - test/dummy/script/rails
120
+ - test/form_builder_test.rb
121
+ - test/test_helper.rb
46
122
  homepage: http://github.com/twg/formatted_form
47
123
  licenses:
48
124
  - MIT
@@ -56,6 +132,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
132
  - - ! '>='
57
133
  - !ruby/object:Gem::Version
58
134
  version: '0'
135
+ segments:
136
+ - 0
137
+ hash: -4409253828031207642
59
138
  required_rubygems_version: !ruby/object:Gem::Requirement
60
139
  none: false
61
140
  requirements:
@@ -64,8 +143,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
143
  version: '0'
65
144
  requirements: []
66
145
  rubyforge_project:
67
- rubygems_version: 1.6.2
146
+ rubygems_version: 1.8.23
68
147
  signing_key:
69
148
  specification_version: 3
70
- summary: A Rails form builder to simplify your forms
149
+ summary: A Rails form builder that generates Twitter Bootstrap markup and helps keep
150
+ your code clean
71
151
  test_files: []
@@ -1,14 +0,0 @@
1
- .form_element{:class => "#{field_name}"}
2
-
3
- .value
4
- = field
5
- = builder.label(method, label_text)
6
-
7
- - if required
8
- %span.required *
9
-
10
- - if error_messages.present?
11
- .errors= error_messages
12
-
13
- - if description.present?
14
- .description= description
@@ -1,17 +0,0 @@
1
- .form_element{:class => "#{field_name}"}
2
- .label
3
- = builder.label(method, label_text)
4
- - if required
5
- %span.required *
6
-
7
- .value
8
- = before_text
9
- = field
10
- = after_text
11
-
12
- - if description.present?
13
- .description= description
14
-
15
- - if error_messages.present?
16
- .errors= error_messages
17
-
@@ -1,17 +0,0 @@
1
- .form_element{:class => "#{field_name}"}
2
- .label
3
- = label_text
4
- - if required
5
- %span.required *
6
-
7
- .value
8
- - choices.each do |choice|
9
- .option
10
- = choice[:field]
11
- %label{:for => choice[:label_for]}= choice[:label]
12
-
13
- - if error_messages.present?
14
- .errors= error_messages
15
-
16
- - if description.present?
17
- .description= description
@@ -1,3 +0,0 @@
1
- .form_element{:class => "#{field_name}"}
2
- = field
3
- = after_text
@@ -1,18 +0,0 @@
1
- .clearfix{:class => ('error' if error_messages.present?)}
2
-
3
- .input
4
- %ul.inputs-list
5
- %li
6
- %label
7
- = field
8
- %span
9
- = label_text
10
- - if required
11
- %span.required *
12
-
13
- - if error_messages.present?
14
- %span.help-inline= error_messages
15
- - if description.present?
16
- %span.help-block= description
17
-
18
-