miniform 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/miniform.rb +5 -1
- data/lib/miniform/field.rb +52 -0
- data/lib/miniform/{builder.rb → form_builder.rb} +8 -41
- data/lib/miniform/form_helper.rb +30 -0
- data/lib/miniform/horizontal_form_builder.rb +4 -0
- data/lib/miniform/version.rb +1 -1
- data/lib/miniform/vertical_form_builder.rb +4 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74017dcee30c276a8c7a5a3a446af410cc84e4d5
|
4
|
+
data.tar.gz: 5b73bb777f7f05456309ed17968e659affca92f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdc43a376adacf8760ce464f465d9f31d5a9d0387c2c370945243311dfb09babbe7a25e9eca4b168f8ed72f270a711563431f91cb2f2940953b9b8c3fa1ecc4a
|
7
|
+
data.tar.gz: 060978724d96232c88ba1bd2f30e32aff24125fe4fe786c5fb908cd1fe652c7706c5ea1078be47e7c869451f027a2e09dc6a2fb9a2fb182610d487ed347887e9
|
data/lib/miniform.rb
CHANGED
@@ -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
|
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
|
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
|
data/lib/miniform/version.rb
CHANGED
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.
|
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-
|
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/
|
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:
|