hungryform 0.0.4 → 0.0.6

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 +6 -1
  3. data/.rspec +0 -1
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +5 -0
  6. data/README.md +72 -43
  7. data/Rakefile +3 -4
  8. data/hungryform.gemspec +4 -4
  9. data/lib/hungryform/configuration.rb +31 -0
  10. data/lib/hungryform/elements/base/active_element.rb +44 -36
  11. data/lib/hungryform/elements/base/element.rb +40 -49
  12. data/lib/hungryform/elements/base/group.rb +74 -71
  13. data/lib/hungryform/elements/base/hashable.rb +32 -30
  14. data/lib/hungryform/elements/base/options_element.rb +28 -24
  15. data/lib/hungryform/elements/html.rb +1 -1
  16. data/lib/hungryform/elements/page.rb +4 -0
  17. data/lib/hungryform/elements/radio_group.rb +1 -1
  18. data/lib/hungryform/elements/select_field.rb +14 -18
  19. data/lib/hungryform/elements/{text_area_field.rb → text_area.rb} +1 -1
  20. data/lib/hungryform/elements.rb +9 -1
  21. data/lib/hungryform/exceptions.rb +3 -0
  22. data/lib/hungryform/form.rb +32 -2
  23. data/lib/hungryform/resolver.rb +14 -16
  24. data/lib/hungryform/version.rb +1 -1
  25. data/lib/hungryform.rb +22 -5
  26. data/spec/elements/group_spec.rb +10 -1
  27. data/spec/elements/html_spec.rb +11 -9
  28. data/spec/elements/page_spec.rb +10 -7
  29. data/spec/elements/radio_group_spec.rb +9 -15
  30. data/spec/elements/select_field_spec.rb +19 -33
  31. data/spec/elements/shared_examples/active_element.rb +52 -0
  32. data/spec/elements/shared_examples/element.rb +42 -0
  33. data/spec/elements/shared_examples/group.rb +31 -0
  34. data/spec/elements/shared_examples/options_element.rb +24 -0
  35. data/spec/elements/text_area_spec.rb +14 -0
  36. data/spec/elements/text_field_spec.rb +10 -3
  37. data/spec/form_spec.rb +68 -1
  38. data/spec/resolver_spec.rb +7 -7
  39. data/spec/spec_helper.rb +4 -2
  40. metadata +29 -40
  41. data/Gemfile.lock +0 -52
  42. data/spec/elements/text_area_field_spec.rb +0 -7
  43. data/spec/support/shared_active_element.rb +0 -65
  44. data/spec/support/shared_element.rb +0 -62
  45. data/spec/support/shared_group.rb +0 -42
  46. data/spec/support/shared_options_element.rb +0 -36
@@ -1,36 +0,0 @@
1
- RSpec.shared_examples "an element with options" do
2
- let(:resolver_options) { {} }
3
- let(:resolver) { HungryForm::Resolver.new(resolver_options) }
4
-
5
- let(:group_options) { {} }
6
- let(:group) { HungryForm::Elements::Group.new(:group, nil, resolver, group_options) {} }
7
-
8
- let(:element) { described_class.new(:element_name, group, resolver, options_element_options) {} }
9
-
10
- it_behaves_like "an active element" do
11
- let(:active_element_options) { options_element_options }
12
- end
13
-
14
- describe ".new" do
15
- it "should raise an exception if there is no options provided" do
16
- options_element_options.delete(:options) if options_element_options[:options]
17
- expect { described_class.new(:element_name, group, resolver, options_element_options) }.to raise_error(HungryForm::HungryFormException)
18
- end
19
-
20
- it "should have options" do
21
- options_element_options[:options] = {"1" => "First", "2" => "Last"}
22
- expect(element.options).to eq({"1" => "First", "2" => "Last"})
23
- end
24
-
25
- it "should convert options to hash" do
26
- options_element_options[:options] = ->(el) {{"1" => "First", "2" => "Last"}}
27
- expect(element.options).to eq({"1" => "First", "2" => "Last"})
28
- end
29
- end
30
-
31
- describe "#to_hash" do
32
- it "should include options" do
33
- expect(element.to_hash).to include(:options)
34
- end
35
- end
36
- end