magick_numbers 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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