yapv 0.0.3 → 1.0
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/yapv/pesel.rb +6 -3
- data/lib/yapv/version.rb +1 -1
- data/test/pesel_test.rb +1 -5
- metadata +10 -5
data/lib/yapv/pesel.rb
CHANGED
@@ -6,7 +6,7 @@ module Yapv
|
|
6
6
|
validates :value, :presence => true, :length => {:is => 11}, :numericality => true
|
7
7
|
validate :pesel_format
|
8
8
|
|
9
|
-
def initialize(value
|
9
|
+
def initialize(value)
|
10
10
|
self.value = value
|
11
11
|
end
|
12
12
|
|
@@ -15,12 +15,15 @@ module Yapv
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def pesel_format
|
18
|
-
return unless value.length == 11
|
19
18
|
mask = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
|
20
19
|
val = value.split("").map(&:to_i)
|
21
20
|
|
22
21
|
modulo = mask.inject(0){|sum, num| sum + (num * val.shift)} % 10
|
23
|
-
|
22
|
+
if modulo == 0
|
23
|
+
errors.add(:value) unless val.shift == 0
|
24
|
+
else
|
25
|
+
errors.add(:value) unless 10 - modulo == val.shift
|
26
|
+
end
|
24
27
|
end
|
25
28
|
|
26
29
|
def gender
|
data/lib/yapv/version.rb
CHANGED
data/test/pesel_test.rb
CHANGED
@@ -6,10 +6,6 @@ class PeselTest < MiniTest::Unit::TestCase
|
|
6
6
|
assert_equal "12345678901", @pesel.value
|
7
7
|
end
|
8
8
|
|
9
|
-
def test_input_is_nil_safe
|
10
|
-
@pesel = Yapv::Pesel.new(nil)
|
11
|
-
assert !@pesel.valid?
|
12
|
-
end
|
13
9
|
def test_pesel_shorter_than_11_digits_is_invalid
|
14
10
|
@pesel = Yapv::Pesel.new("1" * 10)
|
15
11
|
assert !@pesel.valid?
|
@@ -33,7 +29,7 @@ class PeselTest < MiniTest::Unit::TestCase
|
|
33
29
|
end
|
34
30
|
|
35
31
|
def test_correct_pesel_is_valid
|
36
|
-
["74021834018", "02221407563"].each do |pesel|
|
32
|
+
["74021834018", "02221407563", "20241110410"].each do |pesel|
|
37
33
|
@pesel = Yapv::Pesel.new(pesel)
|
38
34
|
assert @pesel.valid?, "Pesel #{pesel} should be valid"
|
39
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yapv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: '1.0'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,12 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
description: ''
|
26
31
|
email:
|
27
32
|
- michal.krzyzanowski+github@gmail.com
|
@@ -59,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
64
|
version: '0'
|
60
65
|
requirements: []
|
61
66
|
rubyforge_project: yapv
|
62
|
-
rubygems_version: 1.8.
|
67
|
+
rubygems_version: 1.8.24
|
63
68
|
signing_key:
|
64
69
|
specification_version: 3
|
65
70
|
summary: ! 'yapv: Yet Another PESEL validator'
|