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.
- data/README.markdown +67 -0
- data/lib/magick_numbers.rb +7 -1
- data/lib/magick_numbers/nip.rb +13 -15
- data/lib/magick_numbers/pesel.rb +2 -0
- data/lib/magick_numbers/regon.rb +1 -0
- data/lib/magick_numbers/regon14.rb +1 -0
- data/lib/magick_numbers/version.rb +1 -1
- metadata +2 -2
data/README.markdown
CHANGED
@@ -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
|
data/lib/magick_numbers.rb
CHANGED
@@ -1 +1,7 @@
|
|
1
|
-
|
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'
|
data/lib/magick_numbers/nip.rb
CHANGED
@@ -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
|
data/lib/magick_numbers/pesel.rb
CHANGED
data/lib/magick_numbers/regon.rb
CHANGED
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.
|
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-
|
13
|
+
date: 2011-04-14 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|