anodator 0.0.3 → 0.0.4
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/VERSION +1 -1
- data/example/example_01.rb +26 -11
- data/lib/anodator/validator/base.rb +11 -0
- data/lib/anodator/validator/date_validator.rb +14 -17
- data/lib/anodator/validator/length_validator.rb +11 -3
- data/lib/anodator/validator/numeric_validator.rb +16 -6
- data/lib/anodator/validator/value_proxy.rb +42 -0
- data/spec/anodator/validator/date_validator_spec.rb +8 -8
- data/spec/anodator/validator/length_validator_spec.rb +3 -3
- data/spec/anodator/validator/numeric_validator_spec.rb +6 -6
- metadata +25 -47
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/example/example_01.rb
CHANGED
@@ -5,7 +5,7 @@ require File.join(File.dirname(__FILE__), "..", "lib", "anodator")
|
|
5
5
|
include Anodator
|
6
6
|
|
7
7
|
### target data columns
|
8
|
-
# ID, Family name, First name, Sex, Phone number, Birthday, Blood type
|
8
|
+
# ID, Family name, First name, Sex, Phone number, Birthday, Blood type, Regist date
|
9
9
|
input_spec_array_definition =
|
10
10
|
[
|
11
11
|
{ :number => "1", :name => "ID", },
|
@@ -15,6 +15,7 @@ input_spec_array_definition =
|
|
15
15
|
{ :number => "5", :name => "Phone number", },
|
16
16
|
{ :number => "6", :name => "Birthday", },
|
17
17
|
{ :number => "7", :name => "Blood type", },
|
18
|
+
{ :number => "8", :name => "Regist date", },
|
18
19
|
]
|
19
20
|
input_spec = InputSpec.new(input_spec_array_definition)
|
20
21
|
|
@@ -87,6 +88,20 @@ rule_set << Rule.new("7",
|
|
87
88
|
Message.new("[[7::name]] must be 'A', 'B', 'O' or 'AB'.(([[7::value]]))"),
|
88
89
|
validator)
|
89
90
|
|
91
|
+
## Regist date
|
92
|
+
# Regist date must be YYYY-MM-DD format
|
93
|
+
validator = Validator::DateValidator.new("8")
|
94
|
+
rule_set << Rule.new("8",
|
95
|
+
Message.new("[[8::name]] must be date expression.([[8::value]])"),
|
96
|
+
validator)
|
97
|
+
|
98
|
+
## Complex rule
|
99
|
+
# Birthday < Regist date
|
100
|
+
validator = Validator::DateValidator.new("6", :to => "[[8]]")
|
101
|
+
rule_set << Rule.new("6",
|
102
|
+
Message.new("[[6::name]] must be less than [[8::name]].([[6::value]] < [[8::value]])"),
|
103
|
+
validator)
|
104
|
+
|
90
105
|
### output spec
|
91
106
|
## error list
|
92
107
|
items =
|
@@ -106,16 +121,16 @@ checker = Checker.new(input_spec, rule_set, output_spec)
|
|
106
121
|
### target datas
|
107
122
|
datas =
|
108
123
|
[
|
109
|
-
["1", "Murayama", "Honoka","F","08050967141","1971-10-01","B"],
|
110
|
-
["2", "Izawa", "Kazuma", "M", "09070028635", "1968-03-24","O"],
|
111
|
-
["3", "Hasebe", "Miyu", "F", "08087224562", "1991-01-21", "A"],
|
112
|
-
["4", "Furusawa", "Eri", "F", "08017372898","1965-02-14", "O"],
|
113
|
-
["5", "Hiramoto", "Yutaka", "M", "", "1986-09-14", "AB"],
|
114
|
-
["6", "Matsuzaki", "Runa", "F", "", "1960-03-27", "O"],
|
115
|
-
["7", "Inagaki", "Kouichi", "M", "", "1961-01-04", "B"],
|
116
|
-
["8", "Kase", "Sueji", "", "", "1969-03-19", "B"],
|
117
|
-
["9", "Kawanishi", "Hinako", "F", "08029628506", "1970-05-29", "B"],
|
118
|
-
["10", "Sakurai", "Eijirou", "M", "", "
|
124
|
+
["1", "Murayama", "Honoka","F","08050967141","1971-10-01","B", "2014-12-31"],
|
125
|
+
["2", "Izawa", "Kazuma", "M", "09070028635", "1968-03-24","O", "2014-12-31"],
|
126
|
+
["3", "Hasebe", "Miyu", "F", "08087224562", "1991-01-21", "A", "2014-12-31"],
|
127
|
+
["4", "Furusawa", "Eri", "F", "08017372898","1965-02-14", "O", "2014-12-31"],
|
128
|
+
["5", "Hiramoto", "Yutaka", "M", "", "1986-09-14", "AB", "2014-12-31"],
|
129
|
+
["6", "Matsuzaki", "Runa", "F", "", "1960-03-27", "O", "2014-12-31"],
|
130
|
+
["7", "Inagaki", "Kouichi", "M", "", "1961-01-04", "B", "2014-12-31"],
|
131
|
+
["8", "Kase", "Sueji", "", "", "1969-03-19", "B", "2014-12-31"],
|
132
|
+
["9", "Kawanishi", "Hinako", "F", "08029628506", "1970-05-29", "B", "2014-12-31"],
|
133
|
+
["10", "Sakurai", "Eijirou", "M", "", "2015-01-01", "A", "2014-12-31"],
|
119
134
|
]
|
120
135
|
|
121
136
|
### run check for all datas
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "anodator/validator/value_proxy"
|
2
|
+
|
1
3
|
module Anodator
|
2
4
|
module Validator
|
3
5
|
# +Validator::Base+ is basic class for validations
|
@@ -146,6 +148,10 @@ module Anodator
|
|
146
148
|
return @@values[target].to_s
|
147
149
|
end
|
148
150
|
|
151
|
+
def argument_value_at(name_or_index)
|
152
|
+
return @@values[name_or_index].to_s
|
153
|
+
end
|
154
|
+
|
149
155
|
def allow_blank?
|
150
156
|
return @options[:allow_blank]
|
151
157
|
end
|
@@ -154,6 +160,11 @@ module Anodator
|
|
154
160
|
return @options[:description]
|
155
161
|
end
|
156
162
|
|
163
|
+
def proxy_value(target)
|
164
|
+
ValueProxy.new(target, self)
|
165
|
+
end
|
166
|
+
private :proxy_value
|
167
|
+
|
157
168
|
def to_s(level = 4, step = 2)
|
158
169
|
(" " * level) + "- #{self.class}(#{self.description})"
|
159
170
|
end
|
@@ -15,21 +15,17 @@ module Anodator
|
|
15
15
|
# format check
|
16
16
|
date_regexp_holders
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
if date.nil?
|
30
|
-
raise ArgumentError.new("Invalid date expression '#{@options[:to]}'")
|
31
|
-
else
|
32
|
-
@options[:to] = date
|
18
|
+
[:from, :to].each do |key|
|
19
|
+
if !@options[key].nil?
|
20
|
+
@options[key] = proxy_value(@options[key])
|
21
|
+
if @options[key].direct? && !@options[key].value.is_a?(Date)
|
22
|
+
date = parse_date(@options[key].value.to_s)
|
23
|
+
if date.nil?
|
24
|
+
raise ArgumentError.new("Invalid date expression '#{@options[key].value}'")
|
25
|
+
else
|
26
|
+
@options[key] = proxy_value(date)
|
27
|
+
end
|
28
|
+
end
|
33
29
|
end
|
34
30
|
end
|
35
31
|
end
|
@@ -47,9 +43,9 @@ module Anodator
|
|
47
43
|
@options.each do |option, configuration|
|
48
44
|
case option
|
49
45
|
when :from
|
50
|
-
return false if configuration > date
|
46
|
+
return false if parse_date(configuration.value) > date
|
51
47
|
when :to
|
52
|
-
return false if configuration < date
|
48
|
+
return false if parse_date(configuration.value) < date
|
53
49
|
end
|
54
50
|
end
|
55
51
|
|
@@ -84,6 +80,7 @@ module Anodator
|
|
84
80
|
#
|
85
81
|
# not matched return nil
|
86
82
|
def parse_date(date_expression)
|
83
|
+
return date_expression if date_expression.is_a? Date
|
87
84
|
return nil unless match_data = date_regexp.match(date_expression)
|
88
85
|
|
89
86
|
index = 0
|
@@ -6,6 +6,14 @@ module Anodator
|
|
6
6
|
class LengthValidator < Base
|
7
7
|
valid_option_keys :in, :maximum, :minimum, :is
|
8
8
|
|
9
|
+
def initialize(target_expression, options = { })
|
10
|
+
super(target_expression, options)
|
11
|
+
|
12
|
+
[:maximum, :minimum, :is].each do |key|
|
13
|
+
@options[key] = proxy_value(@options[key]) unless @options[key].nil?
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
9
17
|
def validate
|
10
18
|
length = target_value.split(//).size
|
11
19
|
|
@@ -22,11 +30,11 @@ module Anodator
|
|
22
30
|
raise ConfigurationError.new(":in option value must be Range object")
|
23
31
|
end
|
24
32
|
when :maximum
|
25
|
-
return false if length > configuration.to_i
|
33
|
+
return false if length > configuration.value.to_i
|
26
34
|
when :minimum
|
27
|
-
return false if length < configuration.to_i
|
35
|
+
return false if length < configuration.value.to_i
|
28
36
|
when :is
|
29
|
-
return false if length != configuration.to_i
|
37
|
+
return false if length != configuration.value.to_i
|
30
38
|
end
|
31
39
|
end
|
32
40
|
|
@@ -8,6 +8,16 @@ module Anodator
|
|
8
8
|
valid_option_keys :less_than, :less_than_or_equal_to, :equal_to, :not_equal_to
|
9
9
|
default_options :only_integer => false
|
10
10
|
|
11
|
+
def initialize(target_expression, options = { })
|
12
|
+
super(target_expression, options)
|
13
|
+
|
14
|
+
[:greater_than, :greater_than_or_equal_to,
|
15
|
+
:less_than, :less_than_or_equal_to,
|
16
|
+
:equal_to, :not_equal_to].each do |key|
|
17
|
+
@options[key] = proxy_value(@options[key]) unless @options[key].nil?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
11
21
|
def validate
|
12
22
|
if allow_blank?
|
13
23
|
return true if target_value.split(//).size.zero?
|
@@ -27,17 +37,17 @@ module Anodator
|
|
27
37
|
@options.each do |option, configuration|
|
28
38
|
case option
|
29
39
|
when :greater_than
|
30
|
-
return false unless value > BigDecimal.new(configuration.to_s)
|
40
|
+
return false unless value > BigDecimal.new(configuration.value.to_s)
|
31
41
|
when :greater_than_or_equal_to
|
32
|
-
return false unless value >= BigDecimal.new(configuration.to_s)
|
42
|
+
return false unless value >= BigDecimal.new(configuration.value.to_s)
|
33
43
|
when :less_than
|
34
|
-
return false unless value < BigDecimal.new(configuration.to_s)
|
44
|
+
return false unless value < BigDecimal.new(configuration.value.to_s)
|
35
45
|
when :less_than_or_equal_to
|
36
|
-
return false unless value <= BigDecimal.new(configuration.to_s)
|
46
|
+
return false unless value <= BigDecimal.new(configuration.value.to_s)
|
37
47
|
when :equal_to
|
38
|
-
return false unless value == BigDecimal.new(configuration.to_s)
|
48
|
+
return false unless value == BigDecimal.new(configuration.value.to_s)
|
39
49
|
when :not_equal_to
|
40
|
-
return false unless value != BigDecimal.new(configuration.to_s)
|
50
|
+
return false unless value != BigDecimal.new(configuration.value.to_s)
|
41
51
|
end
|
42
52
|
end
|
43
53
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Anodator
|
2
|
+
module Validator
|
3
|
+
class ValueProxy
|
4
|
+
REGEXP_INDIRECT = /\A\[\[([^\]]+)\]\]\Z/
|
5
|
+
|
6
|
+
def initialize(value, validator)
|
7
|
+
@value = value
|
8
|
+
@validator = validator
|
9
|
+
@indirect = false
|
10
|
+
|
11
|
+
if matched = REGEXP_INDIRECT.match(@value.to_s)
|
12
|
+
@indirect = true
|
13
|
+
@value = matched[1]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def indirect?
|
18
|
+
return @indirect
|
19
|
+
end
|
20
|
+
|
21
|
+
def direct?
|
22
|
+
return !@indirect
|
23
|
+
end
|
24
|
+
|
25
|
+
def value
|
26
|
+
if direct?
|
27
|
+
return @value
|
28
|
+
else
|
29
|
+
return @validator.argument_value_at(@value)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_s
|
34
|
+
if direct?
|
35
|
+
return @value.to_s
|
36
|
+
else
|
37
|
+
return "#{@value}(Indirect)"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -91,11 +91,11 @@ describe DateValidator, ".new" do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
it "#from should be 1980-01-25" do
|
94
|
-
@new_proc.call.from.should == Date.new(1980, 1, 25)
|
94
|
+
@new_proc.call.from.value.should == Date.new(1980, 1, 25)
|
95
95
|
end
|
96
96
|
|
97
97
|
it "#to should be 2011-01-01" do
|
98
|
-
@new_proc.call.to.should == Date.new(2011, 1, 1)
|
98
|
+
@new_proc.call.to.value.should == Date.new(2011, 1, 1)
|
99
99
|
end
|
100
100
|
end
|
101
101
|
end
|
@@ -112,7 +112,7 @@ describe DateValidator, ".new" do
|
|
112
112
|
end
|
113
113
|
|
114
114
|
it "#from should be date object" do
|
115
|
-
@new_proc.call.from.should be_a Date
|
115
|
+
@new_proc.call.from.value.should be_a Date
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
@@ -128,11 +128,11 @@ describe DateValidator, ".new" do
|
|
128
128
|
end
|
129
129
|
|
130
130
|
it "#from should be date object" do
|
131
|
-
@new_proc.call.from.should be_a Date
|
131
|
+
@new_proc.call.from.value.should be_a Date
|
132
132
|
end
|
133
133
|
|
134
134
|
it "#from should be same date for string expression" do
|
135
|
-
@new_proc.call.from.should == Date.new(2011, 1, 1)
|
135
|
+
@new_proc.call.from.value.should == Date.new(2011, 1, 1)
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
@@ -160,7 +160,7 @@ describe DateValidator, ".new" do
|
|
160
160
|
end
|
161
161
|
|
162
162
|
it "#to should be date object" do
|
163
|
-
@new_proc.call.to.should be_a Date
|
163
|
+
@new_proc.call.to.value.should be_a Date
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
@@ -176,11 +176,11 @@ describe DateValidator, ".new" do
|
|
176
176
|
end
|
177
177
|
|
178
178
|
it "#to should be date object" do
|
179
|
-
@new_proc.call.to.should be_a Date
|
179
|
+
@new_proc.call.to.value.should be_a Date
|
180
180
|
end
|
181
181
|
|
182
182
|
it "#to should be same date for string expression" do
|
183
|
-
@new_proc.call.to.should == Date.new(2011, 1, 1)
|
183
|
+
@new_proc.call.to.value.should == Date.new(2011, 1, 1)
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
@@ -35,7 +35,7 @@ describe LengthValidator, ".new" do
|
|
35
35
|
|
36
36
|
it "should have :maximum option value" do
|
37
37
|
validator = @new_proc.call
|
38
|
-
validator.options[:maximum].should == 10
|
38
|
+
validator.options[:maximum].value.should == 10
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -52,7 +52,7 @@ describe LengthValidator, ".new" do
|
|
52
52
|
|
53
53
|
it "should have :minimum option value" do
|
54
54
|
validator = @new_proc.call
|
55
|
-
validator.options[:minimum].should == 10
|
55
|
+
validator.options[:minimum].value.should == 10
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -69,7 +69,7 @@ describe LengthValidator, ".new" do
|
|
69
69
|
|
70
70
|
it "should have :is option value" do
|
71
71
|
validator = @new_proc.call
|
72
|
-
validator.options[:is].should == 10
|
72
|
+
validator.options[:is].value.should == 10
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -58,7 +58,7 @@ describe NumericValidator, ".new" do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it ":greater_than option must be exists" do
|
61
|
-
@new_proc.call.options[:greater_than].should == 10
|
61
|
+
@new_proc.call.options[:greater_than].value.should == 10
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -74,7 +74,7 @@ describe NumericValidator, ".new" do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
it ":greater_than_or_equal_to option must be exists" do
|
77
|
-
@new_proc.call.options[:greater_than_or_equal_to].should == 10
|
77
|
+
@new_proc.call.options[:greater_than_or_equal_to].value.should == 10
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -90,7 +90,7 @@ describe NumericValidator, ".new" do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it ":less_than option must be exists" do
|
93
|
-
@new_proc.call.options[:less_than].should == 10
|
93
|
+
@new_proc.call.options[:less_than].value.should == 10
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
@@ -106,7 +106,7 @@ describe NumericValidator, ".new" do
|
|
106
106
|
end
|
107
107
|
|
108
108
|
it ":less_than_or_equal_to option must be exists" do
|
109
|
-
@new_proc.call.options[:less_than_or_equal_to].should == 10
|
109
|
+
@new_proc.call.options[:less_than_or_equal_to].value.should == 10
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
@@ -122,7 +122,7 @@ describe NumericValidator, ".new" do
|
|
122
122
|
end
|
123
123
|
|
124
124
|
it ":equal_to option must be exists" do
|
125
|
-
@new_proc.call.options[:equal_to].should == 10
|
125
|
+
@new_proc.call.options[:equal_to].value.should == 10
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -138,7 +138,7 @@ describe NumericValidator, ".new" do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
it ":not_equal_to option must be exists" do
|
141
|
-
@new_proc.call.options[:not_equal_to].should == 10
|
141
|
+
@new_proc.call.options[:not_equal_to].value.should == 10
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
metadata
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anodator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 25
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 0
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 0.0.3
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
12
10
|
platform: ruby
|
13
11
|
authors:
|
14
12
|
- Tetsuhisa MAKINO
|
@@ -16,92 +14,77 @@ autorequire:
|
|
16
14
|
bindir: bin
|
17
15
|
cert_chain: []
|
18
16
|
|
19
|
-
date:
|
17
|
+
date: 2015-07-12 00:00:00 +09:00
|
20
18
|
default_executable:
|
21
19
|
dependencies:
|
22
20
|
- !ruby/object:Gem::Dependency
|
23
|
-
|
24
|
-
name: rspec
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
21
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
22
|
requirements:
|
28
23
|
- - ~>
|
29
24
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 3
|
31
25
|
segments:
|
32
26
|
- 2
|
33
27
|
- 3
|
34
28
|
- 0
|
35
|
-
segments_generated: true
|
36
29
|
version: 2.3.0
|
37
|
-
|
30
|
+
prerelease: false
|
31
|
+
name: rspec
|
38
32
|
type: :development
|
33
|
+
version_requirements: *id001
|
39
34
|
- !ruby/object:Gem::Dependency
|
40
|
-
|
41
|
-
name: bundler
|
42
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
44
36
|
requirements:
|
45
37
|
- - ~>
|
46
38
|
- !ruby/object:Gem::Version
|
47
|
-
hash: 23
|
48
39
|
segments:
|
49
40
|
- 1
|
50
41
|
- 0
|
51
42
|
- 0
|
52
|
-
segments_generated: true
|
53
43
|
version: 1.0.0
|
54
|
-
|
44
|
+
prerelease: false
|
45
|
+
name: bundler
|
55
46
|
type: :development
|
47
|
+
version_requirements: *id002
|
56
48
|
- !ruby/object:Gem::Dependency
|
57
|
-
|
58
|
-
name: jeweler
|
59
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
61
50
|
requirements:
|
62
51
|
- - ~>
|
63
52
|
- !ruby/object:Gem::Version
|
64
|
-
hash: 7
|
65
53
|
segments:
|
66
54
|
- 1
|
67
55
|
- 6
|
68
56
|
- 4
|
69
|
-
segments_generated: true
|
70
57
|
version: 1.6.4
|
71
|
-
|
58
|
+
prerelease: false
|
59
|
+
name: jeweler
|
72
60
|
type: :development
|
61
|
+
version_requirements: *id003
|
73
62
|
- !ruby/object:Gem::Dependency
|
74
|
-
|
75
|
-
name: rcov
|
76
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
78
64
|
requirements:
|
79
65
|
- - ">="
|
80
66
|
- !ruby/object:Gem::Version
|
81
|
-
hash: 3
|
82
67
|
segments:
|
83
68
|
- 0
|
84
|
-
segments_generated: true
|
85
69
|
version: "0"
|
86
|
-
|
70
|
+
prerelease: false
|
71
|
+
name: rcov
|
87
72
|
type: :development
|
73
|
+
version_requirements: *id004
|
88
74
|
- !ruby/object:Gem::Dependency
|
89
|
-
|
90
|
-
name: rake
|
91
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
92
|
-
none: false
|
75
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
93
76
|
requirements:
|
94
77
|
- - "="
|
95
78
|
- !ruby/object:Gem::Version
|
96
|
-
hash: 49
|
97
79
|
segments:
|
98
80
|
- 0
|
99
81
|
- 8
|
100
82
|
- 7
|
101
|
-
segments_generated: true
|
102
83
|
version: 0.8.7
|
103
|
-
|
84
|
+
prerelease: false
|
85
|
+
name: rake
|
104
86
|
type: :development
|
87
|
+
version_requirements: *id005
|
105
88
|
description: anodator is Anonymous Data Validator.
|
106
89
|
email: tim.makino at gmail.com
|
107
90
|
executables: []
|
@@ -145,6 +128,7 @@ files:
|
|
145
128
|
- lib/anodator/validator/length_validator.rb
|
146
129
|
- lib/anodator/validator/numeric_validator.rb
|
147
130
|
- lib/anodator/validator/presence_validator.rb
|
131
|
+
- lib/anodator/validator/value_proxy.rb
|
148
132
|
- spec/anodator/check_result_spec.rb
|
149
133
|
- spec/anodator/checker_spec.rb
|
150
134
|
- spec/anodator/input_spec_item_spec.rb
|
@@ -176,29 +160,23 @@ rdoc_options: []
|
|
176
160
|
require_paths:
|
177
161
|
- lib
|
178
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
163
|
requirements:
|
181
164
|
- - ">="
|
182
165
|
- !ruby/object:Gem::Version
|
183
|
-
hash: 3
|
184
166
|
segments:
|
185
167
|
- 0
|
186
|
-
segments_generated: true
|
187
168
|
version: "0"
|
188
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
|
-
none: false
|
190
170
|
requirements:
|
191
171
|
- - ">="
|
192
172
|
- !ruby/object:Gem::Version
|
193
|
-
hash: 3
|
194
173
|
segments:
|
195
174
|
- 0
|
196
|
-
segments_generated: true
|
197
175
|
version: "0"
|
198
176
|
requirements: []
|
199
177
|
|
200
178
|
rubyforge_project:
|
201
|
-
rubygems_version: 1.3.
|
179
|
+
rubygems_version: 1.3.6
|
202
180
|
signing_key:
|
203
181
|
specification_version: 3
|
204
182
|
summary: anodator is Anonymous Data Validator.
|