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.
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: