jan 0.0.1 → 0.0.2
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 +4 -4
- data/README.md +9 -0
- data/lib/jan/validator.rb +8 -2
- data/lib/jan/version.rb +1 -1
- data/spec/jan/validator_spec.rb +53 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 783fb22083cdee79514404d9dfce2db04e3f98f4
|
4
|
+
data.tar.gz: 53bbdb8e75c9d5bfb0503908bda34c4260ba0af0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec3814c7ebb6239c3fd3fe08988150719e71b55e5335627030d175cfb20b8f32d7a4ed59f42e2513a1271e991c33ce4fa2038663bff15c6f94bd883991b00a47
|
7
|
+
data.tar.gz: 2ce916f461b1c40cdfaf22461da46a57abd53a7ffa5bf2f18a9d6a417a79902ea1e3c402f77bad79c93d5a63d3148727021313a15e2f85908046573316b294cf
|
data/README.md
CHANGED
@@ -37,6 +37,15 @@ jan.valid? # => true
|
|
37
37
|
Jan::Validator.validate("4901277241126") # => true
|
38
38
|
```
|
39
39
|
|
40
|
+
### Calculate check digit
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
# Correct code: "4901277241126"
|
44
|
+
|
45
|
+
Jan::CheckDigitCalculator.calculate("490127724112") # => 6
|
46
|
+
```
|
47
|
+
|
48
|
+
|
40
49
|
### Get elements
|
41
50
|
|
42
51
|
```ruby
|
data/lib/jan/validator.rb
CHANGED
@@ -6,8 +6,14 @@ class Jan
|
|
6
6
|
module_function
|
7
7
|
|
8
8
|
def validate(code)
|
9
|
-
code
|
10
|
-
|
9
|
+
validate_size(code.to_s) && validate_check_digit(code.to_s)
|
10
|
+
end
|
11
|
+
|
12
|
+
def validate_size(code)
|
13
|
+
[8,13].include?(code.to_s.size)
|
14
|
+
end
|
15
|
+
|
16
|
+
def validate_check_digit(code)
|
11
17
|
Parser.check_digit(code) == CheckDigitCalculator.calculate(Parser.body(code))
|
12
18
|
end
|
13
19
|
end
|
data/lib/jan/version.rb
CHANGED
data/spec/jan/validator_spec.rb
CHANGED
@@ -20,4 +20,57 @@ describe Jan::Validator do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
describe ".validate_size" do
|
25
|
+
context "valid codes" do
|
26
|
+
valid_size_codes = [8, 13].map{|n| "x" * n }
|
27
|
+
|
28
|
+
valid_size_codes.each do |code|
|
29
|
+
it "#{code} should be valid" do
|
30
|
+
actual = Jan::Validator.validate_size(code)
|
31
|
+
expect(actual).to be true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "invalid codes" do
|
37
|
+
invalid_size_codes = [1,2,3,4,5,6,7,9,10,11,12,14,15].map{|n| "x" * n }
|
38
|
+
|
39
|
+
invalid_size_codes.each do |code|
|
40
|
+
it "#{code} should be invalid" do
|
41
|
+
actual = Jan::Validator.validate_size(code)
|
42
|
+
expect(actual).to be false
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe ".validate_check_digit" do
|
49
|
+
context "valid codes" do
|
50
|
+
valid_check_digit_codes = (3..15).to_a.map{|n| Jan::Random.code(n) }
|
51
|
+
|
52
|
+
valid_check_digit_codes.each do |code|
|
53
|
+
it "#{code} should be valid" do
|
54
|
+
actual = Jan::Validator.validate_check_digit(code)
|
55
|
+
expect(actual).to be true
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "invalid codes" do
|
61
|
+
invalid_check_digit_codes = []
|
62
|
+
(3..15).each do |n|
|
63
|
+
code = Jan::Random.code(n)
|
64
|
+
code[-1] = ((Jan::Parser.check_digit(code) + 1 ) % 10).to_s
|
65
|
+
invalid_check_digit_codes << code
|
66
|
+
end
|
67
|
+
|
68
|
+
invalid_check_digit_codes.each do |code|
|
69
|
+
it "#{code} should be invalid" do
|
70
|
+
actual = Jan::Validator.validate_check_digit(code)
|
71
|
+
expect(actual).to be false
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
23
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OSA Shunsuke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|