bootstrap_forms 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/bootstrap_forms.gemspec +1 -1
- data/lib/bootstrap_forms/form_builder.rb +8 -0
- data/spec/support/shared_context.rb +37 -2
- metadata +2 -2
data/bootstrap_forms.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'bootstrap_forms'
|
6
|
-
s.version = '3.0.
|
6
|
+
s.version = '3.0.1'
|
7
7
|
s.author = 'Seth Vargo'
|
8
8
|
s.email = 'sethvargo@gmail.com'
|
9
9
|
s.homepage = 'https://github.com/sethvargo/bootstrap_forms'
|
@@ -41,6 +41,13 @@ module BootstrapForms
|
|
41
41
|
url_field
|
42
42
|
).each do |method_name|
|
43
43
|
define_method(method_name) do |name, *raw_args|
|
44
|
+
|
45
|
+
# Special case for select
|
46
|
+
if method_name == 'select'
|
47
|
+
while raw_args.length < 3
|
48
|
+
raw_args << {}
|
49
|
+
end
|
50
|
+
end
|
44
51
|
|
45
52
|
options = {}
|
46
53
|
html_options = {}
|
@@ -212,6 +219,7 @@ module BootstrapForms
|
|
212
219
|
end
|
213
220
|
|
214
221
|
private
|
222
|
+
|
215
223
|
def field_options(args)
|
216
224
|
if @options
|
217
225
|
@options.slice(:namespace, :index).merge(args)
|
@@ -139,6 +139,30 @@ shared_examples 'a bootstrap form' do
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
+
describe "select" do
|
143
|
+
|
144
|
+
describe "with hash values, options and html options" do
|
145
|
+
it 'is wrapped' do
|
146
|
+
@result = @builder.select(:name, {"False" => false}, { :selected => false }, {:class => "my-special-select"})
|
147
|
+
@result.should match /^<div class=\"control-group\"><label class=\"control-label\" for=\"item_name\">Name<\/label><div class=\"controls\"><select class=\"my-special-select\" id=\"item_name\" name=\"item\[name\]\"><option value=\"false\" selected=\"selected\">False<\/option><\/select><\/div><\/div>$/
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "with only hash values and options" do
|
152
|
+
it 'is wrapped' do
|
153
|
+
@result = @builder.select(:name, {"False" => false}, { :selected => false })
|
154
|
+
@result.should match /^<div class=\"control-group\"><label class=\"control-label\" for=\"item_name\">Name<\/label><div class=\"controls\"><select id=\"item_name\" name=\"item\[name\]\"><option value=\"false\" selected=\"selected\">False<\/option><\/select><\/div><\/div>$/
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
describe "with only hash values" do
|
159
|
+
it 'is wrapped' do
|
160
|
+
@result = @builder.select(:name, {"False" => false})
|
161
|
+
@result.should match /^<div class=\"control-group\"><label class=\"control-label\" for=\"item_name\">Name<\/label><div class=\"controls\"><select id=\"item_name\" name=\"item\[name\]\"><option value=\"false\">False<\/option><\/select><\/div><\/div>$/
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
142
166
|
|
143
167
|
describe 'country_select' do
|
144
168
|
before(:each) do
|
@@ -150,7 +174,7 @@ shared_examples 'a bootstrap form' do
|
|
150
174
|
end
|
151
175
|
end
|
152
176
|
|
153
|
-
describe '
|
177
|
+
describe 'country_select with html options' do
|
154
178
|
before(:each) do
|
155
179
|
@result = @builder.country_select(:name, [ "United Kingdom", "France", "Germany" ], {}, :class => "baz")
|
156
180
|
end
|
@@ -235,7 +259,7 @@ shared_examples 'a bootstrap form' do
|
|
235
259
|
end
|
236
260
|
|
237
261
|
context 'label option' do
|
238
|
-
%w(
|
262
|
+
%w(email_field file_field number_field password_field search_field text_area text_field url_field).each do |method_name|
|
239
263
|
|
240
264
|
it "should not add a label when ''" do
|
241
265
|
@builder.send(method_name.to_sym, 'name', :label => '').should_not match /<\/label>/
|
@@ -245,6 +269,17 @@ shared_examples 'a bootstrap form' do
|
|
245
269
|
@builder.send(method_name.to_sym, 'name', :label => false).should_not match /<\/label>/
|
246
270
|
end
|
247
271
|
end
|
272
|
+
|
273
|
+
%w(select).each do |method_name|
|
274
|
+
|
275
|
+
it "should not add a label when ''" do
|
276
|
+
@builder.send(method_name.to_sym, 'name', [1,2], :label => '').should_not match /<\/label>/
|
277
|
+
end
|
278
|
+
|
279
|
+
it 'should not add a label when false' do
|
280
|
+
@builder.send(method_name.to_sym, 'name', [1,2], :label => false).should_not match /<\/label>/
|
281
|
+
end
|
282
|
+
end
|
248
283
|
end
|
249
284
|
end # extras
|
250
285
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_forms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec-rails
|