hungryform 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +6 -1
- data/.rspec +0 -1
- data/.ruby-version +1 -0
- data/.travis.yml +5 -0
- data/README.md +72 -43
- data/Rakefile +3 -4
- data/hungryform.gemspec +4 -4
- data/lib/hungryform/configuration.rb +31 -0
- data/lib/hungryform/elements/base/active_element.rb +44 -36
- data/lib/hungryform/elements/base/element.rb +40 -49
- data/lib/hungryform/elements/base/group.rb +74 -71
- data/lib/hungryform/elements/base/hashable.rb +32 -30
- data/lib/hungryform/elements/base/options_element.rb +28 -24
- data/lib/hungryform/elements/html.rb +1 -1
- data/lib/hungryform/elements/page.rb +4 -0
- data/lib/hungryform/elements/radio_group.rb +1 -1
- data/lib/hungryform/elements/select_field.rb +14 -18
- data/lib/hungryform/elements/{text_area_field.rb → text_area.rb} +1 -1
- data/lib/hungryform/elements.rb +9 -1
- data/lib/hungryform/exceptions.rb +3 -0
- data/lib/hungryform/form.rb +32 -2
- data/lib/hungryform/resolver.rb +14 -16
- data/lib/hungryform/version.rb +1 -1
- data/lib/hungryform.rb +22 -5
- data/spec/elements/group_spec.rb +10 -1
- data/spec/elements/html_spec.rb +11 -9
- data/spec/elements/page_spec.rb +10 -7
- data/spec/elements/radio_group_spec.rb +9 -15
- data/spec/elements/select_field_spec.rb +19 -33
- data/spec/elements/shared_examples/active_element.rb +52 -0
- data/spec/elements/shared_examples/element.rb +42 -0
- data/spec/elements/shared_examples/group.rb +31 -0
- data/spec/elements/shared_examples/options_element.rb +24 -0
- data/spec/elements/text_area_spec.rb +14 -0
- data/spec/elements/text_field_spec.rb +10 -3
- data/spec/form_spec.rb +68 -1
- data/spec/resolver_spec.rb +7 -7
- data/spec/spec_helper.rb +4 -2
- metadata +29 -40
- data/Gemfile.lock +0 -52
- data/spec/elements/text_area_field_spec.rb +0 -7
- data/spec/support/shared_active_element.rb +0 -65
- data/spec/support/shared_element.rb +0 -62
- data/spec/support/shared_group.rb +0 -42
- 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
|