formulary 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,6 +23,6 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "rspec", "< 2.99"
27
27
  spec.add_development_dependency "pry"
28
28
  end
@@ -10,6 +10,7 @@ module Formulary
10
10
  end
11
11
 
12
12
  require "formulary/version"
13
+ require "formulary/exceptions"
13
14
  require "formulary/html_form/fields"
14
15
  require "formulary/html_form/labels"
15
16
  require "formulary/html_form"
@@ -0,0 +1,2 @@
1
+ class Formulary::FieldNotFoundError < StandardError
2
+ end
@@ -2,6 +2,12 @@ module Formulary::HtmlForm::Labels
2
2
  def label_for_field(field_name)
3
3
  fields_for_name = document.css("*[name='#{field_name}']")
4
4
 
5
+ if fields_for_name.empty?
6
+ raise Formulary::FieldNotFoundError.new(
7
+ "Cannot find label, field #{field_name} does not exist"
8
+ )
9
+ end
10
+
5
11
  if fields_for_name.length > 1
6
12
  labels_for_fieldset(fields_for_name)
7
13
  else
@@ -1,3 +1,3 @@
1
1
  module Formulary
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -192,7 +192,7 @@ describe Formulary::HtmlForm do
192
192
  end
193
193
 
194
194
  describe "#label_for_field" do
195
- subject { html_form.label_for_field(field_name) }
195
+ subject(:label_for_field) { html_form.label_for_field(field_name) }
196
196
 
197
197
  context "with a label with a for attribute" do
198
198
  let(:field_name) { "first_name" }
@@ -225,6 +225,16 @@ describe Formulary::HtmlForm do
225
225
  its(["bacon"]) { should eq("Bacon") }
226
226
  its(["butter"]) { should eq("Butter") }
227
227
  end
228
+
229
+ context "for a non-existant field" do
230
+ let(:field_name) { "nooooope" }
231
+
232
+ it "explodes helpfully" do
233
+ expect {
234
+ label_for_field
235
+ }.to raise_error(Formulary::FieldNotFoundError, /label.+nooooope/)
236
+ end
237
+ end
228
238
  end
229
239
  end
230
240
 
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formulary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Matt Bohme
@@ -9,90 +10,102 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-03-27 00:00:00.000000000 Z
13
+ date: 2014-07-17 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: nokogiri
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
- - - ">="
20
+ - - ! '>='
19
21
  - !ruby/object:Gem::Version
20
22
  version: '0'
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
- - - ">="
28
+ - - ! '>='
26
29
  - !ruby/object:Gem::Version
27
30
  version: '0'
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: activesupport
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
- - - ">="
36
+ - - ! '>='
33
37
  - !ruby/object:Gem::Version
34
38
  version: '0'
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
- - - ">="
44
+ - - ! '>='
40
45
  - !ruby/object:Gem::Version
41
46
  version: '0'
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: bundler
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
- - - "~>"
52
+ - - ~>
47
53
  - !ruby/object:Gem::Version
48
54
  version: '1.3'
49
55
  type: :development
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
- - - "~>"
60
+ - - ~>
54
61
  - !ruby/object:Gem::Version
55
62
  version: '1.3'
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: rake
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
- - - ">="
68
+ - - ! '>='
61
69
  - !ruby/object:Gem::Version
62
70
  version: '0'
63
71
  type: :development
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
- - - ">="
76
+ - - ! '>='
68
77
  - !ruby/object:Gem::Version
69
78
  version: '0'
70
79
  - !ruby/object:Gem::Dependency
71
80
  name: rspec
72
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
73
83
  requirements:
74
- - - ">="
84
+ - - <
75
85
  - !ruby/object:Gem::Version
76
- version: '0'
86
+ version: '2.99'
77
87
  type: :development
78
88
  prerelease: false
79
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
80
91
  requirements:
81
- - - ">="
92
+ - - <
82
93
  - !ruby/object:Gem::Version
83
- version: '0'
94
+ version: '2.99'
84
95
  - !ruby/object:Gem::Dependency
85
96
  name: pry
86
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
87
99
  requirements:
88
- - - ">="
100
+ - - ! '>='
89
101
  - !ruby/object:Gem::Version
90
102
  version: '0'
91
103
  type: :development
92
104
  prerelease: false
93
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
94
107
  requirements:
95
- - - ">="
108
+ - - ! '>='
96
109
  - !ruby/object:Gem::Version
97
110
  version: '0'
98
111
  description: Valid form submission based on the HTML5 validation on the form itself
@@ -103,14 +116,15 @@ executables: []
103
116
  extensions: []
104
117
  extra_rdoc_files: []
105
118
  files:
106
- - ".gitignore"
107
- - ".rspec"
119
+ - .gitignore
120
+ - .rspec
108
121
  - Gemfile
109
122
  - LICENSE.txt
110
123
  - README.md
111
124
  - Rakefile
112
125
  - formulary.gemspec
113
126
  - lib/formulary.rb
127
+ - lib/formulary/exceptions.rb
114
128
  - lib/formulary/html_form.rb
115
129
  - lib/formulary/html_form/fields.rb
116
130
  - lib/formulary/html_form/fields/checkbox_group.rb
@@ -160,26 +174,27 @@ files:
160
174
  homepage: http://github.com/g5/formulary
161
175
  licenses:
162
176
  - MIT
163
- metadata: {}
164
177
  post_install_message:
165
178
  rdoc_options: []
166
179
  require_paths:
167
180
  - lib
168
181
  required_ruby_version: !ruby/object:Gem::Requirement
182
+ none: false
169
183
  requirements:
170
- - - ">="
184
+ - - ! '>='
171
185
  - !ruby/object:Gem::Version
172
186
  version: '0'
173
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
+ none: false
174
189
  requirements:
175
- - - ">="
190
+ - - ! '>='
176
191
  - !ruby/object:Gem::Version
177
192
  version: '0'
178
193
  requirements: []
179
194
  rubyforge_project:
180
- rubygems_version: 2.2.0
195
+ rubygems_version: 1.8.23
181
196
  signing_key:
182
- specification_version: 4
197
+ specification_version: 3
183
198
  summary: Valid form submission based on the HTML5 validation on the form itself
184
199
  test_files:
185
200
  - spec/html_form/fields/checkbox_group_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 393050691325dca94776e614a5de5f939fd595de
4
- data.tar.gz: 825e144f8e5a11d88756318ba32e9e5248088ca1
5
- SHA512:
6
- metadata.gz: 51ebdb9b78b2e3bb3be922650daebd152cf302c00074cee83d3e7f350b9eb80ba9dc38e2dad34d113444faf2a53d4c20f8400309bcaa49ba29b5c9f2e4217b7e
7
- data.tar.gz: f164cece566135c3400ce59ba8042e24cee8736b6469268921f302a9027a02e83f0a0cc2f423a789e84bdad76614cfdc39dc6e7a0207c643c0b651d1e2e02eb8