hungryform-rails 0.0.1 → 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/.gitignore +2 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/.travis.yml +16 -0
- data/Gemfile +4 -0
- data/README.md +37 -1
- data/Rakefile +3 -0
- data/app/assets/javascripts/hungryform.js +145 -0
- data/app/assets/stylesheets/hungryform.css +8 -0
- data/app/views/hungryform/_checkbox_field.html.erb +12 -0
- data/app/views/hungryform/_form.html.erb +11 -0
- data/app/views/hungryform/_group.html.erb +7 -0
- data/app/views/hungryform/_html.html.erb +5 -0
- data/app/views/hungryform/_radio_group.html.erb +11 -0
- data/app/views/hungryform/_select_field.html.erb +9 -0
- data/app/views/hungryform/_text_area.html.erb +9 -0
- data/app/views/hungryform/_text_field.html.erb +9 -0
- data/gemfiles/rails3.gemfile +5 -0
- data/gemfiles/rails4.gemfile +5 -0
- data/gemfiles/rails41.gemfile +5 -0
- data/gemfiles/rails42.gemfile +5 -0
- data/hungryform-rails.gemspec +31 -0
- data/lib/hungryform/rails/action_view.rb +90 -0
- data/lib/hungryform/rails/engine.rb +6 -0
- data/lib/hungryform/rails/railtie.rb +24 -0
- data/lib/hungryform/rails/renderable.rb +13 -0
- data/lib/hungryform/rails/version.rb +5 -0
- data/lib/hungryform/rails.rb +11 -0
- data/lib/hungryform-rails.rb +1 -0
- data/spec/action_view_spec.rb +106 -0
- data/spec/dummy/app.rb +96 -0
- data/spec/dummy/vendor/assets/javascripts/jquery-2.1.3.min.js +4 -0
- data/spec/features/field_dependencies_spec.rb +51 -0
- data/spec/features/form_walk_spec.rb +92 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/views/checkbox_field_spec.rb +28 -0
- data/spec/views/form_spec.rb +42 -0
- data/spec/views/group_spec.rb +35 -0
- data/spec/views/html_spec.rb +22 -0
- data/spec/views/select_field_spec.rb +35 -0
- data/spec/views/shared_examples/rendered_active_element.rb +34 -0
- data/spec/views/shared_examples/wrapped.rb +28 -0
- data/spec/views/text_area_spec.rb +28 -0
- data/spec/views/text_field_spec.rb +28 -0
- metadata +69 -18
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'rendering a select field' do
|
4
|
+
let(:attributes) {
|
5
|
+
{
|
6
|
+
options: {
|
7
|
+
'first' => 'First',
|
8
|
+
'second' => 'Second'
|
9
|
+
}
|
10
|
+
}
|
11
|
+
}
|
12
|
+
let(:resolver) { HungryForm::Resolver.new }
|
13
|
+
let(:group) { HungryForm::Elements::Group.new(:group, nil, resolver, visible: true) {} }
|
14
|
+
let(:field) { HungryForm::Elements::SelectField.new(:field_name, group, resolver, attributes) }
|
15
|
+
let(:render_params) {
|
16
|
+
{
|
17
|
+
partial: 'hungryform/select_field',
|
18
|
+
locals: { field: field }
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
it_behaves_like 'it is wrapped in a div'
|
23
|
+
it_behaves_like 'rendered active element'
|
24
|
+
|
25
|
+
it 'has a select tag' do
|
26
|
+
render render_params
|
27
|
+
expect(rendered).to match /<select.*id="group_field_name"/
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'has a selected value' do
|
31
|
+
attributes[:value] = 'second'
|
32
|
+
render render_params
|
33
|
+
expect(rendered).to match /<option(?=.*selected="selected")(?=.*value="second")/
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
RSpec.shared_examples 'rendered active element' do
|
2
|
+
it 'has a label' do
|
3
|
+
render render_params
|
4
|
+
expect(rendered).to include '<label for="group_field_name">Field name</label>'
|
5
|
+
end
|
6
|
+
|
7
|
+
context 'when it is required' do
|
8
|
+
before(:each) { attributes[:required] = true }
|
9
|
+
|
10
|
+
it "has an 'invalid' class attribute" do
|
11
|
+
field.valid?
|
12
|
+
render render_params
|
13
|
+
expect(rendered).to match /<div.*class="invalid"/
|
14
|
+
end
|
15
|
+
|
16
|
+
it "has an asterisk in a label" do
|
17
|
+
render render_params
|
18
|
+
expect(rendered).to include '<label for="group_field_name">Field name*</label>'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has an error message" do
|
22
|
+
field.valid?
|
23
|
+
render render_params
|
24
|
+
expect(rendered).to include '<span class="error">This field is required</span>'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# As a class is gonna be in the wrapper
|
29
|
+
it 'does not have an input with a class attribute' do
|
30
|
+
attributes[:class] = 'my_class'
|
31
|
+
render render_params
|
32
|
+
expect(rendered).not_to match /<input.*class="my_class"/
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
RSpec.shared_examples 'it is wrapped in a div' do
|
2
|
+
it "doesn't have a class attribute" do
|
3
|
+
render render_params
|
4
|
+
expect(rendered).not_to match /^<div.*class=/
|
5
|
+
end
|
6
|
+
|
7
|
+
it "has a 'hidden' class attribute" do
|
8
|
+
field.visible = false
|
9
|
+
render render_params
|
10
|
+
expect(rendered).to match /<div.*class="hidden"/
|
11
|
+
end
|
12
|
+
|
13
|
+
it "doesn't have a data-dependency attribute" do
|
14
|
+
render render_params
|
15
|
+
expect(rendered).not_to match /^<div.*data-dependency=/
|
16
|
+
end
|
17
|
+
|
18
|
+
it "has a data-dependency attribute" do
|
19
|
+
attributes[:dependency] = { eq: [1, 1] }
|
20
|
+
render render_params
|
21
|
+
expect(rendered).to include 'data-dependency="{"eq":[1,1]}"'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "has an id attribute" do
|
25
|
+
render render_params
|
26
|
+
expect(rendered).to include 'id="group_field_name_wrapper"'
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'rendering text area' do
|
4
|
+
let(:attributes) { {} }
|
5
|
+
let(:resolver) { HungryForm::Resolver.new }
|
6
|
+
let(:group) { HungryForm::Elements::Group.new(:group, nil, resolver, visible: true) {} }
|
7
|
+
let(:field) { HungryForm::Elements::TextArea.new(:field_name, group, resolver, attributes) }
|
8
|
+
let(:render_params) {
|
9
|
+
{
|
10
|
+
partial: 'hungryform/text_area',
|
11
|
+
locals: { field: field }
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
it_behaves_like 'it is wrapped in a div'
|
16
|
+
it_behaves_like 'rendered active element'
|
17
|
+
|
18
|
+
it 'has a text area' do
|
19
|
+
render render_params
|
20
|
+
expect(rendered).to match /<textarea.*id="group_field_name"/
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'has a textarea with value' do
|
24
|
+
attributes[:value] = 'default value'
|
25
|
+
render render_params
|
26
|
+
expect(rendered).to match /<textarea.*default value/m
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'rendering text field' do
|
4
|
+
let(:attributes) { {} }
|
5
|
+
let(:resolver) { HungryForm::Resolver.new }
|
6
|
+
let(:group) { HungryForm::Elements::Group.new(:group, nil, resolver, visible: true) {} }
|
7
|
+
let(:field) { HungryForm::Elements::TextField.new(:field_name, group, resolver, attributes) }
|
8
|
+
let(:render_params) {
|
9
|
+
{
|
10
|
+
partial: 'hungryform/text_field',
|
11
|
+
locals: { field: field }
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
it_behaves_like 'it is wrapped in a div'
|
16
|
+
it_behaves_like 'rendered active element'
|
17
|
+
|
18
|
+
it 'has an input' do
|
19
|
+
render render_params
|
20
|
+
expect(rendered).to match /<input.*id="group_field_name"/
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'has an input with value' do
|
24
|
+
attributes[:value] = 'default value'
|
25
|
+
render render_params
|
26
|
+
expect(rendered).to match /<input.*value="default value"/
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hungryform-rails
|
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
|
- Andrey Bazhutkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hungryform
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.0'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.0.
|
22
|
+
version: 0.0.9
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,41 +29,35 @@ dependencies:
|
|
29
29
|
version: '0.0'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.0.
|
32
|
+
version: 0.0.9
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: rails
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
40
|
-
- - "<"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '5.0'
|
39
|
+
version: 3.2.1
|
43
40
|
type: :runtime
|
44
41
|
prerelease: false
|
45
42
|
version_requirements: !ruby/object:Gem::Requirement
|
46
43
|
requirements:
|
47
44
|
- - ">="
|
48
45
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '5.0'
|
46
|
+
version: 3.2.1
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
48
|
+
name: rspec
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
56
50
|
requirements:
|
57
51
|
- - "~>"
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
53
|
+
version: '3.0'
|
60
54
|
type: :development
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
57
|
requirements:
|
64
58
|
- - "~>"
|
65
59
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
60
|
+
version: '3.0'
|
67
61
|
- !ruby/object:Gem::Dependency
|
68
62
|
name: rspec-rails
|
69
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,8 +108,50 @@ extensions: []
|
|
114
108
|
extra_rdoc_files: []
|
115
109
|
files:
|
116
110
|
- ".gitignore"
|
111
|
+
- ".rspec"
|
112
|
+
- ".ruby-version"
|
113
|
+
- ".travis.yml"
|
114
|
+
- Gemfile
|
117
115
|
- LICENSE
|
118
116
|
- README.md
|
117
|
+
- Rakefile
|
118
|
+
- app/assets/javascripts/hungryform.js
|
119
|
+
- app/assets/stylesheets/hungryform.css
|
120
|
+
- app/views/hungryform/_checkbox_field.html.erb
|
121
|
+
- app/views/hungryform/_form.html.erb
|
122
|
+
- app/views/hungryform/_group.html.erb
|
123
|
+
- app/views/hungryform/_html.html.erb
|
124
|
+
- app/views/hungryform/_radio_group.html.erb
|
125
|
+
- app/views/hungryform/_select_field.html.erb
|
126
|
+
- app/views/hungryform/_text_area.html.erb
|
127
|
+
- app/views/hungryform/_text_field.html.erb
|
128
|
+
- gemfiles/rails3.gemfile
|
129
|
+
- gemfiles/rails4.gemfile
|
130
|
+
- gemfiles/rails41.gemfile
|
131
|
+
- gemfiles/rails42.gemfile
|
132
|
+
- hungryform-rails.gemspec
|
133
|
+
- lib/hungryform-rails.rb
|
134
|
+
- lib/hungryform/rails.rb
|
135
|
+
- lib/hungryform/rails/action_view.rb
|
136
|
+
- lib/hungryform/rails/engine.rb
|
137
|
+
- lib/hungryform/rails/railtie.rb
|
138
|
+
- lib/hungryform/rails/renderable.rb
|
139
|
+
- lib/hungryform/rails/version.rb
|
140
|
+
- spec/action_view_spec.rb
|
141
|
+
- spec/dummy/app.rb
|
142
|
+
- spec/dummy/vendor/assets/javascripts/jquery-2.1.3.min.js
|
143
|
+
- spec/features/field_dependencies_spec.rb
|
144
|
+
- spec/features/form_walk_spec.rb
|
145
|
+
- spec/spec_helper.rb
|
146
|
+
- spec/views/checkbox_field_spec.rb
|
147
|
+
- spec/views/form_spec.rb
|
148
|
+
- spec/views/group_spec.rb
|
149
|
+
- spec/views/html_spec.rb
|
150
|
+
- spec/views/select_field_spec.rb
|
151
|
+
- spec/views/shared_examples/rendered_active_element.rb
|
152
|
+
- spec/views/shared_examples/wrapped.rb
|
153
|
+
- spec/views/text_area_spec.rb
|
154
|
+
- spec/views/text_field_spec.rb
|
119
155
|
homepage: https://github.com/andrba/hungryform-rails
|
120
156
|
licenses:
|
121
157
|
- MIT
|
@@ -128,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
164
|
requirements:
|
129
165
|
- - ">="
|
130
166
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
167
|
+
version: 2.0.0
|
132
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
169
|
requirements:
|
134
170
|
- - ">="
|
@@ -140,5 +176,20 @@ rubygems_version: 2.2.2
|
|
140
176
|
signing_key:
|
141
177
|
specification_version: 4
|
142
178
|
summary: Use HungryForm with Rails
|
143
|
-
test_files:
|
179
|
+
test_files:
|
180
|
+
- spec/action_view_spec.rb
|
181
|
+
- spec/dummy/app.rb
|
182
|
+
- spec/dummy/vendor/assets/javascripts/jquery-2.1.3.min.js
|
183
|
+
- spec/features/field_dependencies_spec.rb
|
184
|
+
- spec/features/form_walk_spec.rb
|
185
|
+
- spec/spec_helper.rb
|
186
|
+
- spec/views/checkbox_field_spec.rb
|
187
|
+
- spec/views/form_spec.rb
|
188
|
+
- spec/views/group_spec.rb
|
189
|
+
- spec/views/html_spec.rb
|
190
|
+
- spec/views/select_field_spec.rb
|
191
|
+
- spec/views/shared_examples/rendered_active_element.rb
|
192
|
+
- spec/views/shared_examples/wrapped.rb
|
193
|
+
- spec/views/text_area_spec.rb
|
194
|
+
- spec/views/text_field_spec.rb
|
144
195
|
has_rdoc:
|