yapv 0.0.3 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
- errors.add(:value) unless 10 - modulo == val.shift
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
@@ -1,3 +1,3 @@
1
1
  module Yapv
2
- VERSION = "0.0.3"
2
+ VERSION = "1.0"
3
3
  end
@@ -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: 0.0.3
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-05-12 00:00:00.000000000 Z
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: &70229335527100 !ruby/object:Gem::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: *70229335527100
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.15
67
+ rubygems_version: 1.8.24
63
68
  signing_key:
64
69
  specification_version: 3
65
70
  summary: ! 'yapv: Yet Another PESEL validator'