valideez 0.0.1 → 0.0.2
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/valideez/base.rb +2 -1
- data/lib/valideez/nip.rb +1 -1
- data/lib/valideez/nip_validator.rb +18 -0
- data/lib/valideez/pesel.rb +4 -4
- data/lib/valideez/pesel_validator.rb +2 -1
- data/lib/valideez/version.rb +1 -1
- data/spec/nip_validator_spec.rb +28 -0
- data/spec/{polish/pesel_spec.rb → pesel_spec.rb} +1 -1
- data/spec/pesel_validator_spec.rb +28 -0
- metadata +16 -11
data/lib/valideez/base.rb
CHANGED
@@ -9,7 +9,8 @@ module Valideez
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def valid?
|
12
|
-
validable.
|
12
|
+
p = validable.select{ |var| respond_to?("validate_#{var.to_s}", true) }
|
13
|
+
p.take_while { |var| send("validate_#{var.to_s}") }.size == p.size
|
13
14
|
end
|
14
15
|
|
15
16
|
private
|
data/lib/valideez/nip.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'active_model'
|
2
|
+
|
3
|
+
class NipValidator < ActiveModel::EachValidator
|
4
|
+
def validate_each(record, attribute, value)
|
5
|
+
@message = options[:message] || "invalid format"
|
6
|
+
record.errors[attribute] << @message unless Valideez::Nip.new(value).valid?
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module ActiveModel
|
11
|
+
module Validations
|
12
|
+
module HelperMethods
|
13
|
+
def validates_nip_of(*attr_names)
|
14
|
+
validates_with NipValidator, _merge_attributes(attr_names)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/valideez/pesel.rb
CHANGED
@@ -8,12 +8,12 @@ module Valideez
|
|
8
8
|
super val
|
9
9
|
|
10
10
|
assign({
|
11
|
-
:sum_control => true,
|
12
|
-
:format => /\A\d{11}\Z/,
|
13
11
|
:length => 11,
|
12
|
+
:format => /\A\d{11}\Z/,
|
14
13
|
:mask => [1, 3, 7, 9, 1, 3, 7, 9, 1, 3],
|
15
14
|
:modulo => 10,
|
16
15
|
:age => 0,
|
16
|
+
:sum_control => true,
|
17
17
|
}.merge(options))
|
18
18
|
|
19
19
|
@arr = []
|
@@ -39,8 +39,8 @@ module Valideez
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def checksum
|
42
|
-
@arr = val.split("").collect(&:to_i)
|
43
|
-
mask.inject(0) {|sum, w| sum + w * @arr.shift}
|
42
|
+
@arr = val.split("").collect(&:to_i)
|
43
|
+
mask.inject(0) {|sum, w| sum + w * @arr.shift}
|
44
44
|
end
|
45
45
|
|
46
46
|
def convert_to_date(sample)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'active_model'
|
2
2
|
|
3
3
|
class PeselValidator < ActiveModel::EachValidator
|
4
|
+
|
4
5
|
def validate_each(record, attribute, value)
|
5
|
-
|
6
|
+
message = options[:message] || "invalid format"
|
6
7
|
record.errors.add(attribute, @message) unless Valideez::Pesel.new(value).valid?
|
7
8
|
end
|
8
9
|
end
|
data/lib/valideez/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec'
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
class NipBastard
|
6
|
+
include ActiveModel::Validations
|
7
|
+
|
8
|
+
attr_accessor :nip
|
9
|
+
validates :nip, :presence => true, :nip => true
|
10
|
+
end
|
11
|
+
|
12
|
+
describe NipValidator do
|
13
|
+
before :each do
|
14
|
+
@model = NipBastard.new
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be valid" do
|
18
|
+
@model.should_not be_valid
|
19
|
+
@model.nip = '786-000-11-84'
|
20
|
+
@model.should be_valid
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be invalid" do
|
24
|
+
@model.should_not be_valid
|
25
|
+
@model.nip = '786-200-11-84'
|
26
|
+
@model.should_not be_valid
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec'
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
class PeselBastard
|
6
|
+
include ActiveModel::Validations
|
7
|
+
|
8
|
+
attr_accessor :pesel
|
9
|
+
validates :pesel, :presence => true, :pesel => true
|
10
|
+
end
|
11
|
+
|
12
|
+
describe PeselValidator do
|
13
|
+
before :each do
|
14
|
+
@model = PeselBastard.new
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be valid" do
|
18
|
+
@model.should_not be_valid
|
19
|
+
@model.pesel = '68041979693'
|
20
|
+
@model.should be_valid
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be invalid" do
|
24
|
+
@model.should_not be_valid
|
25
|
+
@model.pesel = '69041979693'
|
26
|
+
@model.should_not be_valid
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valideez
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-08-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70186149953800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70186149953800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70186149953360 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70186149953360
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activemodel
|
38
|
-
requirement: &
|
38
|
+
requirement: &70186149952840 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 3.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70186149952840
|
47
47
|
description: Your favourite validations with Ruby
|
48
48
|
email:
|
49
49
|
- oh@zaiste.net
|
@@ -62,13 +62,16 @@ files:
|
|
62
62
|
- lib/valideez/bastard.rb
|
63
63
|
- lib/valideez/common.rb
|
64
64
|
- lib/valideez/nip.rb
|
65
|
+
- lib/valideez/nip_validator.rb
|
65
66
|
- lib/valideez/pesel.rb
|
66
67
|
- lib/valideez/pesel_validator.rb
|
67
68
|
- lib/valideez/phone.rb
|
68
69
|
- lib/valideez/version.rb
|
69
70
|
- spec/bastard_spec.rb
|
70
71
|
- spec/nip_spec.rb
|
71
|
-
- spec/
|
72
|
+
- spec/nip_validator_spec.rb
|
73
|
+
- spec/pesel_spec.rb
|
74
|
+
- spec/pesel_validator_spec.rb
|
72
75
|
- spec/spec_helper.rb
|
73
76
|
- valideez.gemspec
|
74
77
|
homepage: http://dev.zaiste.net/gem/valideez
|
@@ -85,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
88
|
version: '0'
|
86
89
|
segments:
|
87
90
|
- 0
|
88
|
-
hash: -
|
91
|
+
hash: -1225042820358254434
|
89
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
93
|
none: false
|
91
94
|
requirements:
|
@@ -94,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
97
|
version: '0'
|
95
98
|
segments:
|
96
99
|
- 0
|
97
|
-
hash: -
|
100
|
+
hash: -1225042820358254434
|
98
101
|
requirements: []
|
99
102
|
rubyforge_project: valideez
|
100
103
|
rubygems_version: 1.8.6
|
@@ -104,5 +107,7 @@ summary: Let's valideez lousy objects once and forever
|
|
104
107
|
test_files:
|
105
108
|
- spec/bastard_spec.rb
|
106
109
|
- spec/nip_spec.rb
|
107
|
-
- spec/
|
110
|
+
- spec/nip_validator_spec.rb
|
111
|
+
- spec/pesel_spec.rb
|
112
|
+
- spec/pesel_validator_spec.rb
|
108
113
|
- spec/spec_helper.rb
|