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.
@@ -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'