salsify-gtin 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +8 -4
- data/.rubocop.yml +2 -0
- data/.rubocop_todo.yml +20 -0
- data/gtin.gemspec +1 -1
- data/lib/gtin/gtin.rb +14 -2
- data/lib/gtin/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf85b1127e3fef3f0b0b68475014f14fe6fbe53af40d0af59f8e28e8925fbf17
|
4
|
+
data.tar.gz: 71ffc083ccd48af8d2872f5b6cb185fdea89f4faf29420f13eaa857603753cc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 857e0fd70954caca95353b14963ed25983037027a6e0bc4e94d2c111b1409443f20e0284fd832b01804e0d383482d772add402daa74bc0c84df9950067626a79
|
7
|
+
data.tar.gz: 3317865cf3966e553d0b9783d5500131ed6aae374de7d3a9b86cbd45651d0ac7c03b08c03146ba8c46a6c41f7283e4f5b1bcd09b40cfda8e8f1b374f57130421
|
data/.circleci/config.yml
CHANGED
@@ -3,12 +3,16 @@ jobs:
|
|
3
3
|
build:
|
4
4
|
docker:
|
5
5
|
- image: salsify/ruby_ci:2.5.1
|
6
|
-
|
6
|
+
environment:
|
7
|
+
RACK_ENV: "test"
|
8
|
+
RAILS_ENV: "test"
|
9
|
+
CIRCLE_TEST_REPORTS: "test-results"
|
10
|
+
working_directory: ~/salsify-gtin
|
7
11
|
steps:
|
8
12
|
- checkout
|
9
13
|
- restore_cache:
|
10
14
|
keys:
|
11
|
-
- v1-gems-ruby-2.5.1-{{ checksum "
|
15
|
+
- v1-gems-ruby-2.5.1-{{ checksum "gtin.gemspec" }}-{{ checksum "Gemfile" }}
|
12
16
|
- v1-gems-ruby-2.5.1-
|
13
17
|
- run:
|
14
18
|
name: Install Gems
|
@@ -18,7 +22,7 @@ jobs:
|
|
18
22
|
bundle clean
|
19
23
|
fi
|
20
24
|
- save_cache:
|
21
|
-
key: v1-gems-ruby-2.5.1-{{ checksum "
|
25
|
+
key: v1-gems-ruby-2.5.1-{{ checksum "gtin.gemspec" }}-{{ checksum "Gemfile" }}
|
22
26
|
paths:
|
23
27
|
- "vendor/bundle"
|
24
28
|
- "gemfiles/vendor"
|
@@ -30,4 +34,4 @@ jobs:
|
|
30
34
|
command: |
|
31
35
|
bundle exec rspec --format RspecJunitFormatter --out $CIRCLE_TEST_REPORTS/rspec/junit.xml --format progress spec
|
32
36
|
- store_test_results:
|
33
|
-
path:
|
37
|
+
path: $CIRCLE_TEST_REPORTS
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2019-02-12 14:05:52 -0500 using RuboCop version 0.52.1.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Cop supports --auto-correct.
|
11
|
+
# Configuration parameters: AllowMultipleReturnValues.
|
12
|
+
Style/RedundantReturn:
|
13
|
+
Exclude:
|
14
|
+
- 'lib/gtin/gtin.rb'
|
15
|
+
|
16
|
+
# Offense count: 10
|
17
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
18
|
+
# URISchemes: http, https
|
19
|
+
Metrics/LineLength:
|
20
|
+
Max: 134
|
data/gtin.gemspec
CHANGED
@@ -33,6 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency 'pry-byebug'
|
34
34
|
spec.add_development_dependency 'rake', '~> 10.0'
|
35
35
|
spec.add_development_dependency 'rspec', '~> 3.4'
|
36
|
-
|
36
|
+
spec.add_development_dependency 'rspec_junit_formatter', '0.2.2'
|
37
37
|
spec.add_development_dependency 'salsify_rubocop', '~> 0.52.1'
|
38
38
|
end
|
data/lib/gtin/gtin.rb
CHANGED
@@ -31,8 +31,13 @@ module GTIN
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def standardize(id_type, value, validate_checksum: true)
|
34
|
-
fail_on_invalid_checksum(id_type, value) if validate_checksum
|
35
34
|
converter = get_converter(id_type, value.length)
|
35
|
+
if converter.nil?
|
36
|
+
raise GtinValidationError.new("#{id_type} standardization failed: no gtin converter for value with length #{value.length}")
|
37
|
+
end
|
38
|
+
|
39
|
+
fail_on_invalid_checksum(id_type, value) if validate_checksum
|
40
|
+
|
36
41
|
send(converter.standardizer, value)
|
37
42
|
end
|
38
43
|
|
@@ -41,7 +46,8 @@ module GTIN
|
|
41
46
|
return converter if type_matcher.match?(id_type) && value_length == length
|
42
47
|
end
|
43
48
|
|
44
|
-
|
49
|
+
# rubocop warns about this, but it's needed because #each returns its owner
|
50
|
+
return nil
|
45
51
|
end
|
46
52
|
|
47
53
|
def standardize_gtin(gtin)
|
@@ -76,12 +82,18 @@ module GTIN
|
|
76
82
|
|
77
83
|
def valid_checksum?(id_type, identifier)
|
78
84
|
converter = get_converter(id_type, identifier.length)
|
85
|
+
return false if converter.nil?
|
86
|
+
|
79
87
|
expected_checksum = send(converter.checksum_computer, identifier[0..-2])
|
80
88
|
identifier[-1] == expected_checksum
|
81
89
|
end
|
82
90
|
|
83
91
|
def fail_on_invalid_checksum(id_type, identifier)
|
84
92
|
converter = get_converter(id_type, identifier.length)
|
93
|
+
if converter.nil?
|
94
|
+
raise GtinValidationError.new("Invalid checksum: gtin converter not found for #{id_type} with length #{value.length}")
|
95
|
+
end
|
96
|
+
|
85
97
|
expected_checksum = send(converter.checksum_computer, identifier[0..-2])
|
86
98
|
actual_checksum = identifier[-1]
|
87
99
|
return if actual_checksum == expected_checksum
|
data/lib/gtin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salsify-gtin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec_junit_formatter
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.2.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.2.2
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: salsify_rubocop
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,6 +123,7 @@ files:
|
|
109
123
|
- ".overcommit.yml"
|
110
124
|
- ".rspec"
|
111
125
|
- ".rubocop.yml"
|
126
|
+
- ".rubocop_todo.yml"
|
112
127
|
- ".travis.yml"
|
113
128
|
- CHANGELOG.md
|
114
129
|
- Gemfile
|