barby 0.6.4 → 0.6.5

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: c3ef6b7305d1618b7f76f9b6cc9e8a0857f2aa85
4
- data.tar.gz: 531f6a94ab74935d1792e722725c83587c930ade
3
+ metadata.gz: bf63b4cabe71e145f367917c72ddd3a87b44655d
4
+ data.tar.gz: 978466b7b734651b5f9362b67136033bdcf572a7
5
5
  SHA512:
6
- metadata.gz: 0e61425386a0f576bac8e1deb0da5ed38b7a4834c50dbce8c63c1dad2f68e6bac2cbcc55af9bc14b3ad5d423dc8f5b1c4cc5907f393e42177289544278eda5ef
7
- data.tar.gz: 26a18619c3738f90a37026384c3b8703e91aa8692d052b0e24274ee98eff80788cffbc205a5b76b5ff56183d6c0f1964ab6316c512e6e95ad3ce9dbf30046a39
6
+ metadata.gz: 8152a2ea8b9b84264e904f5d50f61c6712fd238580041b5cc0852eacdce210b9e4d6a345ea753c3c4d58c62439d69ab7882006643caa31607eefedcc6226268d
7
+ data.tar.gz: 0b9e1005bc39a1ea0e8ecd6c57947be36f35e8d1a5529c48073f7d505bc82fa92a7ca1c67d987eb9f94507edd4f5b501cf58c4f994fd8339687fd1659f665404
@@ -405,6 +405,9 @@ module Barby
405
405
  LOWR_RE = /[a-z]/
406
406
  DGTS_RE = /\d{4,}/
407
407
 
408
+ # pairs of digits and FNC1 characters
409
+ CODEC_CHARS_RE = /(?:\d{2}|#{FNC1}){2,}/
410
+
408
411
  class << self
409
412
 
410
413
 
@@ -424,7 +427,7 @@ module Barby
424
427
  #shortest encoding possible
425
428
  def apply_shortest_encoding_for_data(data)
426
429
  extract_codec(data).map do |block|
427
- if possible_codec_segment?(block)
430
+ if codec_segment?(block)
428
431
  "#{CODEC}#{block}"
429
432
  else
430
433
  if control_before_lowercase?(block)
@@ -454,25 +457,15 @@ module Barby
454
457
  # # C A or B C A or B
455
458
  # extract_codec("12345abc678910DEF11") => ["1234", "5abc", "678910", "DEF11"]
456
459
  def extract_codec(data)
457
- segments = data.split(/(\d{4,})/).reject(&:empty?)
458
- segments.each_with_index do |s,i|
459
- if possible_codec_segment?(s) && s.size.odd?
460
- if i == 0
461
- if segments[1]
462
- segments[1].insert(0, s.slice!(-1))
463
- else
464
- segments[1] = s.slice!(-1)
465
- end
466
- else
467
- segments[i-1].insert(-1, s.slice!(0)) if segments[i-1]
468
- end
469
- end
470
- end
471
- segments
460
+ data.split(/
461
+ (^(?:#{CODEC_CHARS_RE})) # matches digits that appear at the beginning of the barcode
462
+ |
463
+ ((?:#{CODEC_CHARS_RE})(?!\d)) # matches digits that appear later in the barcode
464
+ /x).reject(&:empty?)
472
465
  end
473
466
 
474
- def possible_codec_segment?(data)
475
- data =~ /\A\d{4,}\Z/
467
+ def codec_segment?(data)
468
+ data =~ /\A#{CODEC_CHARS_RE}\Z/
476
469
  end
477
470
 
478
471
  def control_character?(char)
@@ -2,7 +2,7 @@ module Barby #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 6
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tore Darell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-14 00:00:00.000000000 Z
11
+ date: 2016-11-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Barby creates barcodes.
14
14
  email: toredarell@gmail.com