container_number_validator 0.0.2 → 0.0.3

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: 2ca2b8b436f8344e1ed9f443d2acbf66ca402ccf
4
- data.tar.gz: 3977a1d8829cb74af73fefd55f856119178b194a
3
+ metadata.gz: 34b22ae8669d103abab55fef56b4e8fd1a20e2bb
4
+ data.tar.gz: d8082766414fb2c9f75b9f57efbdf9860474447a
5
5
  SHA512:
6
- metadata.gz: d31e4f15def870f0a48a0de54e1252dcd9eb0757f693385b6504c2d69f6f4efcb2af6198526f1251995e01d08b3ee926094fe5b9cfbb904bfb53a192ef0caa32
7
- data.tar.gz: 6d07143e1de87cce89c7005e9d892eafee5e94462df0f06987f5fcb66d78846a8c8287a01041b98098c61f652f32223ee8fdd1b2071fec5b5aec22d8e3ba74d0
6
+ metadata.gz: cffdd72a4f72dd8b10c889d1e5da3b59ba3dc6dee80b28b8e4666279a878b6ec85dbce4a4d9f2641b0305b11a94403c88af0d6504ecd8841a83fdf6f8f109034
7
+ data.tar.gz: 8dc11368b99af48e3de041e9b79ba54409ccc09f6241c40fb4dd56bd4d52d6f7cac2697509c0573ccc5743fb4a845632a5e21819d781a6ca7130945b55418cc6
@@ -1,3 +1,3 @@
1
1
  module ContainerNumberValidator
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -54,11 +54,14 @@ module ContainerNumberValidator
54
54
  weights[i] = digit.to_i * WEIGHTS[i].to_i
55
55
  end
56
56
 
57
- weights.reduce(:+) % 11
57
+ checksum = weights.reduce(:+) % 11
58
+
59
+ # When checksum equals 10 the last digit will equal 0
60
+ checksum == 10 ? 0 : checksum
58
61
  end
59
62
  module_function :calculate_checksum
60
63
 
61
64
  end
62
65
 
63
66
  require 'container_number_validator/version'
64
- require 'container_number_validator/adapters/active_model' if defined?(ActiveModel)
67
+ require 'container_number_validator/adapters/active_model' if defined?(ActiveModel)
@@ -43,4 +43,21 @@ describe ContainerNumberValidator do
43
43
  end
44
44
  end
45
45
  end
46
+
47
+ context 'passes on numbers with checksum of 10' do
48
+ %w{ZIMU1380440 fciu8384900}.each do |value|
49
+ it "with #{value }" do
50
+ expect(subject.validate('ZIMU1380440')).to be_true
51
+ end
52
+ end
53
+ end
54
+
55
+ context 'Comprehensive test with real life examples' do
56
+ IO.readlines('./spec/fixtures/container_numbers.txt').each do |value|
57
+ it "passes with #{value}" do
58
+ value.strip!
59
+ expect(subject.validate(value)).to be_true
60
+ end
61
+ end
62
+ end
46
63
  end