gs1 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24b04c0b10ceed0d1bc8745d597110030cdd3d61
4
- data.tar.gz: 6960554532b52b1b2e83caa82eed49d01288b356
3
+ metadata.gz: 9d50c9655be44cc5487286e9bc934f75c21f3872
4
+ data.tar.gz: 289498f478e765b504fb6006fbe8dcd2f7010d0b
5
5
  SHA512:
6
- metadata.gz: edd1c509c1cee9d40ce143f2da1a398af424edeb52d87068d70e78bac40ecac8e8c6fdd16bc6583d55c05f7cfd86d5853d8b7d9d9123b1442d5749796f57779b
7
- data.tar.gz: c5bb3a874be97053f38a957030da6d163da6f3ac69c083b9404f7bcbcf24bfdf125d0bce3b9049ef0129101109f800f5dd6861b8229409bc31b53d2126ca6067
6
+ metadata.gz: f411ca39dc709ba23ceef51ba78984d52dc26b2130e773ebbe767fe124796a01912db4086fe8771e231921a2da9b7b45eba83a326f215d10b487f5f12d26f9ef
7
+ data.tar.gz: 4067cd00f2397d755b6a44b24b15b4a53487faa55906ee4a3033fa354ad834328a0ec69417ec541312cce533466101b2472451b4500e562ddf0b92f7a2eaec1d
data/gs1.gemspec CHANGED
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'rake', '~> 10.0'
38
38
  spec.add_development_dependency 'rb-readline', '~> 0.1'
39
39
  spec.add_development_dependency 'rspec', '~> 3.0'
40
- spec.add_development_dependency 'rubocop', '~> 0.1'
40
+ spec.add_development_dependency 'rubocop', '~> 0.49.0'
41
41
  spec.add_development_dependency 'simplecov', '~> 0.1'
42
42
  end
@@ -5,13 +5,16 @@ module GS1
5
5
  class Healthcare < Base
6
6
  define_records GTIN, ExpirationDate, Batch, SerialNumber
7
7
 
8
- def to_s(level: AIDCMarketingLevels::ENHANCED)
8
+ def to_s(level: AIDCMarketingLevels::ENHANCED, separator: "\u001E")
9
9
  return unless valid?(level: level)
10
10
 
11
- [gtin.to_ai,
12
- expiration_date&.to_ai,
13
- batch&.to_ai,
14
- serial_number&.to_ai].compact.join
11
+ [
12
+ gtin.to_ai,
13
+ expiration_date&.to_ai,
14
+ batch&.to_ai,
15
+ separator,
16
+ serial_number&.to_ai
17
+ ].compact.join
15
18
  end
16
19
 
17
20
  def valid?(level: AIDCMarketingLevels::ENHANCED)
@@ -2,6 +2,7 @@ module GS1
2
2
  # Module for handling definitions.
3
3
  #
4
4
  module Definitions
5
+ class MissingLengthDefinition < StandardError; end
5
6
  class UnknownDefinition < StandardError; end
6
7
 
7
8
  def self.included(base)
@@ -72,7 +73,7 @@ module GS1
72
73
  end
73
74
 
74
75
  def lengths
75
- definitions[:length]
76
+ definitions[:length] || raise(MissingLengthDefinition)
76
77
  end
77
78
  end
78
79
  end
@@ -10,15 +10,15 @@ module GS1
10
10
  base.define :length, barcode: 6
11
11
  end
12
12
 
13
- def to_s
14
- return data.strftime('%y%m%d') if data.is_a?(::Date)
15
-
16
- data
13
+ def initialize(date)
14
+ if date.respond_to?(:strftime)
15
+ super(date.strftime('%y%m%d'))
16
+ else
17
+ super(date)
18
+ end
17
19
  end
18
20
 
19
21
  def to_date
20
- return data if data.is_a?(::Date)
21
-
22
22
  ::Date.parse(data)
23
23
  end
24
24
  end
data/lib/gs1/record.rb CHANGED
@@ -8,7 +8,6 @@ module GS1
8
8
  attr_reader :data
9
9
 
10
10
  def initialize(data)
11
- super
12
11
  @data = data
13
12
  end
14
13
 
@@ -44,12 +43,12 @@ module GS1
44
43
  end
45
44
 
46
45
  def to_ai
47
- "#{ai}#{data}"
46
+ "#{ai}#{to_s}" # rubocop:disable Lint/StringConversionInInterpolation
48
47
  end
49
48
 
50
49
  def ==(other)
51
- self.class == other.class &&
52
- to_s == other.to_s
50
+ self.class.equal?(other.class) &&
51
+ to_s.eql?(other.to_s)
53
52
  end
54
53
  end
55
54
  end
@@ -25,12 +25,6 @@ module GS1
25
25
  # Adding validation instance methods.
26
26
  #
27
27
  module InstanceMethods
28
- attr_reader :errors
29
-
30
- def initialize(*)
31
- @errors = []
32
- end
33
-
34
28
  def valid?
35
29
  errors.clear
36
30
 
@@ -39,6 +33,10 @@ module GS1
39
33
  errors.empty?
40
34
  end
41
35
 
36
+ def errors
37
+ @errors ||= []
38
+ end
39
+
42
40
  def validate
43
41
  self.class.definitions.each_key do |definition|
44
42
  public_send("validate_#{definition}")
data/lib/gs1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module GS1
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gs1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Åhman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-18 00:00:00.000000000 Z
11
+ date: 2018-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.1'
89
+ version: 0.49.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.1'
96
+ version: 0.49.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement