formulary 0.0.5 → 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.
- checksums.yaml +13 -5
- data/lib/formulary/html_form.rb +6 -1
- data/lib/formulary/html_form/fields/field.rb +15 -1
- data/lib/formulary/version.rb +1 -1
- data/spec/html_form/fields/field_spec.rb +22 -5
- data/spec/html_form_spec.rb +20 -3
- metadata +19 -18
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ODQ3ODkxNGQ4OWZiMzNlNTRlZGIxMTc0NTU5ZWEzZmJhMDRlZmM3Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjBlMzliMjU2Mjk3MDA1MTJjZjY4MjhlMDAzYjc0MzU3YzJhNmRhZQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Mzg5NWNiZmQ0MzMyZjAyOGRjOTc3ZTY4NTAwODJmZjE0ZTFmODVkYThkZTMx
|
10
|
+
NWQ2MTdkMmY4YjFmZGM4ZDEwZWVkMGYxYjg2YmNhYWZkNDFlMWExZGZiNWEy
|
11
|
+
Y2Q5MGVkYmMwMDU5OTZjODc2MGM5Njg2MmNiNGEwNzNjM2Q0ODA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
N2JmNjdkYWVhY2ZmODYwMjFmZTg2ODJkZDE4ZjM3YTZjODJhNGI4MTQ3MzYz
|
14
|
+
NzE3NTFkZGIxYzRlMzhlNjhkYmI2OWE2MTQ0MTY3YjMwYTEzMjQzMDBmN2U5
|
15
|
+
MDNlZDc1NzExNjI0NDhkOWI0MDFjNjM5ZDExZjJkNTJjNGViOTk=
|
data/lib/formulary/html_form.rb
CHANGED
@@ -41,7 +41,12 @@ module Formulary
|
|
41
41
|
def is_hidden_field?(name)
|
42
42
|
field = find_field(name)
|
43
43
|
!!field.try(:is_hidden?)
|
44
|
-
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def data_field_value(name, data_field)
|
47
|
+
field = find_field(name)
|
48
|
+
field.get_value_from_data_field(data_field)
|
49
|
+
end
|
45
50
|
|
46
51
|
protected
|
47
52
|
|
@@ -12,6 +12,11 @@ module Formulary::HtmlForm::Fields
|
|
12
12
|
@element.attributes["name"].value
|
13
13
|
end
|
14
14
|
|
15
|
+
def get_value_from_data_field(data_field)
|
16
|
+
find_first_element_with_data_field(data_field) if @element.blank? && @elements
|
17
|
+
@element.attributes.include?(data_field) ? @element.attributes[data_field].value : nil
|
18
|
+
end
|
19
|
+
|
15
20
|
def set_value(value)
|
16
21
|
@value = value
|
17
22
|
end
|
@@ -38,10 +43,19 @@ module Formulary::HtmlForm::Fields
|
|
38
43
|
|
39
44
|
def is_hidden?
|
40
45
|
self.class.compatible_type == "hidden" rescue false
|
41
|
-
end
|
46
|
+
end
|
42
47
|
|
43
48
|
protected
|
44
49
|
|
50
|
+
def find_first_element_with_data_field(data_field)
|
51
|
+
@elements.each do |e|
|
52
|
+
if e.attributes.include?(data_field)
|
53
|
+
@element = e
|
54
|
+
return
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
45
59
|
def supports_required?
|
46
60
|
self.class.supports_required?
|
47
61
|
end
|
data/lib/formulary/version.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Formulary::HtmlForm::Fields
|
4
4
|
class SomeInput < Input; end
|
5
|
-
end
|
5
|
+
end
|
6
6
|
|
7
7
|
describe Formulary::HtmlForm::Fields::Field do
|
8
8
|
let(:markup) { %{<input type="text" name="field" />} }
|
@@ -15,6 +15,23 @@ describe Formulary::HtmlForm::Fields::Field do
|
|
15
15
|
it { should eq("field") }
|
16
16
|
end
|
17
17
|
|
18
|
+
describe "#get_value_from_data_field" do
|
19
|
+
let(:data_field) {"data-hide-from-email"}
|
20
|
+
subject {field.get_value_from_data_field(data_field)}
|
21
|
+
it {should be_nil}
|
22
|
+
|
23
|
+
context "@element is set(normal fields)" do
|
24
|
+
let(:markup) { %{<input type="text" name="field" data-hide-from-email="true"/>} }
|
25
|
+
it {should eql("true")}
|
26
|
+
end
|
27
|
+
|
28
|
+
context "@elements is set (checkbox or radio button)" do
|
29
|
+
let(:markup){ %{<input type="checkbox" name="super" data-hide-from-email="foo">
|
30
|
+
<input type="checkbox" name="duper" data-hide-from-email="bar">}}
|
31
|
+
it {should eql("foo")}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
18
35
|
describe "#label" do
|
19
36
|
subject { field.label }
|
20
37
|
|
@@ -57,15 +74,15 @@ describe Formulary::HtmlForm::Fields::Field do
|
|
57
74
|
let(:field) { Formulary::HtmlForm::Fields::HiddenInput.new(html_form, element) }
|
58
75
|
it { should be_true }
|
59
76
|
end
|
60
|
-
|
77
|
+
|
61
78
|
context "not hidden" do
|
62
79
|
let(:field) { Formulary::HtmlForm::Fields::TextInput.new(html_form, element) }
|
63
80
|
it { should be_false }
|
64
|
-
end
|
81
|
+
end
|
65
82
|
|
66
83
|
describe "field without compatible_type defined" do
|
67
84
|
let(:field) { Formulary::HtmlForm::Fields::SomeInput.new(html_form, element) }
|
68
85
|
it { should be_false }
|
69
|
-
end
|
70
|
-
end
|
86
|
+
end
|
87
|
+
end
|
71
88
|
end
|
data/spec/html_form_spec.rb
CHANGED
@@ -56,12 +56,12 @@ describe Formulary::HtmlForm do
|
|
56
56
|
<input type="radio" name="beverages" value="water">Water<br>
|
57
57
|
|
58
58
|
<label for="date">Date</label>
|
59
|
-
<input type="date" id="date" name="date" />
|
59
|
+
<input type="date" id="date" name="date" data-hide-from-email="false" />
|
60
60
|
|
61
61
|
<input type="hidden" name="syndication_url" value="example.com" />
|
62
62
|
|
63
63
|
<label>
|
64
|
-
<input type="checkbox" name="terms"
|
64
|
+
<input type="checkbox" name="terms" data-hide-from-email="true"/>I accept your terms
|
65
65
|
</label>
|
66
66
|
|
67
67
|
<div class="field">
|
@@ -254,7 +254,24 @@ describe Formulary::HtmlForm do
|
|
254
254
|
let(:field_name) { "foobar" }
|
255
255
|
it { should be_false }
|
256
256
|
end
|
257
|
-
end
|
257
|
+
end
|
258
|
+
|
259
|
+
describe "#hide_from_email?" do
|
260
|
+
let(:data_field) {"data-hide-from-email"}
|
261
|
+
subject(:data_field_value) { html_form.data_field_value(field_name, data_field) }
|
262
|
+
context "data-hide-from-email is not set" do
|
263
|
+
let(:field_name) { "first_name" }
|
264
|
+
it { should be_nil }
|
265
|
+
end
|
266
|
+
context "data-hide-from-email is false" do
|
267
|
+
let(:field_name) { "date" }
|
268
|
+
it { should eql("false") }
|
269
|
+
end
|
270
|
+
context "data-hide-from-email is true" do
|
271
|
+
let(:field_name) { "terms" }
|
272
|
+
it { should eql("true") }
|
273
|
+
end
|
274
|
+
end
|
258
275
|
end
|
259
276
|
|
260
277
|
context "with a form with nested fields" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formulary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Bohme
|
@@ -9,90 +9,90 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ! '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: activesupport
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ! '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ! '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '1.3'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '1.3'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rake
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ! '>='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - <
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '2.99'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - <
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '2.99'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: pry
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ! '>='
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ! '>='
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
description: Valid form submission based on the HTML5 validation on the form itself
|
@@ -103,8 +103,8 @@ executables: []
|
|
103
103
|
extensions: []
|
104
104
|
extra_rdoc_files: []
|
105
105
|
files:
|
106
|
-
-
|
107
|
-
-
|
106
|
+
- .gitignore
|
107
|
+
- .rspec
|
108
108
|
- Gemfile
|
109
109
|
- LICENSE.txt
|
110
110
|
- README.md
|
@@ -168,12 +168,12 @@ require_paths:
|
|
168
168
|
- lib
|
169
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ! '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
175
|
requirements:
|
176
|
-
- -
|
176
|
+
- - ! '>='
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '0'
|
179
179
|
requirements: []
|
@@ -206,3 +206,4 @@ test_files:
|
|
206
206
|
- spec/support/element_helper.rb
|
207
207
|
- spec/support/shared_examples_for_pattern.rb
|
208
208
|
- spec/support/shared_examples_for_required.rb
|
209
|
+
has_rdoc:
|