validocno 0.0.2 → 0.0.3
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.
- checksums.yaml +5 -5
- data/.rspec +1 -1
- data/README.md +2 -4
- data/lib/validocno/validator.rb +33 -0
- data/lib/validocno/version.rb +1 -1
- data/lib/validocno.rb +4 -30
- data/spec/validator_spec.rb +35 -0
- data/spec/validocno_spec.rb +10 -18
- metadata +5 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
SHA512:
|
|
3
|
-
data.tar.gz: e304093ade6b07869240f13b2d965bc886afe6837287275c333abeadb5821cf1bf8585c0fbd6e4a340f63d12f383f89ee238257229a2f867112b0f593a72acef
|
|
4
|
-
metadata.gz: 8b8f554d4ec2eb480ff705872599f6394e32b5d07bf2389344f676c0f8a7c5e485922476b57d9d7688b1dd67bccf98fadf014612f3a222836e933a18de97f3a5
|
|
5
2
|
SHA1:
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
metadata.gz: 39e93c3f4784161ad642f67ef31d5c01097e42a8
|
|
4
|
+
data.tar.gz: b52f0bcc45b4ce28c05c2042d5b9fe1fb3ae5440
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0248dd8e7065aa7d53787eef3007ad7fad74e85cd01fa348f37906b4acecfaabb9067fe6729d5f3439b2198d1a558cabd725f4f93127b534da592dea14180a92
|
|
7
|
+
data.tar.gz: fe920d230f9cb9383f7982a40a0846870d8f21ccd83c876a8aba1f8bd5124b7d9210ef57573e728290b967bc3533dea1121f487f21f4973a3c4dee5fa382a0c2
|
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--color
|
|
-
-format documentation
|
data/README.md
CHANGED
|
@@ -21,12 +21,10 @@ Or install it yourself as:
|
|
|
21
21
|
## Usage
|
|
22
22
|
> require 'validocno'
|
|
23
23
|
|
|
24
|
-
>
|
|
25
|
-
> document.valid?
|
|
24
|
+
> Validocno.valid?('A1234567')
|
|
26
25
|
=> true
|
|
27
26
|
|
|
28
|
-
>
|
|
29
|
-
> document.valid?
|
|
27
|
+
> Validocno.valid?('A1234567890')
|
|
30
28
|
=> false
|
|
31
29
|
|
|
32
30
|
## Contributing
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Validocno
|
|
2
|
+
class Validator
|
|
3
|
+
CONTROL_URI = 'http://politsei.ee/et/teenused/e-paringud/dokumendi-kehtivuse-kontroll/'
|
|
4
|
+
|
|
5
|
+
def initialize(doc_number)
|
|
6
|
+
@doc_number = doc_number
|
|
7
|
+
@csrf_token = csrf_token
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def csrf_token
|
|
11
|
+
response = Validocno::Client.get(CONTROL_URI)
|
|
12
|
+
response.at_css('#content1left form input[name="csrf"]')['value']
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def response_string
|
|
16
|
+
options = {
|
|
17
|
+
:query => {
|
|
18
|
+
:cmd => 'request',
|
|
19
|
+
:csrf => @csrf_token,
|
|
20
|
+
:docNumber => @doc_number
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
response = Validocno::Client.post(CONTROL_URI, options)
|
|
25
|
+
response.at_css('#content1left').children.last.text.strip.to_s
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def valid?
|
|
29
|
+
return true if response_string.match(/on kehtiv/)
|
|
30
|
+
false
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/validocno/version.rb
CHANGED
data/lib/validocno.rb
CHANGED
|
@@ -7,39 +7,13 @@ require 'rubygems'
|
|
|
7
7
|
require 'httparty'
|
|
8
8
|
require 'nokogiri'
|
|
9
9
|
|
|
10
|
+
require 'validocno/validator'
|
|
10
11
|
require 'validocno/version'
|
|
11
12
|
require 'validocno/http_client'
|
|
12
13
|
|
|
13
14
|
module Validocno
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def initialize(doc_number)
|
|
18
|
-
@doc_number = doc_number
|
|
19
|
-
@csrf_token = csrf_token
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def csrf_token
|
|
23
|
-
response = Validocno::Client.get(CONTROL_URI)
|
|
24
|
-
response.at_css('#content1left form input[name="csrf"]')['value']
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def response_string
|
|
28
|
-
options = {
|
|
29
|
-
:query => {
|
|
30
|
-
:cmd => 'request',
|
|
31
|
-
:csrf => @csrf_token,
|
|
32
|
-
:docNumber => @doc_number
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
response = Validocno::Client.post(CONTROL_URI, options)
|
|
37
|
-
response.at_css('#content1left').children.last.text.strip.to_s
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def valid?
|
|
41
|
-
return true if response_string.match(/on kehtiv/)
|
|
42
|
-
false
|
|
43
|
-
end
|
|
15
|
+
def self.valid?(doc_number)
|
|
16
|
+
validator = Validocno::Validator.new(doc_number)
|
|
17
|
+
validator.valid?
|
|
44
18
|
end
|
|
45
19
|
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Validocno::Validator do
|
|
4
|
+
let(:doc_number) { 'A1234567' }
|
|
5
|
+
let(:validator) { Validocno::Validator.new(doc_number) }
|
|
6
|
+
|
|
7
|
+
describe '.new' do
|
|
8
|
+
it 'initializes with a document number' do
|
|
9
|
+
expect(validator).to be
|
|
10
|
+
expect { validator }.to_not raise_error
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'raises an error without a document number' do
|
|
14
|
+
expect { Validocno::Validator.new }.to raise_error(ArgumentError)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'sets csrf_token instance variable' do
|
|
18
|
+
expect(validator.csrf_token).to_not be_nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe '#valid?' do
|
|
24
|
+
let(:invalid_doc_number) { 'A1234567890' }
|
|
25
|
+
let(:invalid_validator) { Validocno::Validator.new(invalid_doc_number) }
|
|
26
|
+
|
|
27
|
+
it 'returns true when document with valid number provided' do
|
|
28
|
+
expect(validator).to be_valid
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'returns false when document with invalid number provided' do
|
|
32
|
+
expect(invalid_validator).to_not be_valid
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/spec/validocno_spec.rb
CHANGED
|
@@ -1,28 +1,20 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Validocno
|
|
4
|
-
describe '
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
expect(validator).to be
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
it 'sets csrf_token instance variable' do
|
|
11
|
-
validator = Validocno::Validator.new('A1234567')
|
|
12
|
-
expect(validator.csrf_token).to_not be_nil
|
|
13
|
-
end
|
|
3
|
+
describe Validocno do
|
|
4
|
+
describe '.valid?' do
|
|
5
|
+
let(:valid_doc_number) { 'A1234567' }
|
|
6
|
+
let(:invalid_doc_number) { 'A1234567890' }
|
|
14
7
|
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
describe '#valid?' do
|
|
18
8
|
it 'returns true when document with valid number provided' do
|
|
19
|
-
|
|
20
|
-
expect(validator).to be_valid
|
|
9
|
+
expect(Validocno.valid?(valid_doc_number)).to be true
|
|
21
10
|
end
|
|
22
11
|
|
|
23
12
|
it 'returns false when document with invalid number provided' do
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
expect(Validocno.valid?(invalid_doc_number)).to be false
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'raises an error without a document number' do
|
|
17
|
+
expect { Validocno.valid? }.to raise_error(ArgumentError)
|
|
26
18
|
end
|
|
27
19
|
end
|
|
28
20
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: validocno
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Artem Pakk
|
|
@@ -72,15 +72,18 @@ extra_rdoc_files: []
|
|
|
72
72
|
|
|
73
73
|
files:
|
|
74
74
|
- .gitignore
|
|
75
|
+
- .rspec
|
|
75
76
|
- Gemfile
|
|
76
77
|
- LICENSE
|
|
77
78
|
- README.md
|
|
78
79
|
- Rakefile
|
|
79
80
|
- lib/validocno.rb
|
|
80
81
|
- lib/validocno/http_client.rb
|
|
82
|
+
- lib/validocno/validator.rb
|
|
81
83
|
- lib/validocno/version.rb
|
|
82
84
|
- rubocop.yml
|
|
83
85
|
- spec/spec_helper.rb
|
|
86
|
+
- spec/validator_spec.rb
|
|
84
87
|
- spec/validocno_spec.rb
|
|
85
88
|
- validocno.gemspec
|
|
86
89
|
homepage: https://github.com/deskrock/validocno
|
|
@@ -112,4 +115,5 @@ specification_version: 4
|
|
|
112
115
|
summary: Estonian ID card validator
|
|
113
116
|
test_files:
|
|
114
117
|
- spec/spec_helper.rb
|
|
118
|
+
- spec/validator_spec.rb
|
|
115
119
|
- spec/validocno_spec.rb
|