gs1 0.1.0

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.
@@ -0,0 +1,49 @@
1
+ require 'gs1/validations/check_digit_validation'
2
+ require 'gs1/validations/date_validation'
3
+ require 'gs1/validations/length_validation'
4
+
5
+ module GS1
6
+ # Module for handling validations.
7
+ #
8
+ module Validations
9
+ def self.included(base)
10
+ base.extend ClassMethods
11
+ base.send :include, InstanceMethods
12
+ base.send :include, CheckDigitValidation
13
+ base.send :include, DateValidation
14
+ base.send :include, LengthValidation
15
+ end
16
+
17
+ # Adding validation class methods.
18
+ #
19
+ module ClassMethods
20
+ def valid_data?(data)
21
+ new(data).valid?
22
+ end
23
+ end
24
+
25
+ # Adding validation instance methods.
26
+ #
27
+ module InstanceMethods
28
+ attr_reader :errors
29
+
30
+ def initialize(*)
31
+ @errors = []
32
+ end
33
+
34
+ def valid?
35
+ errors.clear
36
+
37
+ validate
38
+
39
+ errors.empty?
40
+ end
41
+
42
+ def validate
43
+ self.class.definitions.each_key do |definition|
44
+ public_send("validate_#{definition}")
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,3 @@
1
+ module GS1
2
+ VERSION = '0.1.0'.freeze
3
+ end
data/lib/gs1.rb ADDED
@@ -0,0 +1,47 @@
1
+ require 'gs1/version'
2
+
3
+ require 'gs1/ai'
4
+ require 'gs1/check_digit_calculator'
5
+ require 'gs1/extensions'
6
+ require 'gs1/definitions'
7
+ require 'gs1/validations'
8
+
9
+ require 'gs1/record'
10
+ require 'gs1/batch'
11
+ require 'gs1/content'
12
+ require 'gs1/expiration_date'
13
+ require 'gs1/gtin'
14
+ require 'gs1/serial_number'
15
+ require 'gs1/sscc'
16
+
17
+ require 'gs1/barcode'
18
+
19
+ # GS1 module.
20
+ #
21
+ module GS1
22
+ class << self
23
+ def configure
24
+ @configuration ||= Configuration.new
25
+
26
+ yield @configuration
27
+ end
28
+
29
+ attr_reader :configuration
30
+ end
31
+
32
+ # Configuration holds custom configuration parameters.
33
+ #
34
+ class Configuration
35
+ attr_accessor :company_prefix
36
+ end
37
+
38
+ AI_CLASSES = GS1::Record.descendants.each_with_object({}) do |klass, hash|
39
+ hash[klass.ai] = klass
40
+ end
41
+
42
+ module AIDCMarketingLevels
43
+ ALL = [MINIMUM = 1,
44
+ ENHANCED = 2,
45
+ HIGHEST = 3].freeze
46
+ end
47
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gs1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Stefan Åhman
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-10-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rb-readline
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.1'
111
+ description: GS1 defines a set of GS1 standards directly from the documentation
112
+ email:
113
+ - stefan.ahman@apoex.se
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".rubocop.yml"
121
+ - ".ruby-version"
122
+ - ".travis.yml"
123
+ - CODE_OF_CONDUCT.md
124
+ - Gemfile
125
+ - LICENSE.txt
126
+ - README.md
127
+ - Rakefile
128
+ - bin/console
129
+ - bin/setup
130
+ - gs1.gemspec
131
+ - lib/gs1.rb
132
+ - lib/gs1/ai.rb
133
+ - lib/gs1/barcode.rb
134
+ - lib/gs1/barcode/base.rb
135
+ - lib/gs1/barcode/definitions.rb
136
+ - lib/gs1/barcode/healthcare.rb
137
+ - lib/gs1/batch.rb
138
+ - lib/gs1/check_digit_calculator.rb
139
+ - lib/gs1/content.rb
140
+ - lib/gs1/definitions.rb
141
+ - lib/gs1/expiration_date.rb
142
+ - lib/gs1/extensions.rb
143
+ - lib/gs1/extensions/date.rb
144
+ - lib/gs1/extensions/gtin.rb
145
+ - lib/gs1/gtin.rb
146
+ - lib/gs1/record.rb
147
+ - lib/gs1/serial_number.rb
148
+ - lib/gs1/sscc.rb
149
+ - lib/gs1/validations.rb
150
+ - lib/gs1/validations/check_digit_validation.rb
151
+ - lib/gs1/validations/date_validation.rb
152
+ - lib/gs1/validations/length_validation.rb
153
+ - lib/gs1/version.rb
154
+ homepage: https://github.com/apoex/gs1
155
+ licenses:
156
+ - MIT
157
+ metadata:
158
+ allowed_push_host: https://rubygems.org
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 2.3.0
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.5.1
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: A ruby gem for implementing GS1 standards
179
+ test_files: []