formkeeper 0.0.4 → 0.0.5
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.
- data/lib/formkeeper/version.rb +1 -1
- data/lib/formkeeper.rb +15 -6
- data/spec/constraint_alnum_space_spec.rb +16 -0
- data/spec/constraint_alnum_spec.rb +16 -0
- data/spec/constraint_alpha_space_spec.rb +16 -0
- data/spec/constraint_alpha_spec.rb +16 -0
- data/spec/constraint_ascii_space_spec.rb +16 -0
- data/spec/constraint_ascii_spec.rb +16 -0
- data/spec/constraint_bytesize_spec.rb +18 -0
- data/spec/constraint_int_spec.rb +18 -0
- data/spec/constraint_length_spec.rb +18 -0
- data/spec/constraint_regexp_spec.rb +14 -0
- data/spec/constraint_uint_spec.rb +18 -0
- data/spec/constraint_uri_spec.rb +21 -0
- data/spec/filter_downcase_spec.rb +13 -0
- data/spec/filter_strip_spec.rb +14 -0
- data/spec/filter_upcase_spec.rb +13 -0
- data/spec/record_spec.rb +1 -1
- data/spec/respondent_spec.rb +6 -6
- data/spec/validator_spec.rb +2 -2
- metadata +34 -4
data/lib/formkeeper/version.rb
CHANGED
data/lib/formkeeper.rb
CHANGED
@@ -87,10 +87,18 @@ module FormKeeper
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
+
class AsciiSpace < Base
|
91
|
+
def validate(value, arg)
|
92
|
+
result = value =~ /^[\x20-\x7e]+$/
|
93
|
+
result = !result if !arg
|
94
|
+
result
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
90
98
|
class Regexp < Base
|
91
99
|
def validate(value, arg)
|
92
100
|
r = arg
|
93
|
-
r = Regexp.new(r) unless r.kind_of?(Regexp)
|
101
|
+
r = ::Regexp.new(r) unless r.kind_of?(::Regexp)
|
94
102
|
value =~ r
|
95
103
|
end
|
96
104
|
end
|
@@ -145,7 +153,7 @@ module FormKeeper
|
|
145
153
|
|
146
154
|
class URI < Base
|
147
155
|
def validate(value, arg)
|
148
|
-
u = URI.parse(value)
|
156
|
+
u = ::URI.parse(value)
|
149
157
|
return false if u.nil?
|
150
158
|
arg = [arg] unless arg.kind_of?(Array)
|
151
159
|
arg.collect(&:to_s).include?(u.scheme)
|
@@ -166,12 +174,12 @@ module FormKeeper
|
|
166
174
|
end
|
167
175
|
end
|
168
176
|
|
169
|
-
class
|
177
|
+
class ByteSize < Base
|
170
178
|
def validate(value, arg)
|
171
|
-
l = value.
|
179
|
+
l = value.bytesize
|
172
180
|
case arg
|
173
181
|
when Fixnum
|
174
|
-
return (l ==
|
182
|
+
return (l == arg)
|
175
183
|
when Range
|
176
184
|
return arg.include?(l)
|
177
185
|
else
|
@@ -564,6 +572,7 @@ module FormKeeper
|
|
564
572
|
register_filter :upcase, Filter::UpCase.new
|
565
573
|
|
566
574
|
register_constraint :ascii, Constraint::Ascii.new
|
575
|
+
register_constraint :ascii_space, Constraint::AsciiSpace.new
|
567
576
|
register_constraint :regexp, Constraint::Regexp.new
|
568
577
|
register_constraint :int, Constraint::Int.new
|
569
578
|
register_constraint :uint, Constraint::Uint.new
|
@@ -573,7 +582,7 @@ module FormKeeper
|
|
573
582
|
register_constraint :alnum_space, Constraint::AlnumSpace.new
|
574
583
|
register_constraint :uri, Constraint::URI.new
|
575
584
|
register_constraint :length, Constraint::Length.new
|
576
|
-
register_constraint :
|
585
|
+
register_constraint :bytesize, Constraint::ByteSize.new
|
577
586
|
|
578
587
|
register_combination_constraint :datetime, CombinationConstraint::DateTime.new
|
579
588
|
register_combination_constraint :date, CombinationConstraint::Date.new
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::AlnumSpace do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::AlnumSpace.new
|
9
|
+
constraint.validate('abcd', true).should be_true
|
10
|
+
constraint.validate('a1234bcd', true).should be_true
|
11
|
+
constraint.validate('a%[]Aaa', true).should_not be_true
|
12
|
+
constraint.validate('ab cd', true).should be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Alnum do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Alnum.new
|
9
|
+
constraint.validate('abcd', true).should be_true
|
10
|
+
constraint.validate('a1234bcd', true).should be_true
|
11
|
+
constraint.validate('a%[]Aaa', true).should_not be_true
|
12
|
+
constraint.validate('ab cd', true).should_not be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::AlphaSpace do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::AlphaSpace.new
|
9
|
+
constraint.validate('abcd', true).should be_true
|
10
|
+
constraint.validate('a1234bcd', true).should_not be_true
|
11
|
+
constraint.validate('a%[]Aaa', true).should_not be_true
|
12
|
+
constraint.validate('ab cd', true).should be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Alpha do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Alpha.new
|
9
|
+
constraint.validate('abcd', true).should be_true
|
10
|
+
constraint.validate('a1234bcd', true).should_not be_true
|
11
|
+
constraint.validate('a%[]Aaa', true).should_not be_true
|
12
|
+
constraint.validate('ab cd', true).should_not be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::AsciiSpace do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::AsciiSpace.new
|
9
|
+
constraint.validate('aaaa', true).should be_true
|
10
|
+
constraint.validate('a%[]Aaa', false).should_not be_true
|
11
|
+
constraint.validate('[aAaa.', true).should be_true
|
12
|
+
constraint.validate('[a Aaa.', true).should be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Ascii do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Ascii.new
|
9
|
+
constraint.validate('aaaa', true).should be_true
|
10
|
+
constraint.validate('a%[]Aaa', false).should_not be_true
|
11
|
+
constraint.validate('[aAaa.', true).should be_true
|
12
|
+
constraint.validate('[a Aaa.', true).should_not be_true
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::ByteSize do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::ByteSize.new
|
9
|
+
constraint.validate('aaaa', 0..10).should be_true
|
10
|
+
constraint.validate('aaaa', 0..3).should_not be_true
|
11
|
+
constraint.validate('aaaa', 4).should be_true
|
12
|
+
constraint.validate('aaaa', 3).should_not be_true
|
13
|
+
|
14
|
+
constraint.validate('ほげ', 2).should_not be_true
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Int do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Int.new
|
9
|
+
constraint.validate('aaaa', true).should_not be_true
|
10
|
+
constraint.validate('aaaa', false).should be_true
|
11
|
+
constraint.validate('1111', true).should be_true
|
12
|
+
constraint.validate('1111', false).should_not be_true
|
13
|
+
constraint.validate('-1111', true).should be_true
|
14
|
+
constraint.validate('-1111', false).should_not be_true
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Length do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Length.new
|
9
|
+
constraint.validate('aaaa', 0..10).should be_true
|
10
|
+
constraint.validate('aaaa', 0..3).should_not be_true
|
11
|
+
constraint.validate('aaaa', 4).should be_true
|
12
|
+
constraint.validate('aaaa', 3).should_not be_true
|
13
|
+
|
14
|
+
constraint.validate('ほげ', 2).should be_true
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Regexp do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Regexp.new
|
9
|
+
constraint.validate('this is ruby', %r{ruby}).should be_true
|
10
|
+
constraint.validate('this is perl', %r{ruby}).should_not be_true
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::Uint do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::Uint.new
|
9
|
+
constraint.validate('aaaa', true).should_not be_true
|
10
|
+
constraint.validate('aaaa', false).should be_true
|
11
|
+
constraint.validate('1111', true).should be_true
|
12
|
+
constraint.validate('1111', false).should_not be_true
|
13
|
+
constraint.validate('-1111', true).should_not be_true
|
14
|
+
constraint.validate('-1111', false).should be_true
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FormKeeper::Constraint::URI do
|
5
|
+
|
6
|
+
it "validate value correctly" do
|
7
|
+
|
8
|
+
constraint = FormKeeper::Constraint::URI.new
|
9
|
+
constraint.validate('aaaa', :http).should_not be_true
|
10
|
+
constraint.validate('http://example.org/', :http).should be_true
|
11
|
+
constraint.validate('http://example.org/', [:http]).should be_true
|
12
|
+
constraint.validate('https://example.org/', [:http]).should_not be_true
|
13
|
+
constraint.validate('http://example.org/', [:http, :https]).should be_true
|
14
|
+
constraint.validate('https://example.org/', [:http, :https]).should be_true
|
15
|
+
|
16
|
+
constraint.validate('aaaa', :http).should_not be_true
|
17
|
+
constraint.validate('aaa', [:http, :https]).should_not be_true
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FormKeeper::Filter::DownCase do
|
4
|
+
|
5
|
+
it "filters value correctly" do
|
6
|
+
filter = FormKeeper::Filter::DownCase.new
|
7
|
+
filter.process("foo").should == "foo";
|
8
|
+
filter.process("Foo").should == "foo";
|
9
|
+
filter.process("FOO").should == "foo";
|
10
|
+
filter.process(" FOO").should == " foo";
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FormKeeper::Filter::Strip do
|
4
|
+
|
5
|
+
it "filters value correctly" do
|
6
|
+
filter = FormKeeper::Filter::Strip.new
|
7
|
+
filter.process("foo").should == "foo";
|
8
|
+
filter.process(" foo").should == "foo";
|
9
|
+
filter.process("foo ").should == "foo";
|
10
|
+
filter.process(" foo ").should == "foo";
|
11
|
+
filter.process(" foo ").should == "foo";
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FormKeeper::Filter::UpCase do
|
4
|
+
|
5
|
+
it "filters value correctly" do
|
6
|
+
filter = FormKeeper::Filter::UpCase.new
|
7
|
+
filter.process("FOO").should == "FOO";
|
8
|
+
filter.process("fOO").should == "FOO";
|
9
|
+
filter.process("foo").should == "FOO";
|
10
|
+
filter.process(" foo").should == " FOO";
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
data/spec/record_spec.rb
CHANGED
@@ -19,7 +19,7 @@ describe FormKeeper::Record do
|
|
19
19
|
record.failed?.should be_true
|
20
20
|
record.failed_by?(:present).should be_true
|
21
21
|
record.failed_by?(:length).should be_true
|
22
|
-
record.failed_by?(:
|
22
|
+
record.failed_by?(:bytesize).should_not be_true
|
23
23
|
|
24
24
|
record.failed_constraints[0].should == :present
|
25
25
|
record.failed_constraints[1].should == :length
|
data/spec/respondent_spec.rb
CHANGED
@@ -45,9 +45,9 @@ describe FormKeeper::Respondent do
|
|
45
45
|
<label>Sake</label><input type="radio" name="food" value="1">
|
46
46
|
<label>Umeboshi</label><input type="radio" name="food" value="2">
|
47
47
|
<h2>Where did you know about this page?</h2>
|
48
|
-
<label>web site</label><input type="
|
49
|
-
<label>magazine</label><input type="
|
50
|
-
<label>TV show</label><input type="
|
48
|
+
<label>web site</label><input type="checkbox" name="media" value="0" checked>
|
49
|
+
<label>magazine</label><input type="checkbox" name="media" value="1">
|
50
|
+
<label>TV show</label><input type="checkbox" name="media" value="2">
|
51
51
|
</form>
|
52
52
|
</body>
|
53
53
|
</html>
|
@@ -63,9 +63,9 @@ describe FormKeeper::Respondent do
|
|
63
63
|
<label>Sake</label><input type="radio" name="food" value="1" checked="checked" />
|
64
64
|
<label>Umeboshi</label><input type="radio" name="food" value="2" />
|
65
65
|
<h2>Where did you know about this page?</h2>
|
66
|
-
<label>web site</label><input type="
|
67
|
-
<label>magazine</label><input type="
|
68
|
-
<label>TV show</label><input type="
|
66
|
+
<label>web site</label><input type="checkbox" name="media" value="0" />
|
67
|
+
<label>magazine</label><input type="checkbox" name="media" value="1" checked="checked" />
|
68
|
+
<label>TV show</label><input type="checkbox" name="media" value="2" checked="checked" />
|
69
69
|
</form>
|
70
70
|
</body>
|
71
71
|
</html>
|
data/spec/validator_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe FormKeeper::Validator do
|
|
8
8
|
rule.filters :strip
|
9
9
|
rule.field :username, :present => true, :length => 8..16
|
10
10
|
rule.field :password, :present => true, :length => 8..16
|
11
|
-
rule.field :nickname, :
|
11
|
+
rule.field :nickname, :bytesize => 8..16, :filters => :upcase
|
12
12
|
|
13
13
|
params = {}
|
14
14
|
params['username'] = ' hogehogefoo'
|
@@ -32,7 +32,7 @@ describe FormKeeper::Validator do
|
|
32
32
|
rule.filters :strip
|
33
33
|
rule.field :username, :present => true, :length => 8..16
|
34
34
|
rule.field :password, :present => true, :length => 8..16
|
35
|
-
rule.field :nickname, :
|
35
|
+
rule.field :nickname, :bytesize => 8..16, :filters => :upcase
|
36
36
|
|
37
37
|
params = {}
|
38
38
|
params['username'] = ' hogehogefoo'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Helper library for stuff around HTML forms
|
15
15
|
email:
|
@@ -28,6 +28,21 @@ files:
|
|
28
28
|
- lib/formkeeper.rb
|
29
29
|
- lib/formkeeper/version.rb
|
30
30
|
- spec/asset/messages.yaml
|
31
|
+
- spec/constraint_alnum_space_spec.rb
|
32
|
+
- spec/constraint_alnum_spec.rb
|
33
|
+
- spec/constraint_alpha_space_spec.rb
|
34
|
+
- spec/constraint_alpha_spec.rb
|
35
|
+
- spec/constraint_ascii_space_spec.rb
|
36
|
+
- spec/constraint_ascii_spec.rb
|
37
|
+
- spec/constraint_bytesize_spec.rb
|
38
|
+
- spec/constraint_int_spec.rb
|
39
|
+
- spec/constraint_length_spec.rb
|
40
|
+
- spec/constraint_regexp_spec.rb
|
41
|
+
- spec/constraint_uint_spec.rb
|
42
|
+
- spec/constraint_uri_spec.rb
|
43
|
+
- spec/filter_downcase_spec.rb
|
44
|
+
- spec/filter_strip_spec.rb
|
45
|
+
- spec/filter_upcase_spec.rb
|
31
46
|
- spec/messages_spec.rb
|
32
47
|
- spec/record_spec.rb
|
33
48
|
- spec/report_spec.rb
|
@@ -49,7 +64,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
49
64
|
version: '0'
|
50
65
|
segments:
|
51
66
|
- 0
|
52
|
-
hash:
|
67
|
+
hash: -2485237141662980897
|
53
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
69
|
none: false
|
55
70
|
requirements:
|
@@ -58,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
73
|
version: '0'
|
59
74
|
segments:
|
60
75
|
- 0
|
61
|
-
hash:
|
76
|
+
hash: -2485237141662980897
|
62
77
|
requirements: []
|
63
78
|
rubyforge_project:
|
64
79
|
rubygems_version: 1.8.24
|
@@ -67,6 +82,21 @@ specification_version: 3
|
|
67
82
|
summary: This modules provides you an easy way for form-validation and fill-in-form
|
68
83
|
test_files:
|
69
84
|
- spec/asset/messages.yaml
|
85
|
+
- spec/constraint_alnum_space_spec.rb
|
86
|
+
- spec/constraint_alnum_spec.rb
|
87
|
+
- spec/constraint_alpha_space_spec.rb
|
88
|
+
- spec/constraint_alpha_spec.rb
|
89
|
+
- spec/constraint_ascii_space_spec.rb
|
90
|
+
- spec/constraint_ascii_spec.rb
|
91
|
+
- spec/constraint_bytesize_spec.rb
|
92
|
+
- spec/constraint_int_spec.rb
|
93
|
+
- spec/constraint_length_spec.rb
|
94
|
+
- spec/constraint_regexp_spec.rb
|
95
|
+
- spec/constraint_uint_spec.rb
|
96
|
+
- spec/constraint_uri_spec.rb
|
97
|
+
- spec/filter_downcase_spec.rb
|
98
|
+
- spec/filter_strip_spec.rb
|
99
|
+
- spec/filter_upcase_spec.rb
|
70
100
|
- spec/messages_spec.rb
|
71
101
|
- spec/record_spec.rb
|
72
102
|
- spec/report_spec.rb
|