hungryform 0.0.4 → 0.0.6

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 +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