simple_bootstrap_form 0.0.4 → 0.0.5
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/.ruby-version +1 -1
- data/README.md +6 -0
- data/lib/simple_bootstrap_form/field_factory.rb +3 -1
- data/lib/simple_bootstrap_form/version.rb +1 -1
- data/simple_bootstrap_form.gemspec +1 -1
- data/spec/dummy/config/environments/production.rb +1 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/have_element_spec.rb +6 -6
- data/spec/horizontal_form/fields/base_field_spec.rb +1 -1
- data/spec/horizontal_form/fields/select_field_spec.rb +1 -1
- data/spec/simple_bootstrap_form_spec.rb +74 -74
- data/spec/spec_helper.rb +0 -1
- data/spec/support/have_element.rb +3 -9
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65f90240ab99e3a0b46b324b5df95ba49a5dee02
|
4
|
+
data.tar.gz: f7ad48aa51d56145cd4087c0aa51bfd5517a30e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 491c8983cc4ce4884e3899adec4c6b11d71003e4205bfada2f5b4c2d27e0894049aa1649c9fd5c0ea564dc4d40178f7f03f8ab0b22ad144c97c726347b4c8865
|
7
|
+
data.tar.gz: 9e6474ea9135856d500457a1bd9d2239a5389b0c6d5221fdaf12021a3c44793ac3465893fb80afaabf8047683b562ac3c3c0a00e2fe9b965e20ace4b4f72658d
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.1.
|
1
|
+
ruby-2.1.5
|
data/README.md
CHANGED
@@ -180,6 +180,12 @@ Generates (spaces added for clarity):
|
|
180
180
|
4. Push to the branch (`git push origin my-new-feature`)
|
181
181
|
5. Create new Pull Request
|
182
182
|
|
183
|
+
## Releasing
|
184
|
+
|
185
|
+
Update lib/simple_bootstrap_form/version.rb, commit & push
|
186
|
+
rake build
|
187
|
+
rake release
|
188
|
+
|
183
189
|
## TODO
|
184
190
|
|
185
191
|
* Vertical Form
|
@@ -46,7 +46,9 @@ module SimpleBootstrapForm
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def attr_column_type(attr)
|
49
|
-
|
49
|
+
ActiveSupport::Deprecation.silence do
|
50
|
+
@builder.object.try(:column_for_attribute, attr).try(:type) || :string
|
51
|
+
end
|
50
52
|
end
|
51
53
|
|
52
54
|
def string_field_class_prefix_based_on_column_name(attr)
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.5"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec-rails", ">= 3.0.0
|
23
|
+
spec.add_development_dependency "rspec-rails", ">= 3.0.0"
|
24
24
|
spec.add_development_dependency "sqlite3"
|
25
25
|
spec.add_development_dependency "nokogiri" # used by has_element matcher
|
26
26
|
spec.add_runtime_dependency "rails", ">= 4"
|
@@ -20,7 +20,7 @@ Dummy::Application.configure do
|
|
20
20
|
# config.action_dispatch.rack_cache = true
|
21
21
|
|
22
22
|
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
-
config.
|
23
|
+
config.serve_static_files = false
|
24
24
|
|
25
25
|
# Compress JavaScripts and CSS.
|
26
26
|
config.assets.js_compressor = :uglifier
|
@@ -13,7 +13,7 @@ Dummy::Application.configure do
|
|
13
13
|
config.eager_load = false
|
14
14
|
|
15
15
|
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
-
config.
|
16
|
+
config.serve_static_files = true
|
17
17
|
config.static_cache_control = "public, max-age=3600"
|
18
18
|
|
19
19
|
# Show full error reports and disable caching.
|
data/spec/have_element_spec.rb
CHANGED
@@ -30,7 +30,7 @@ describe "have_element RSpec matcher" do
|
|
30
30
|
it "should have an appropriate error message for should" do
|
31
31
|
matcher = have_element("input").with_only_classes('bar')
|
32
32
|
expect(matcher.matches? subject).to eq false
|
33
|
-
expect(matcher.
|
33
|
+
expect(matcher.failure_message).to eq(
|
34
34
|
%Q{expected #{subject} to have classes "bar" but it has classes "bar baz"}
|
35
35
|
)
|
36
36
|
end
|
@@ -38,7 +38,7 @@ describe "have_element RSpec matcher" do
|
|
38
38
|
it "should have an appropriate error message for should not" do
|
39
39
|
matcher = have_element("input").with_only_classes('bar baz')
|
40
40
|
expect(matcher.matches? subject).to eq true
|
41
|
-
expect(matcher.
|
41
|
+
expect(matcher.failure_message_when_negated).to eq(
|
42
42
|
%Q{expected #{subject} not to have classes "bar baz" but it has classes "bar baz"}
|
43
43
|
)
|
44
44
|
end
|
@@ -62,7 +62,7 @@ describe "have_element RSpec matcher" do
|
|
62
62
|
.with_placeholder('Attr One')
|
63
63
|
|
64
64
|
expect(matcher.matches? subject).to eq false
|
65
|
-
expect(matcher.
|
65
|
+
expect(matcher.failure_message).to eq(
|
66
66
|
%Q{expected #{subject} to have classes "bad class list" but it has classes "bar baz"}
|
67
67
|
)
|
68
68
|
end
|
@@ -91,7 +91,7 @@ describe "have_element RSpec matcher" do
|
|
91
91
|
it "should have an appropriate error message for should" do
|
92
92
|
matcher = have_element("div").with_id('foo').with_content('Bad Content')
|
93
93
|
expect(matcher.matches? subject).to eq false
|
94
|
-
expect(matcher.
|
94
|
+
expect(matcher.failure_message).to eq(
|
95
95
|
%Q{expected #{inspected_subject} to } +
|
96
96
|
%Q{have content "Bad Content" but it has content "Some Content"}
|
97
97
|
)
|
@@ -100,7 +100,7 @@ describe "have_element RSpec matcher" do
|
|
100
100
|
it "should have an appropriate error message for should not" do
|
101
101
|
matcher = have_element("div").with_id('foo').with_content('Some Content')
|
102
102
|
expect(matcher.matches? subject).to eq true
|
103
|
-
expect(matcher.
|
103
|
+
expect(matcher.failure_message_when_negated).to eq(
|
104
104
|
%Q{expected #{inspected_subject} not to } +
|
105
105
|
%Q{have content "Some Content" but it has content "Some Content"}
|
106
106
|
)
|
@@ -111,7 +111,7 @@ describe "have_element RSpec matcher" do
|
|
111
111
|
.with_only_classes('bar')
|
112
112
|
.with_content('Bad Content')
|
113
113
|
expect(matcher.matches? subject).to eq false
|
114
|
-
expect(matcher.
|
114
|
+
expect(matcher.failure_message).to eq(
|
115
115
|
%Q{expected #{inspected_subject} to } +
|
116
116
|
%Q{have classes "bar" but it has classes "c1 c2"} +
|
117
117
|
%Q{ and have content "Bad Content" but it has content "Some Content"}
|
@@ -51,7 +51,7 @@ describe SimpleBootstrapForm::HorizontalForm::Fields::BaseField do
|
|
51
51
|
<div class="form-group custom-group-class">
|
52
52
|
<label class="col-xs-4 control-label" for="model1_attr1">Custom Label</label>
|
53
53
|
<div class="col-xs-6">
|
54
|
-
<input class="form-control"
|
54
|
+
<input placeholder="Custom Placeholder" class="form-control" type="text" name="model1[attr1]" id="model1_attr1" />
|
55
55
|
</div>
|
56
56
|
</div>
|
57
57
|
HTML
|
@@ -40,7 +40,7 @@ describe SimpleBootstrapForm::HorizontalForm::Fields::SelectField do
|
|
40
40
|
<div class="form-group model1_attr1_group">
|
41
41
|
<label class="col-sm-3 control-label" for="model1_attr1">Attr1</label>
|
42
42
|
<div class="col-sm-6">
|
43
|
-
<select class="form-control"
|
43
|
+
<select class="form-control" name="model1[attr1]" id="model1_attr1">
|
44
44
|
<option value="1">1</option>
|
45
45
|
<option value="3">3</option>
|
46
46
|
<option selected="selected" value="5">5</option>
|
@@ -351,78 +351,65 @@ describe SimpleBootstrapForm, type: :helper do
|
|
351
351
|
Model3.new
|
352
352
|
end
|
353
353
|
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
<label>
|
414
|
-
<input type="checkbox"> Remember me
|
415
|
-
</label>
|
416
|
-
</div>
|
417
|
-
</div>
|
418
|
-
</div>
|
419
|
-
<div class="form-group">
|
420
|
-
<div class="col-sm-offset-2 col-sm-10">
|
421
|
-
<button type="submit" class="btn btn-default">Sign in</button>
|
422
|
-
</div>
|
423
|
-
</div>
|
424
|
-
</form>
|
425
|
-
HORIZONTAL_FORM
|
354
|
+
# Original copy from getbootstrap.com
|
355
|
+
#<form class="form-horizontal" role="form">
|
356
|
+
# <div class="form-group">
|
357
|
+
# <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
|
358
|
+
# <div class="col-sm-10">
|
359
|
+
# <input type="email" class="form-control" id="inputEmail3" placeholder="Email">
|
360
|
+
# </div>
|
361
|
+
# </div>
|
362
|
+
# <div class="form-group">
|
363
|
+
# <label for="inputPassword3" class="col-sm-2 control-label">Password</label>
|
364
|
+
# <div class="col-sm-10">
|
365
|
+
# <input type="password" class="form-control" id="inputPassword3" placeholder="Password">
|
366
|
+
# </div>
|
367
|
+
# </div>
|
368
|
+
# <div class="form-group">
|
369
|
+
# <div class="col-sm-offset-2 col-sm-10">
|
370
|
+
# <div class="checkbox">
|
371
|
+
# <label>
|
372
|
+
# <input type="checkbox"> Remember me
|
373
|
+
# </label>
|
374
|
+
# </div>
|
375
|
+
# </div>
|
376
|
+
# </div>
|
377
|
+
# <div class="form-group">
|
378
|
+
# <div class="col-sm-offset-2 col-sm-10">
|
379
|
+
# <button type="submit" class="btn btn-default">Sign in</button>
|
380
|
+
# </div>
|
381
|
+
# </div>
|
382
|
+
#</form>
|
383
|
+
|
384
|
+
# The snippets below have been "Railsified" as follows:
|
385
|
+
# <form>
|
386
|
+
# add accept-charset, action, id, method, model-specific class
|
387
|
+
# <label>
|
388
|
+
# changed for= to model_field
|
389
|
+
# <input>
|
390
|
+
# reorder input attributes to match Rails' order
|
391
|
+
# add name=
|
392
|
+
|
393
|
+
let(:email_field_markup) {
|
394
|
+
outdent <<-HTML
|
395
|
+
<div class="form-group">
|
396
|
+
<label class="col-sm-2 control-label" for="model3_inputEmail3">Email</label>
|
397
|
+
<div class="col-sm-10">
|
398
|
+
<input placeholder="Email" class="form-control" type="email" name="model3[inputEmail3]" id="model3_inputEmail3" />
|
399
|
+
</div>
|
400
|
+
</div>
|
401
|
+
HTML
|
402
|
+
}
|
403
|
+
|
404
|
+
let(:password_field_markup) {
|
405
|
+
outdent <<-HTML
|
406
|
+
<div class="form-group">
|
407
|
+
<label class="col-sm-2 control-label" for="model3_inputPassword3">Password</label>
|
408
|
+
<div class="col-sm-10">
|
409
|
+
<input placeholder="Password" class="form-control" type="password" name="model3[inputPassword3]" id="model3_inputPassword3" />
|
410
|
+
</div>
|
411
|
+
</div>
|
412
|
+
HTML
|
426
413
|
}
|
427
414
|
|
428
415
|
subject {
|
@@ -438,8 +425,21 @@ describe SimpleBootstrapForm, type: :helper do
|
|
438
425
|
end
|
439
426
|
}
|
440
427
|
|
441
|
-
it "should generate the correct
|
442
|
-
|
428
|
+
it "should generate the correct form tag" do
|
429
|
+
expect(subject.to_s).to have_element('form')
|
430
|
+
.with_id('new_model3')
|
431
|
+
.with_only_classes('form-horizontal new_model3')
|
432
|
+
.with_attr_value(:action, '/foo')
|
433
|
+
end
|
434
|
+
|
435
|
+
it "should generate the correct email field" do
|
436
|
+
markup = Nokogiri::XML(subject.to_s).css('.form-group').first
|
437
|
+
expect(pretty_html markup.to_s).to eq email_field_markup
|
438
|
+
end
|
439
|
+
|
440
|
+
it "should generate the correct password field" do
|
441
|
+
markup = Nokogiri::XML(subject.to_s).css('.form-group')[1]
|
442
|
+
expect(pretty_html markup.to_s).to eq password_field_markup
|
443
443
|
end
|
444
444
|
end
|
445
445
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
ENV["RAILS_ENV"] ||= 'test'
|
3
3
|
require File.expand_path("../dummy/config/environment", __FILE__)
|
4
4
|
require 'rspec/rails'
|
5
|
-
require 'rspec/autorun'
|
6
5
|
|
7
6
|
# Requires supporting ruby files with custom matchers and macros, etc, in
|
8
7
|
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
@@ -1,19 +1,13 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
|
3
3
|
RSpec::Matchers.define :have_element do |selector|
|
4
|
-
|
4
|
+
match do |markup|
|
5
5
|
@selector = selector
|
6
6
|
@markup = markup
|
7
7
|
element_is_present && classes_match && content_matches
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
|
-
# @selector = selector
|
12
|
-
# @markup = markup
|
13
|
-
# !element_is_present || !classes_match || !content_matches
|
14
|
-
#end
|
15
|
-
|
16
|
-
failure_message_for_should do |markup|
|
10
|
+
failure_message do |markup|
|
17
11
|
if the_element.nil?
|
18
12
|
"expected to find an element matching #{actual_selector} in #{markup}"
|
19
13
|
else
|
@@ -25,7 +19,7 @@ RSpec::Matchers.define :have_element do |selector|
|
|
25
19
|
end
|
26
20
|
end
|
27
21
|
|
28
|
-
|
22
|
+
failure_message_when_negated do |markup|
|
29
23
|
if checking_classes? || checking_content?
|
30
24
|
if the_element.nil?
|
31
25
|
# If we have post tag-retrieval checks, it is an error not to find the tag
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_bootstrap_form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Pierson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.0.0
|
47
|
+
version: 3.0.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.0.0
|
54
|
+
version: 3.0.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
198
|
version: '0'
|
199
199
|
requirements: []
|
200
200
|
rubyforge_project:
|
201
|
-
rubygems_version: 2.
|
201
|
+
rubygems_version: 2.4.3
|
202
202
|
signing_key:
|
203
203
|
specification_version: 4
|
204
204
|
summary: Bootstrap 3 Form Helper
|