barcodes 0.0.7 → 0.0.8
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.
@@ -15,90 +15,109 @@ module Barcodes
|
|
15
15
|
# More info: http://en.wikipedia.org/wiki/Code_39
|
16
16
|
class Code39Extended < Code39
|
17
17
|
|
18
|
-
|
18
|
+
# Start character + prepared data + stop character
|
19
|
+
def formatted_data
|
20
|
+
@start_character + self._data + @stop_character
|
21
|
+
end
|
22
|
+
|
23
|
+
# Determines whether or not the barcode data to be encoded
|
24
|
+
# is valid.
|
25
|
+
def valid?
|
26
|
+
valid = self.data.length > 0 ? true : false
|
19
27
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
unless super(character).nil?
|
24
|
-
return super(character)
|
28
|
+
self._data.each_byte do |char|
|
29
|
+
if self._encode_character(char).nil?
|
30
|
+
return false
|
25
31
|
end
|
26
32
|
end
|
33
|
+
|
34
|
+
return valid
|
35
|
+
end
|
36
|
+
|
37
|
+
#protected
|
38
|
+
|
39
|
+
# Returns prepared barcode data by replacing extended characters
|
40
|
+
def _data
|
41
|
+
prepared_data = ""
|
27
42
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
43
|
+
self.data.each_byte do |character|
|
44
|
+
case character
|
45
|
+
when 0
|
46
|
+
prepared_data += '%' + 'U'
|
47
|
+
when 1..26
|
48
|
+
prepared_data += '$' + (character + 64).chr
|
49
|
+
when 27..31
|
50
|
+
prepared_data += '%' + (character + 38).chr
|
51
|
+
when 127
|
52
|
+
prepared_data += '%' + 'T'
|
53
|
+
when '!'.bytes.to_a[0]
|
54
|
+
prepared_data += '/' + 'A'
|
55
|
+
when '"'.bytes.to_a[0]
|
56
|
+
prepared_data += '/' + 'B'
|
57
|
+
when '#'.bytes.to_a[0]
|
58
|
+
prepared_data += '/' + 'C'
|
59
|
+
when '$'.bytes.to_a[0]
|
60
|
+
prepared_data += '/' + 'D'
|
61
|
+
when '%'.bytes.to_a[0]
|
62
|
+
prepared_data += '/' + 'E'
|
63
|
+
when '&'.bytes.to_a[0]
|
64
|
+
prepared_data += '/' + 'F'
|
65
|
+
when '\''.bytes.to_a[0]
|
66
|
+
prepared_data += '/' + 'G'
|
67
|
+
when '('.bytes.to_a[0]
|
68
|
+
prepared_data += '/' + 'H'
|
69
|
+
when ')'.bytes.to_a[0]
|
70
|
+
prepared_data += '/' + 'I'
|
71
|
+
when '*'.bytes.to_a[0]
|
72
|
+
prepared_data += '/' + 'J'
|
73
|
+
when '+'.bytes.to_a[0]
|
74
|
+
prepared_data += '/' + 'K'
|
75
|
+
when ','.bytes.to_a[0]
|
76
|
+
prepared_data += '/' + 'L'
|
77
|
+
when '/'.bytes.to_a[0]
|
78
|
+
prepared_data += '/' + 'O'
|
79
|
+
when ':'.bytes.to_a[0]
|
80
|
+
prepared_data += '/' + 'Z'
|
81
|
+
when ';'.bytes.to_a[0]
|
82
|
+
prepared_data += '%' + 'F'
|
83
|
+
when '<'.bytes.to_a[0]
|
84
|
+
prepared_data += '%' + 'G'
|
85
|
+
when '='.bytes.to_a[0]
|
86
|
+
prepared_data += '%' + 'H'
|
87
|
+
when '>'.bytes.to_a[0]
|
88
|
+
prepared_data += '%' + 'I'
|
89
|
+
when '?'.bytes.to_a[0]
|
90
|
+
prepared_data += '%' + 'J'
|
91
|
+
when '@'.bytes.to_a[0]
|
92
|
+
prepared_data += '%' + 'V'
|
93
|
+
when '['.bytes.to_a[0]
|
94
|
+
prepared_data += '%' + 'K'
|
95
|
+
when '\\'.bytes.to_a[0]
|
96
|
+
prepared_data += '%' + 'L'
|
97
|
+
when ']'.bytes.to_a[0]
|
98
|
+
prepared_data += '%' + 'M'
|
99
|
+
when '^'.bytes.to_a[0]
|
100
|
+
prepared_data += '%' + 'N'
|
101
|
+
when '_'.bytes.to_a[0]
|
102
|
+
prepared_data += '%' + '0'
|
103
|
+
when '`'.bytes.to_a[0]
|
104
|
+
prepared_data += '%' + 'W'
|
105
|
+
when 97..122
|
106
|
+
prepared_data += '+' + character.chr.upcase
|
107
|
+
when '{'.bytes.to_a[0]
|
108
|
+
prepared_data += '%' + 'P'
|
109
|
+
when '|'.bytes.to_a[0]
|
110
|
+
prepared_data += '%' + 'Q'
|
111
|
+
when '}'.bytes.to_a[0]
|
112
|
+
prepared_data += '%' + 'R'
|
113
|
+
when '~'.bytes.to_a[0]
|
114
|
+
prepared_data += '%' + 'S'
|
115
|
+
else
|
116
|
+
prepared_data += character.chr
|
117
|
+
end
|
101
118
|
end
|
119
|
+
|
120
|
+
return prepared_data
|
102
121
|
end
|
103
122
|
end
|
104
123
|
end
|
@@ -19,11 +19,11 @@ module Barcodes
|
|
19
19
|
@start_character + @data + @stop_character
|
20
20
|
end
|
21
21
|
|
22
|
-
# Start character + data + checksum + stop character
|
22
|
+
# Start character + prepared data + checksum + stop character
|
23
23
|
def formatted_data
|
24
24
|
checksum = self.checksum
|
25
25
|
unless checksum.nil?
|
26
|
-
@start_character +
|
26
|
+
@start_character + self._data + checksum + @stop_character
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -31,7 +31,7 @@ module Barcodes
|
|
31
31
|
def checksum
|
32
32
|
if valid?
|
33
33
|
sum = 0
|
34
|
-
self.
|
34
|
+
self._data.each_char do |char|
|
35
35
|
if ('0'..'9').include? char
|
36
36
|
sum += char.to_i
|
37
37
|
elsif ('A'..'Z').include? char
|
data/lib/barcodes/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barcodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
148
|
version: '0'
|
149
149
|
segments:
|
150
150
|
- 0
|
151
|
-
hash:
|
151
|
+
hash: 2449543112695884556
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
none: false
|
154
154
|
requirements:
|
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
157
|
version: '0'
|
158
158
|
segments:
|
159
159
|
- 0
|
160
|
-
hash:
|
160
|
+
hash: 2449543112695884556
|
161
161
|
requirements: []
|
162
162
|
rubyforge_project: barcodes
|
163
163
|
rubygems_version: 1.8.24
|