gs1 0.1.0 → 0.1.1

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: 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