hungryform-rails 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +16 -0
  6. data/Gemfile +4 -0
  7. data/README.md +37 -1
  8. data/Rakefile +3 -0
  9. data/app/assets/javascripts/hungryform.js +145 -0
  10. data/app/assets/stylesheets/hungryform.css +8 -0
  11. data/app/views/hungryform/_checkbox_field.html.erb +12 -0
  12. data/app/views/hungryform/_form.html.erb +11 -0
  13. data/app/views/hungryform/_group.html.erb +7 -0
  14. data/app/views/hungryform/_html.html.erb +5 -0
  15. data/app/views/hungryform/_radio_group.html.erb +11 -0
  16. data/app/views/hungryform/_select_field.html.erb +9 -0
  17. data/app/views/hungryform/_text_area.html.erb +9 -0
  18. data/app/views/hungryform/_text_field.html.erb +9 -0
  19. data/gemfiles/rails3.gemfile +5 -0
  20. data/gemfiles/rails4.gemfile +5 -0
  21. data/gemfiles/rails41.gemfile +5 -0
  22. data/gemfiles/rails42.gemfile +5 -0
  23. data/hungryform-rails.gemspec +31 -0
  24. data/lib/hungryform/rails/action_view.rb +90 -0
  25. data/lib/hungryform/rails/engine.rb +6 -0
  26. data/lib/hungryform/rails/railtie.rb +24 -0
  27. data/lib/hungryform/rails/renderable.rb +13 -0
  28. data/lib/hungryform/rails/version.rb +5 -0
  29. data/lib/hungryform/rails.rb +11 -0
  30. data/lib/hungryform-rails.rb +1 -0
  31. data/spec/action_view_spec.rb +106 -0
  32. data/spec/dummy/app.rb +96 -0
  33. data/spec/dummy/vendor/assets/javascripts/jquery-2.1.3.min.js +4 -0
  34. data/spec/features/field_dependencies_spec.rb +51 -0
  35. data/spec/features/form_walk_spec.rb +92 -0
  36. data/spec/spec_helper.rb +21 -0
  37. data/spec/views/checkbox_field_spec.rb +28 -0
  38. data/spec/views/form_spec.rb +42 -0
  39. data/spec/views/group_spec.rb +35 -0
  40. data/spec/views/html_spec.rb +22 -0
  41. data/spec/views/select_field_spec.rb +35 -0
  42. data/spec/views/shared_examples/rendered_active_element.rb +34 -0
  43. data/spec/views/shared_examples/wrapped.rb +28 -0
  44. data/spec/views/text_area_spec.rb +28 -0
  45. data/spec/views/text_field_spec.rb +28 -0
  46. 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="{&quot;eq&quot;:[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.1
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-04-01 00:00:00.000000000 Z
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.6
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.6
32
+ version: 0.0.9
33
33
  - !ruby/object:Gem::Dependency
34
- name: railties
34
+ name: rails
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 4.0.0
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: 4.0.0
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '5.0'
46
+ version: 3.2.1
53
47
  - !ruby/object:Gem::Dependency
54
- name: rails
48
+ name: rspec
55
49
  requirement: !ruby/object:Gem::Requirement
56
50
  requirements:
57
51
  - - "~>"
58
52
  - !ruby/object:Gem::Version
59
- version: '4.0'
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: '4.0'
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: 1.9.2
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: