miniform 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec5b58e438def8a2ded36d75a2a2e3731ed3477f
4
- data.tar.gz: 0336244fffa866dd7c864f45c17ddd6c1d492036
3
+ metadata.gz: 74017dcee30c276a8c7a5a3a446af410cc84e4d5
4
+ data.tar.gz: 5b73bb777f7f05456309ed17968e659affca92f8
5
5
  SHA512:
6
- metadata.gz: 37f761c71d94697607991903ea775c9ffbdafd06943dbcfab6ee0d5b712ec550f9992a487c11f683b8332e0a47ba1105bc56350af59860ec6e57125e74969556
7
- data.tar.gz: 52f63f782d71a871fa0105db6528a245b0bc411831941994e31b71c41b6bdcc5a2fff4ebab66d647c6e4536bb8a91e4db74cc32c1e3282f88cc93737e7b29f78
6
+ metadata.gz: cdc43a376adacf8760ce464f465d9f31d5a9d0387c2c370945243311dfb09babbe7a25e9eca4b168f8ed72f270a711563431f91cb2f2940953b9b8c3fa1ecc4a
7
+ data.tar.gz: 060978724d96232c88ba1bd2f30e32aff24125fe4fe786c5fb908cd1fe652c7706c5ea1078be47e7c869451f027a2e09dc6a2fb9a2fb182610d487ed347887e9
@@ -1,2 +1,6 @@
1
1
  require "miniform/version"
2
- require "miniform/builder"
2
+ require "miniform/field"
3
+ require "miniform/form_builder"
4
+ require "miniform/horizontal_form_builder"
5
+ require "miniform/vertical_form_builder"
6
+ require "miniform/form_helper"
@@ -0,0 +1,52 @@
1
+ module Miniform
2
+ class Field
3
+ def initialize(builder, name, options, &block)
4
+ @builder = builder
5
+ @name = name
6
+ @options = options
7
+ @block = block
8
+ end
9
+
10
+ def render
11
+ if should_omit_label?
12
+ @block.call + help_block
13
+ else
14
+ @builder.form_group(@name) do
15
+ if vertical?
16
+ label + @block.call + help_block
17
+ else
18
+ label + input_wrapper { @block.call + help_block }
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def vertical?
27
+ @builder.is_a?(VerticalFormBuilder)
28
+ end
29
+
30
+ def should_omit_label?
31
+ @options.key?(:label) && !@options[:label]
32
+ end
33
+
34
+ def label
35
+ if vertical?
36
+ @builder.label(@name, @options[:label])
37
+ else
38
+ @builder.label(@name, @options[:label], class: "col-md-3")
39
+ end
40
+ end
41
+
42
+ def help_block
43
+ unless @options[:error] == false
44
+ @builder.help_block(@name)
45
+ end
46
+ end
47
+
48
+ def input_wrapper(&block)
49
+ @builder.content_tag(:div, class: "col-md-9", &block)
50
+ end
51
+ end
52
+ end
@@ -1,44 +1,5 @@
1
1
  module Miniform
2
- class Builder < ActionView::Helpers::FormBuilder
3
- class Field
4
- def initialize(builder, name, options, &block)
5
- @builder = builder
6
- @name = name
7
- @options = options
8
- @block = block
9
- end
10
-
11
- def render
12
- if should_omit_label?
13
- @block.call + help_block
14
- else
15
- @builder.form_group(@name) do
16
- label + input_wrapper { @block.call + help_block }
17
- end
18
- end
19
- end
20
-
21
- private
22
-
23
- def should_omit_label?
24
- @options.key?(:label) && !@options[:label]
25
- end
26
-
27
- def label
28
- @builder.label(@name, @options[:label], class: "col-md-3")
29
- end
30
-
31
- def help_block
32
- unless @options[:error] == false
33
- @builder.help_block(@name)
34
- end
35
- end
36
-
37
- def input_wrapper(&block)
38
- @builder.content_tag(:div, class: "col-md-9", &block)
39
- end
40
- end
41
-
2
+ class FormBuilder < ActionView::Helpers::FormBuilder
42
3
  def form_group(*names, &block)
43
4
  classes = %w[ form-group ]
44
5
  classes << "has-error" if names.any? { |n| errors(n) }
@@ -79,7 +40,7 @@ module Miniform
79
40
  end.render
80
41
  end
81
42
 
82
- def datetime_select(method, options = {}, html_options = {})
43
+ def datetime_select(method, options = {}, html_options = {})
83
44
  field_options = extract_field_options!(options)
84
45
  html_options = options_with_class(html_options, "form-control")
85
46
 
@@ -104,6 +65,12 @@ module Miniform
104
65
  @template.content_tag(*args, &block)
105
66
  end
106
67
 
68
+ def fields_for(*args, &block)
69
+ options = args.extract_options!
70
+ options[:builder] ||= Miniform::FormBuilder
71
+ super(*args, options, &block)
72
+ end
73
+
107
74
  private
108
75
 
109
76
  def extract_field_options!(options)
@@ -0,0 +1,30 @@
1
+ module Miniform
2
+ module FormHelper
3
+ def miniform_for(*args, &block)
4
+ options = args.extract_options!
5
+ configure_options_with_builder(options)
6
+ form_for *args, options, &block
7
+ end
8
+
9
+ def miniform_fields_for(*args, &block)
10
+ options = args.extract_options!
11
+ configure_options_with_builder(options)
12
+ fields_for *args, options, &block
13
+ end
14
+
15
+ private
16
+
17
+ def configure_options_with_builder(options)
18
+ if options.delete(:vertical)
19
+ options[:builder] ||= Miniform::VerticalFormBuilder
20
+ else
21
+ options[:builder] ||= Miniform::HorizontalFormBuilder
22
+ options[:html] ||= {}
23
+ options[:html][:class] = Array(options[:html][:class])
24
+ options[:html][:class] << "form-horizontal"
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ ActionView::Base.send :include, Miniform::FormHelper
@@ -0,0 +1,4 @@
1
+ module Miniform
2
+ class HorizontalFormBuilder < FormBuilder
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module Miniform
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,4 @@
1
+ module Miniform
2
+ class VerticalFormBuilder < FormBuilder
3
+ end
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miniform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Hendry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2013-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -51,8 +51,12 @@ files:
51
51
  - README.md
52
52
  - Rakefile
53
53
  - lib/miniform.rb
54
- - lib/miniform/builder.rb
54
+ - lib/miniform/field.rb
55
+ - lib/miniform/form_builder.rb
56
+ - lib/miniform/form_helper.rb
57
+ - lib/miniform/horizontal_form_builder.rb
55
58
  - lib/miniform/version.rb
59
+ - lib/miniform/vertical_form_builder.rb
56
60
  - miniform.gemspec
57
61
  homepage: https://github.com/chendry/miniform
58
62
  licenses: