polish_validators 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a7c7215248ad1dbd592c30ab12ceb0c93c7b7d0
4
- data.tar.gz: 80f3a0af8fca6f701364d45bc12d70b328fa3116
3
+ metadata.gz: 57fefa3d227565d7a73084778dd0e1c8437b37c2
4
+ data.tar.gz: 91fbf42f2398f6406441c33cf86fb50593a30c9f
5
5
  SHA512:
6
- metadata.gz: 87eb0ffa6b2d42ab0a4a932cd54abfa33307d682929263e1f275f174dc0e7b367566b7974fc4a6c75bc350245ed7a6c4d6ce4560b92b37841bfa08a3211e2657
7
- data.tar.gz: 5f48b888539e2055102a4bdeb845e918ef9d39aa4af821540a0424d4eaa8dfc236caf0a0973cdaa58aad854ef0812c59a1b266d3176b97ff867819252a17fa93
6
+ metadata.gz: 207ee6a110b99ad64827fb31c5093c6b2ad0dc616593dbe2717b4a5b9f485b2e78fec06d1cadc579f9dde346a73c3997347a1678ef68fff03bfecbcaeaf2d8bf
7
+ data.tar.gz: 73cc12d328a4b21012014b5ed7ec4d9e7fdf5332373077fbaab94f881461fa4ee3e5d9fbd18b08a6f156dc8905aee8b7ec42150b6adcb6e93d620f203d0d2921
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # PolishValidators [![Build Status](https://travis-ci.org/dbackowski/polish_validators.svg?branch=master)](https://travis-ci.org/dbackowski/polish_validators)
2
2
 
3
- Library for validate polish numbers: PESEL, NIP, REGON
3
+ Library for validate polish numbers: PESEL, NIP, REGON, IBAN (PL)
4
4
 
5
5
  ## Installation
6
6
 
@@ -20,6 +20,14 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
+ IBAN Validation:
24
+
25
+ ```ruby
26
+ iban = PolishValidators::IbanValidator.new('PL61109010140000071219812874')
27
+ iban.valid?
28
+ => true
29
+ ```
30
+
23
31
  NIP Validation:
24
32
 
25
33
  ```ruby
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "polish_validators"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,4 +1,5 @@
1
- require "polish_validators/version"
2
- require "polish_validators/nip_validator"
3
- require "polish_validators/pesel_validator"
4
- require "polish_validators/regon_validator"
1
+ require 'polish_validators/version'
2
+ require 'polish_validators/nip_validator'
3
+ require 'polish_validators/pesel_validator'
4
+ require 'polish_validators/regon_validator'
5
+ require 'polish_validators/iban_validator'
@@ -0,0 +1,15 @@
1
+ module PolishValidators
2
+ class IbanValidator
3
+ def initialize(iban)
4
+ @iban = iban.to_s
5
+ end
6
+
7
+ def valid?
8
+ return unless @iban =~ /\APL[0-9]{26}|[0-9]{26}\Z/
9
+
10
+ @iban.gsub!(/PL/, '')
11
+ @iban = "#{@iban[2..-1]}2521#{@iban[0..1]}".to_i
12
+ @iban % 97 == 1
13
+ end
14
+ end
15
+ end
@@ -5,7 +5,7 @@ module PolishValidators
5
5
  end
6
6
 
7
7
  def valid?
8
- return unless @nip.match(/\A\d{10}\Z/)
8
+ return unless @nip =~ /\A\d{10}\Z/
9
9
 
10
10
  weights = [6, 5, 7, 2, 3, 4, 5, 6, 7]
11
11
  nip = @nip.split(//).collect(&:to_i)
@@ -5,7 +5,7 @@ module PolishValidators
5
5
  end
6
6
 
7
7
  def valid?
8
- return unless @pesel.match(/\A\d{11}\Z/)
8
+ return unless @pesel =~ /\A\d{11}\Z/
9
9
 
10
10
  weights = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
11
11
  pesel = @pesel.split(//).collect(&:to_i)
@@ -5,7 +5,7 @@ module PolishValidators
5
5
  end
6
6
 
7
7
  def valid?
8
- return unless @regon.match(/\A\d{9,14}\Z/)
8
+ return unless @regon =~ /\A\d{9,14}\Z/
9
9
 
10
10
  weights8 = [8, 9, 2, 3, 4, 5, 6, 7]
11
11
  weights14 = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8]
@@ -1,3 +1,3 @@
1
1
  module PolishValidators
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = PolishValidators::VERSION
9
9
  spec.authors = ["Damian Baćkowski"]
10
10
  spec.email = ["damianbackowski@gmail.com"]
11
- spec.summary = %q{Library to validate polish numbers: PESEL, NIP, REGON}
12
- spec.description = %q{Library to validate polish numbers: PESEL, NIP, REGON.}
11
+ spec.summary = %q{Library to validate polish numbers: PESEL, NIP, REGON, IBAN}
12
+ spec.description = %q{Library to validate polish numbers: PESEL, NIP, REGON, IBAN.}
13
13
  spec.homepage = "https://github.com/dbackowski/polish_validators"
14
14
  spec.license = "MIT"
15
15
 
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec", "~> 3.2.0"
22
+ spec.add_development_dependency "rake", "~> 11.3.0"
23
+ spec.add_development_dependency "rspec", "~> 3.5.0"
24
24
  end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe PolishValidators::IbanValidator do
4
+ describe '.valid?' do
5
+ context 'with valid number' do
6
+ it 'return true' do
7
+ iban = PolishValidators::IbanValidator.new('PL61109010140000071219812874')
8
+ expect(iban).to be_valid
9
+ end
10
+ end
11
+
12
+ context 'with invalid number' do
13
+ it 'return false' do
14
+ iban = PolishValidators::IbanValidator.new('PL61109010140000071219812873')
15
+ expect(iban).to_not be_valid
16
+ end
17
+ end
18
+ end
19
+ end
@@ -3,17 +3,17 @@ require 'spec_helper'
3
3
  describe PolishValidators::NipValidator do
4
4
  describe '.valid?' do
5
5
  context 'with valid number' do
6
- it "return true" do
6
+ it 'return true' do
7
7
  nip = PolishValidators::NipValidator.new(1234563218)
8
8
  expect(nip).to be_valid
9
9
  end
10
10
  end
11
11
 
12
12
  context 'with invalid number' do
13
- it "return false" do
13
+ it 'return false' do
14
14
  nip = PolishValidators::NipValidator.new(1234567890)
15
15
  expect(nip).to_not be_valid
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -3,17 +3,17 @@ require 'spec_helper'
3
3
  describe PolishValidators::PeselValidator do
4
4
  describe '.valid?' do
5
5
  context 'with valid number' do
6
- it "return true" do
6
+ it 'return true' do
7
7
  pesel = PolishValidators::PeselValidator.new(44051401359)
8
8
  expect(pesel).to be_valid
9
9
  end
10
10
  end
11
11
 
12
12
  context 'with invalid number' do
13
- it "return false" do
13
+ it 'return false' do
14
14
  pesel = PolishValidators::PeselValidator.new(44051401358)
15
15
  expect(pesel).to_not be_valid
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PolishValidators::RegonValidator do
4
4
  describe '.valid?' do
5
5
  context 'with valid number' do
6
- it "return true" do
6
+ it 'return true' do
7
7
  regon = PolishValidators::RegonValidator.new(123456785)
8
8
  expect(regon).to be_valid
9
9
 
@@ -13,7 +13,7 @@ describe PolishValidators::RegonValidator do
13
13
  end
14
14
 
15
15
  context 'with invalid number' do
16
- it "return false" do
16
+ it 'return false' do
17
17
  regon = PolishValidators::RegonValidator.new(123456786)
18
18
  expect(regon).to_not be_valid
19
19
 
@@ -22,4 +22,4 @@ describe PolishValidators::RegonValidator do
22
22
  end
23
23
  end
24
24
  end
25
- end
25
+ end
metadata CHANGED
@@ -1,78 +1,84 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polish_validators
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Baćkowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-27 00:00:00.000000000 Z
11
+ date: 2016-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 11.3.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 11.3.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.2.0
47
+ version: 3.5.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.2.0
55
- description: 'Library to validate polish numbers: PESEL, NIP, REGON.'
54
+ version: 3.5.0
55
+ description: 'Library to validate polish numbers: PESEL, NIP, REGON, IBAN.'
56
56
  email:
57
57
  - damianbackowski@gmail.com
58
- executables: []
58
+ executables:
59
+ - console
60
+ - setup
59
61
  extensions: []
60
62
  extra_rdoc_files: []
61
63
  files:
62
- - .gitignore
63
- - .rspec
64
- - .rubocop.yml
65
- - .travis.yml
64
+ - ".gitignore"
65
+ - ".rspec"
66
+ - ".rubocop.yml"
67
+ - ".travis.yml"
66
68
  - Gemfile
67
69
  - LICENSE.txt
68
70
  - README.md
69
71
  - Rakefile
72
+ - bin/console
73
+ - bin/setup
70
74
  - lib/polish_validators.rb
75
+ - lib/polish_validators/iban_validator.rb
71
76
  - lib/polish_validators/nip_validator.rb
72
77
  - lib/polish_validators/pesel_validator.rb
73
78
  - lib/polish_validators/regon_validator.rb
74
79
  - lib/polish_validators/version.rb
75
80
  - polish_validators.gemspec
81
+ - spec/iban_validator_spec.rb
76
82
  - spec/nip_validator_spec.rb
77
83
  - spec/pesel_validator_spec.rb
78
84
  - spec/regon_validator_spec.rb
@@ -87,21 +93,22 @@ require_paths:
87
93
  - lib
88
94
  required_ruby_version: !ruby/object:Gem::Requirement
89
95
  requirements:
90
- - - '>='
96
+ - - ">="
91
97
  - !ruby/object:Gem::Version
92
98
  version: '0'
93
99
  required_rubygems_version: !ruby/object:Gem::Requirement
94
100
  requirements:
95
- - - '>='
101
+ - - ">="
96
102
  - !ruby/object:Gem::Version
97
103
  version: '0'
98
104
  requirements: []
99
105
  rubyforge_project:
100
- rubygems_version: 2.0.14
106
+ rubygems_version: 2.5.1
101
107
  signing_key:
102
108
  specification_version: 4
103
- summary: 'Library to validate polish numbers: PESEL, NIP, REGON'
109
+ summary: 'Library to validate polish numbers: PESEL, NIP, REGON, IBAN'
104
110
  test_files:
111
+ - spec/iban_validator_spec.rb
105
112
  - spec/nip_validator_spec.rb
106
113
  - spec/pesel_validator_spec.rb
107
114
  - spec/regon_validator_spec.rb