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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8df4ac1f699e8d0c600f57ada8b3cadd1cfad36c
4
- data.tar.gz: 9b3727d2c6b58d08cf13176e4cba4e2307c2ae02
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODQ3ODkxNGQ4OWZiMzNlNTRlZGIxMTc0NTU5ZWEzZmJhMDRlZmM3Mw==
5
+ data.tar.gz: !binary |-
6
+ YjBlMzliMjU2Mjk3MDA1MTJjZjY4MjhlMDAzYjc0MzU3YzJhNmRhZQ==
5
7
  SHA512:
6
- metadata.gz: 5d192133334b2034163a762176d41e825741a3413c0eaf1bde1f287ebbc98be5752d9e330be83f6ea692312460c38dc5066d8ae765cdfc17bc041c218108e0b5
7
- data.tar.gz: cbd05d296869b10e8819e65a31a442604e71807b36f5c86e533097a796dec9bb84649f40bda4bdaf42cce97b3ee20bafcf7b995de135583dc3fafd1bd8713b3f
8
+ metadata.gz: !binary |-
9
+ Mzg5NWNiZmQ0MzMyZjAyOGRjOTc3ZTY4NTAwODJmZjE0ZTFmODVkYThkZTMx
10
+ NWQ2MTdkMmY4YjFmZGM4ZDEwZWVkMGYxYjg2YmNhYWZkNDFlMWExZGZiNWEy
11
+ Y2Q5MGVkYmMwMDU5OTZjODc2MGM5Njg2MmNiNGEwNzNjM2Q0ODA=
12
+ data.tar.gz: !binary |-
13
+ N2JmNjdkYWVhY2ZmODYwMjFmZTg2ODJkZDE4ZjM3YTZjODJhNGI4MTQ3MzYz
14
+ NzE3NTFkZGIxYzRlMzhlNjhkYmI2OWE2MTQ0MTY3YjMwYTEzMjQzMDBmN2U5
15
+ MDNlZDc1NzExNjI0NDhkOWI0MDFjNjM5ZDExZjJkNTJjNGViOTk=
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Formulary
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -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
@@ -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">I accept your 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.5
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-01-07 00:00:00.000000000 Z
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
- - ".gitignore"
107
- - ".rspec"
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: