formtastic-bootstrap 1.0.3 → 1.1.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.
- data/README.md +14 -3
- data/VERSION +1 -1
- data/formtastic-bootstrap.gemspec +4 -2
- data/lib/formtastic-bootstrap/inputs.rb +1 -0
- data/lib/formtastic-bootstrap/inputs/time_zone_input.rb +14 -0
- data/spec/inputs/time_zone_input_spec.rb +120 -0
- metadata +5 -3
data/README.md
CHANGED
@@ -24,11 +24,16 @@ And install it with <tt>bundle install</tt>.
|
|
24
24
|
|
25
25
|
#### Configuration
|
26
26
|
|
27
|
-
|
27
|
+
Add the following line to your Formtastic initialization file:
|
28
28
|
|
29
29
|
# config/initializers/formtastic.rb
|
30
30
|
Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
|
31
31
|
|
32
|
+
Add the following line to the top of your <tt>application.css</tt> file:
|
33
|
+
|
34
|
+
# app/assets/stylesheets/application.css
|
35
|
+
*= require formtastic-bootstrap
|
36
|
+
|
32
37
|
Make sure you've already downloaded and installed Formtastic!
|
33
38
|
|
34
39
|
|
@@ -119,11 +124,17 @@ In particular:
|
|
119
124
|
|
120
125
|
### What's Missing
|
121
126
|
|
122
|
-
|
127
|
+
Contributions are welcome!
|
128
|
+
|
129
|
+
* Formtastic's <tt>:country</tt> has not yet been implemented.
|
123
130
|
* Twitter Bootstrap's Date Range, Prepend Text, Prepend Checkbox and Appended Checkbox controls have not yet been implemented.
|
124
131
|
|
125
|
-
## Contributing
|
132
|
+
## Contributing
|
126
133
|
|
134
|
+
### Contributors
|
135
|
+
|
136
|
+
A big thank you [to all contributors](https://github.com/mjbellantoni/formtastic-bootstrap/contributors)!
|
137
|
+
|
127
138
|
### Submitting Issues
|
128
139
|
|
129
140
|
If you're filing a bug, thank you! Secondly, in the report please include:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "formtastic-bootstrap"
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matthew Bellantoni"]
|
12
|
-
s.date = "2011-12-
|
12
|
+
s.date = "2011-12-18"
|
13
13
|
s.description = "Formtastic form builder to generate Twitter Bootstrap-friendly markup."
|
14
14
|
s.email = "mjbellantoni@yahoo.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -62,6 +62,7 @@ Gem::Specification.new do |s|
|
|
62
62
|
"lib/formtastic-bootstrap/inputs/string_input.rb",
|
63
63
|
"lib/formtastic-bootstrap/inputs/text_input.rb",
|
64
64
|
"lib/formtastic-bootstrap/inputs/time_input.rb",
|
65
|
+
"lib/formtastic-bootstrap/inputs/time_zone_input.rb",
|
65
66
|
"lib/formtastic-bootstrap/inputs/url_input.rb",
|
66
67
|
"spec/builder/errors_spec.rb",
|
67
68
|
"spec/builder/semantic_fields_for_spec.rb",
|
@@ -85,6 +86,7 @@ Gem::Specification.new do |s|
|
|
85
86
|
"spec/inputs/string_input_spec.rb",
|
86
87
|
"spec/inputs/text_input_spec.rb",
|
87
88
|
"spec/inputs/time_input_spec.rb",
|
89
|
+
"spec/inputs/time_zone_input_spec.rb",
|
88
90
|
"spec/inputs/url_input_spec.rb",
|
89
91
|
"spec/spec_helper.rb",
|
90
92
|
"spec/support/custom_macros.rb",
|
@@ -16,6 +16,7 @@ require "formtastic-bootstrap/inputs/select_input"
|
|
16
16
|
require "formtastic-bootstrap/inputs/string_input"
|
17
17
|
require "formtastic-bootstrap/inputs/text_input"
|
18
18
|
require "formtastic-bootstrap/inputs/time_input"
|
19
|
+
require "formtastic-bootstrap/inputs/time_zone_input"
|
19
20
|
require "formtastic-bootstrap/inputs/url_input"
|
20
21
|
|
21
22
|
module FormtasticBootstrap
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module FormtasticBootstrap
|
2
|
+
module Inputs
|
3
|
+
class TimeZoneInput < Formtastic::Inputs::TimeZoneInput
|
4
|
+
include Base
|
5
|
+
|
6
|
+
def to_html
|
7
|
+
generic_input_wrapping do
|
8
|
+
builder.time_zone_select(method, priority_zones, input_options, input_html_options)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe 'time_zone input' do
|
5
|
+
|
6
|
+
include FormtasticSpecHelper
|
7
|
+
|
8
|
+
before do
|
9
|
+
@output_buffer = ''
|
10
|
+
mock_everything
|
11
|
+
Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
|
12
|
+
|
13
|
+
concat(semantic_form_for(@new_post) do |builder|
|
14
|
+
concat(builder.input(:time_zone))
|
15
|
+
end)
|
16
|
+
end
|
17
|
+
|
18
|
+
it_should_have_input_wrapper_with_class("time_zone")
|
19
|
+
it_should_have_input_wrapper_with_class(:clearfix)
|
20
|
+
it_should_have_input_wrapper_with_id("post_time_zone_input")
|
21
|
+
it_should_apply_error_logic_for_input_type(:time_zone)
|
22
|
+
|
23
|
+
it 'should generate a label for the input' do
|
24
|
+
output_buffer.should have_tag('form div label')
|
25
|
+
output_buffer.should have_tag('form div label[@for="post_time_zone"]')
|
26
|
+
output_buffer.should have_tag('form div label', /Time zone/)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should generate a select" do
|
30
|
+
output_buffer.should have_tag("form div select")
|
31
|
+
output_buffer.should have_tag("form div select#post_time_zone")
|
32
|
+
output_buffer.should have_tag("form div select[@name=\"post[time_zone]\"]")
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should use input_html to style inputs' do
|
36
|
+
concat(semantic_form_for(@new_post) do |builder|
|
37
|
+
concat(builder.input(:time_zone, :input_html => { :class => 'myclass' }))
|
38
|
+
end)
|
39
|
+
output_buffer.should have_tag("form div select.myclass")
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "when namespace is provided" do
|
43
|
+
|
44
|
+
before do
|
45
|
+
@output_buffer = ''
|
46
|
+
mock_everything
|
47
|
+
Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
|
48
|
+
|
49
|
+
concat(semantic_form_for(@new_post, :namespace => 'context2') do |builder|
|
50
|
+
concat(builder.input(:time_zone))
|
51
|
+
end)
|
52
|
+
end
|
53
|
+
|
54
|
+
it_should_have_input_wrapper_with_id("context2_post_time_zone_input")
|
55
|
+
it_should_have_select_with_id("context2_post_time_zone")
|
56
|
+
it_should_have_label_for("context2_post_time_zone")
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "when index is provided" do
|
61
|
+
|
62
|
+
before do
|
63
|
+
@output_buffer = ''
|
64
|
+
mock_everything
|
65
|
+
Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder
|
66
|
+
|
67
|
+
concat(semantic_form_for(@new_post) do |builder|
|
68
|
+
concat(builder.fields_for(:author, :index => 3) do |author|
|
69
|
+
concat(author.input(:name, :as => :time_zone))
|
70
|
+
end)
|
71
|
+
end)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should index the id of the wrapper' do
|
75
|
+
output_buffer.should have_tag("div#post_author_attributes_3_name_input")
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'should index the id of the select tag' do
|
79
|
+
output_buffer.should have_tag("select#post_author_attributes_3_name")
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should index the name of the select tag' do
|
83
|
+
output_buffer.should have_tag("select[@name='post[author_attributes][3][name]']")
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
describe 'when no object is given' do
|
90
|
+
before(:each) do
|
91
|
+
concat(semantic_form_for(:project, :url => 'http://test.host/') do |builder|
|
92
|
+
concat(builder.input(:time_zone, :as => :time_zone))
|
93
|
+
end)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should generate labels' do
|
97
|
+
output_buffer.should have_tag('form div label')
|
98
|
+
output_buffer.should have_tag('form div label[@for="project_time_zone"]')
|
99
|
+
output_buffer.should have_tag('form div label', /Time zone/)
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should generate select inputs' do
|
103
|
+
output_buffer.should have_tag("form div select")
|
104
|
+
output_buffer.should have_tag("form div select#project_time_zone")
|
105
|
+
output_buffer.should have_tag("form div select[@name=\"project[time_zone]\"]")
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "when required" do
|
110
|
+
it "should add the required attribute to the input's html options" do
|
111
|
+
with_config :use_required_attribute, true do
|
112
|
+
concat(semantic_form_for(@new_post) do |builder|
|
113
|
+
concat(builder.input(:title, :as => :time_zone, :required => true))
|
114
|
+
end)
|
115
|
+
output_buffer.should have_tag("select[@required]")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: formtastic-bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0
|
5
|
+
version: 1.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Matthew Bellantoni
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-12-
|
13
|
+
date: 2011-12-18 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: formtastic
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- lib/formtastic-bootstrap/inputs/string_input.rb
|
145
145
|
- lib/formtastic-bootstrap/inputs/text_input.rb
|
146
146
|
- lib/formtastic-bootstrap/inputs/time_input.rb
|
147
|
+
- lib/formtastic-bootstrap/inputs/time_zone_input.rb
|
147
148
|
- lib/formtastic-bootstrap/inputs/url_input.rb
|
148
149
|
- spec/builder/errors_spec.rb
|
149
150
|
- spec/builder/semantic_fields_for_spec.rb
|
@@ -167,6 +168,7 @@ files:
|
|
167
168
|
- spec/inputs/string_input_spec.rb
|
168
169
|
- spec/inputs/text_input_spec.rb
|
169
170
|
- spec/inputs/time_input_spec.rb
|
171
|
+
- spec/inputs/time_zone_input_spec.rb
|
170
172
|
- spec/inputs/url_input_spec.rb
|
171
173
|
- spec/spec_helper.rb
|
172
174
|
- spec/support/custom_macros.rb
|
@@ -186,7 +188,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
188
|
requirements:
|
187
189
|
- - ">="
|
188
190
|
- !ruby/object:Gem::Version
|
189
|
-
hash:
|
191
|
+
hash: 1118750897900617587
|
190
192
|
segments:
|
191
193
|
- 0
|
192
194
|
version: "0"
|