bootstrap-form 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  # Bootstrap Form
2
2
 
3
- Helpers to easily use the twitter bootstrap CSS framework on your forms.
3
+ Form Helpers to make your form inputs [look like this](http://twitter.github.com/bootstrap/#forms).
4
4
 
5
- For more info about [Twitter
6
- Bootstrap go here](http://twitter.github.com/bootstrap).
5
+ Helps you to create beautiful mocks really quickly.
7
6
 
8
7
  ## Usage
9
8
 
@@ -15,17 +14,21 @@ Bundle install
15
14
 
16
15
  bundle install
17
16
 
18
- ## Text Field
17
+ To make them look even better, I recommend you add this to your
18
+ application.rb
19
19
 
20
- Will add all the divs around the textfield and the classes required to
21
- work with bootstrap.
20
+ ActionView::Base.field_error_proc = proc { |input, instance| input }
21
+
22
+ ## Example
23
+
24
+ You write this:
22
25
 
23
26
  form_for @account do |f|
24
27
  f.bootstrap_text_field :name
25
28
  end
26
29
 
27
30
 
28
- Will generate something like:
31
+ You get something like this:
29
32
 
30
33
  <div class="clearfix">
31
34
  <label for="account_name">Name</label>
@@ -34,6 +37,8 @@ Will generate something like:
34
37
  </div>
35
38
  </div>
36
39
 
40
+ Pretty straight forward.
41
+
37
42
  ## Other helpers
38
43
 
39
44
  So far, I have implemented the following helpers:
@@ -41,6 +46,7 @@ So far, I have implemented the following helpers:
41
46
  * bootstrap_text_field
42
47
  * bootstrap_password_field
43
48
  * bootstrap_collection_select
49
+ * bootstrap_file_field
44
50
 
45
51
  Expect more in the near future
46
52
 
@@ -51,5 +57,4 @@ bootstrap styles.
51
57
 
52
58
  # TODO
53
59
 
54
- * Refactor the code, there's lots of things that can be done better
55
60
  * More form inputs
@@ -18,7 +18,9 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'rails', '~> 3.0'
21
+
22
+ s.add_dependency 'railties', '~> 3.0'
23
+ s.add_dependency 'actionpack', '~> 3.0'
22
24
 
23
25
  s.add_development_dependency "minitest"
24
26
  s.add_development_dependency "rr"
@@ -2,43 +2,52 @@ module ActionView
2
2
  module Helpers
3
3
  module FormHelper
4
4
  def bootstrap_text_field(object_name, method, options={})
5
- bootstrap_clearfix_wrap(object_name, method, options.dup, text_field(object_name, method, options))
5
+ bootstrap_clearfix_wrap(object_name, method, text_field(object_name, method, options.dup), options)
6
6
  end
7
7
 
8
8
  def bootstrap_password_field(object_name, method, options={})
9
- bootstrap_clearfix_wrap(object_name, method, options.dup, password_field(object_name, method, options))
9
+ bootstrap_clearfix_wrap(object_name, method, password_field(object_name, method, options.dup), options)
10
10
  end
11
11
 
12
12
  def bootstrap_collection_select(object_name, method, collection, value_method, text_method, options = {}, html_options = {})
13
- bootstrap_clearfix_wrap(object_name, method, options.dup, collection_select(object_name, method, collection, value_method, text_method, options, html_options))
13
+ bootstrap_clearfix_wrap(object_name, method, collection_select(object_name, method, collection, value_method, text_method, options.dup, html_options), options)
14
14
  end
15
15
 
16
- def bootstrap_clearfix_wrap(object_name, method, options={}, content)
16
+ def bootstrap_file_field(object_name, method, options={})
17
+ bootstrap_clearfix_wrap(object_name, method, file_field(object_name, method, options.dup), options)
18
+ end
19
+
20
+ def bootstrap_clearfix_wrap(object_name, method, content, options={})
17
21
  error_messages = options[:object].errors[method]
18
22
  clearfix_tag = error_messages.empty? ? 'clearfix' : 'clearfix error'
19
23
  content_tag(:div, label(object_name, method) +
20
- content_tag(:div, content + inline_help_tag(error_messages), class: 'input'),
21
- class: clearfix_tag)
24
+ content_tag(:div, content + inline_help_tag(error_messages), :class => 'input'),
25
+ :class => clearfix_tag)
22
26
  end
23
27
 
24
28
  def inline_help_tag(messages)
25
29
  message_span = ActiveSupport::SafeBuffer.new(" #{messages.join(',')}")
26
- messages.empty? ? '' : content_tag(:span, message_span, class: 'help-inline')
30
+ messages.empty? ? '' : content_tag(:span, message_span, :class => 'help-inline')
27
31
  end
28
32
  end
29
33
  end
30
34
  end
31
35
 
32
36
  class ActionView::Helpers::FormBuilder #:nodoc:
33
- def bootstrap_text_field(method, options = {})
37
+ def bootstrap_text_field(method, options={})
34
38
  @template.bootstrap_text_field(@object_name, method, objectify_options(options))
35
39
  end
36
40
 
37
- def bootstrap_password_field(method, options = {})
41
+ def bootstrap_password_field(method, options={})
38
42
  @template.bootstrap_password_field(@object_name, method, objectify_options(options))
39
43
  end
40
44
 
41
45
  def bootstrap_collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
42
46
  @template.bootstrap_collection_select(@object_name, method, collection, value_method, text_method, objectify_options(options), html_options)
43
47
  end
48
+
49
+ def bootstrap_file_field(method, options={})
50
+ self.multipart = true
51
+ @template.bootstrap_file_field(@object_name, method, objectify_options(options))
52
+ end
44
53
  end
@@ -1,5 +1,5 @@
1
1
  module Bootstrap
2
2
  module Form
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -10,7 +10,7 @@ class FormHelperTest < ActionView::TestCase
10
10
  stub(object).name { 'Object Name' }
11
11
 
12
12
  expected_code = %{<div class="clearfix"><label for="post_name">Name</label><div class="input">content</div></div>}
13
- assert_equal expected_code, bootstrap_clearfix_wrap(:post, :name, options, content)
13
+ assert_equal expected_code, bootstrap_clearfix_wrap(:post, :name, content, options)
14
14
  end
15
15
 
16
16
  def test_bootstrap_clearfix_wrap_with_errors
@@ -22,7 +22,7 @@ class FormHelperTest < ActionView::TestCase
22
22
  stub(object).name { 'Object Name' }
23
23
 
24
24
  expected_code = %{<div class="clearfix error"><label for="post_name">Name</label><div class="input">content<span class="help-inline"> can't be blank</span></div></div>}
25
- assert_equal expected_code, bootstrap_clearfix_wrap(:post, :name, options, content)
25
+ assert_equal expected_code, bootstrap_clearfix_wrap(:post, :name, content, options)
26
26
  end
27
27
 
28
28
  def test_bootstrap_text_field
@@ -30,7 +30,7 @@ class FormHelperTest < ActionView::TestCase
30
30
  options = { :object => mock }
31
31
 
32
32
  mock(self).text_field(:post, :name, options) { text_field }
33
- mock(self).bootstrap_clearfix_wrap(:post, :name, options.dup, text_field) { html }
33
+ mock(self).bootstrap_clearfix_wrap(:post, :name, text_field, options.dup) { html }
34
34
  assert_equal html, bootstrap_text_field(:post, :name, options)
35
35
  end
36
36
 
@@ -39,7 +39,7 @@ class FormHelperTest < ActionView::TestCase
39
39
  options = { :object => mock }
40
40
 
41
41
  mock(self).password_field(:post, :password, options) { password_field }
42
- mock(self).bootstrap_clearfix_wrap(:post, :password, options.dup, password_field) { html }
42
+ mock(self).bootstrap_clearfix_wrap(:post, :password, password_field, options.dup) { html }
43
43
  assert_equal html, bootstrap_password_field(:post, :password, options)
44
44
  end
45
45
 
@@ -48,8 +48,17 @@ class FormHelperTest < ActionView::TestCase
48
48
  options = { :object => mock }
49
49
 
50
50
  mock(self).collection_select(:post, :name, collection, :id, :name, options, {}) { collection_select_html }
51
- mock(self).bootstrap_clearfix_wrap(:post, :name, options.dup, collection_select_html) { html }
51
+ mock(self).bootstrap_clearfix_wrap(:post, :name, collection_select_html, options.dup) { html }
52
52
 
53
53
  assert_equal html, bootstrap_collection_select(:post, :name, collection, :id ,:name, options)
54
54
  end
55
+
56
+ def test_bootstrap_file_field
57
+ html, text_field = mock, mock
58
+ options = { :object => mock }
59
+
60
+ mock(self).file_field(:post, :attachment, options) { text_field }
61
+ mock(self).bootstrap_clearfix_wrap(:post, :attachment, text_field, options.dup) { html }
62
+ assert_equal html, bootstrap_file_field(:post, :attachment, options)
63
+ end
55
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap-form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,8 +12,8 @@ cert_chain: []
12
12
  date: 2011-09-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: &70254815421580 !ruby/object:Gem::Requirement
15
+ name: railties
16
+ requirement: &70208123840560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70254815421580
24
+ version_requirements: *70208123840560
25
+ - !ruby/object:Gem::Dependency
26
+ name: actionpack
27
+ requirement: &70208123840060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70208123840060
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: minitest
27
- requirement: &70254815421160 !ruby/object:Gem::Requirement
38
+ requirement: &70208123839660 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70254815421160
46
+ version_requirements: *70208123839660
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rr
38
- requirement: &70254815420700 !ruby/object:Gem::Requirement
49
+ requirement: &70208123839060 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,7 +54,7 @@ dependencies:
43
54
  version: '0'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70254815420700
57
+ version_requirements: *70208123839060
47
58
  description: Twitter Bootstrap Form helpers
48
59
  email:
49
60
  - david@crowdint.com