magick_numbers 0.1.3 → 0.1.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.
@@ -0,0 +1,67 @@
1
+ ###MAGICK NUMBERS
2
+
3
+ Magic Numbers are numbers verfied with Luhn Algoritm like ISBN, VIN
4
+
5
+ magick_numbers gem simple verify this numbers.
6
+ In first version gem is focused on Polish numbers like:
7
+
8
+ - PESEL - (Polish ID Number)
9
+ - NIP - (Polish Taxation Identification Number)
10
+ - REGON - (Polish Company Identification Number)
11
+
12
+ but in near future will validate also:
13
+
14
+ - ISBN
15
+ - EAN
16
+ - VIN
17
+
18
+ meybe something else :)
19
+
20
+ ###Instalation:
21
+
22
+ gem install magick_numbers
23
+
24
+ ###Usage:
25
+
26
+ All numbers are in module MagickNumbers and have simple method `valid?`
27
+
28
+ require 'magick_numbers'
29
+
30
+ MagickNumbers::Nip.new(nip_number).valid?
31
+ MagickNumbers::Pesel.new(pesel_number).valid?
32
+ MagickNumbers::Regon.new(regon_number).valid?
33
+
34
+ ###Valid numbers:
35
+
36
+ ####NIP
37
+
38
+ NIP is valid when has 11 digits witn optional '-' between
39
+
40
+ 1234563218
41
+ 123-456-32-18
42
+ 123-45-63-218
43
+
44
+ are valid numbers
45
+
46
+ In international notation NIP has country code as first two signs, and:
47
+
48
+ PL1234563218
49
+ PL123-456-32-18
50
+ PL123-45-63-218
51
+
52
+ are also valid.
53
+
54
+ ####PESEL
55
+
56
+ Pesel's valid format is 11 digits, no other signs
57
+
58
+ ####REGON
59
+
60
+ Regon has two options, first 9 digits for small companies and 14 digits
61
+ with companies with regional offices.
62
+
63
+ Both are validated.
64
+
65
+
66
+
67
+ Copyright (c) 2011 Mariusz Nosiński, released under the MIT license
@@ -1 +1,7 @@
1
- Dir[File.expand_path(File.dirname(__FILE__) + '/magick_numbers/*.rb')].each {|f| require f}
1
+ require 'magick_numbers/version'
2
+ require 'magick_numbers/base'
3
+ require 'magick_numbers/nip'
4
+ require 'magick_numbers/pesel'
5
+ require 'magick_numbers/regon'
6
+ require 'magick_numbers/regon14'
7
+ require 'magick_numbers/regon9'
@@ -1,4 +1,5 @@
1
1
  module MagickNumbers
2
+
2
3
  class Nip < MagickNumbers::Base
3
4
 
4
5
  def initialize(num)
@@ -10,23 +11,20 @@ module MagickNumbers
10
11
 
11
12
  end
12
13
 
14
+ def validate_length
15
+ @magick_number.size == (international? ? 12 : 10)
16
+ end
17
+
18
+ def international?
19
+ /^PL/ =~ @magick_number
20
+ end
13
21
 
22
+ def validate_sum_control
23
+ magick_number.slice!(0..1) if international?
24
+ mod = checksum % modulo
25
+ mod === magick_array.shift
26
+ end
14
27
 
15
- def validate_length
16
- @magick_number.size == (international? ? 12 : 10)
17
- end
18
-
19
- def international?
20
- /^PL/ =~ @magick_number
21
- end
22
-
23
- def validate_sum_control
24
- magick_number.slice!(0..1) if international?
25
- mod = checksum % modulo
26
- mod === magick_array.shift
27
28
  end
28
29
 
29
-
30
- end
31
-
32
30
  end
@@ -1,4 +1,5 @@
1
1
  module MagickNumbers
2
+
2
3
  class Pesel < MagickNumbers::Base
3
4
 
4
5
  def initialize(num)
@@ -15,6 +16,7 @@ module MagickNumbers
15
16
  mod = 0 if mod == 10
16
17
  mod === magick_array.shift
17
18
  end
19
+
18
20
  end
19
21
 
20
22
  end
@@ -1,4 +1,5 @@
1
1
  module MagickNumbers
2
+
2
3
  class Regon
3
4
 
4
5
  def initialize(num)
@@ -1,6 +1,7 @@
1
1
  module MagickNumbers
2
2
 
3
3
  class Regon14 < MagickNumbers::Base
4
+
4
5
  def initialize(num)
5
6
  super num
6
7
  @mask = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8]
@@ -1,3 +1,3 @@
1
1
  module MagickNumbers
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: magick_numbers
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.3
5
+ version: 0.1.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mariusz Nosinski
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-31 00:00:00 +02:00
13
+ date: 2011-04-14 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies: []
16
16