formulary 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: