barcodes 0.0.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.
Files changed (68) hide show
  1. data/.gitignore +5 -0
  2. data/.rspec +2 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +22 -0
  6. data/README.md +107 -0
  7. data/Rakefile +11 -0
  8. data/barcodes.gemspec +24 -0
  9. data/bin/barcodes +6 -0
  10. data/lib/barcodes.rb +63 -0
  11. data/lib/barcodes/exec.rb +74 -0
  12. data/lib/barcodes/renderer.rb +9 -0
  13. data/lib/barcodes/renderer/ascii.rb +199 -0
  14. data/lib/barcodes/renderer/pdf.rb +257 -0
  15. data/lib/barcodes/symbology.rb +47 -0
  16. data/lib/barcodes/symbology/base.rb +103 -0
  17. data/lib/barcodes/symbology/codabar.rb +36 -0
  18. data/lib/barcodes/symbology/code11.rb +74 -0
  19. data/lib/barcodes/symbology/code128.rb +317 -0
  20. data/lib/barcodes/symbology/code39.rb +48 -0
  21. data/lib/barcodes/symbology/code39extended.rb +93 -0
  22. data/lib/barcodes/symbology/code39extendedmod43.rb +73 -0
  23. data/lib/barcodes/symbology/code39mod43.rb +73 -0
  24. data/lib/barcodes/symbology/code93.rb +142 -0
  25. data/lib/barcodes/symbology/code93extended.rb +116 -0
  26. data/lib/barcodes/symbology/ean.rb +149 -0
  27. data/lib/barcodes/symbology/ean13.rb +27 -0
  28. data/lib/barcodes/symbology/ean8.rb +50 -0
  29. data/lib/barcodes/symbology/interleaved2of5.rb +30 -0
  30. data/lib/barcodes/symbology/interleaved2of5mod10.rb +40 -0
  31. data/lib/barcodes/symbology/msi.rb +30 -0
  32. data/lib/barcodes/symbology/msimod10.rb +50 -0
  33. data/lib/barcodes/symbology/msimod11.rb +37 -0
  34. data/lib/barcodes/symbology/planet.rb +83 -0
  35. data/lib/barcodes/symbology/postnet.rb +83 -0
  36. data/lib/barcodes/symbology/standard2of5.rb +30 -0
  37. data/lib/barcodes/symbology/standard2of5mod10.rb +40 -0
  38. data/lib/barcodes/symbology/upca.rb +27 -0
  39. data/lib/barcodes/version.rb +3 -0
  40. data/spec/barcodes/exec_spec.rb +14 -0
  41. data/spec/barcodes/renderer/ascii_spec.rb +12 -0
  42. data/spec/barcodes/renderer/pdf_spec.rb +12 -0
  43. data/spec/barcodes/symbology/base_spec.rb +8 -0
  44. data/spec/barcodes/symbology/codabar_spec.rb +8 -0
  45. data/spec/barcodes/symbology/code11_spec.rb +8 -0
  46. data/spec/barcodes/symbology/code128_spec.rb +8 -0
  47. data/spec/barcodes/symbology/code39_spec.rb +8 -0
  48. data/spec/barcodes/symbology/code39extended_spec.rb +8 -0
  49. data/spec/barcodes/symbology/code39extendedmod43_spec.rb +8 -0
  50. data/spec/barcodes/symbology/code39mod43_spec.rb +8 -0
  51. data/spec/barcodes/symbology/code93_spec.rb +8 -0
  52. data/spec/barcodes/symbology/code93extended_spec.rb +8 -0
  53. data/spec/barcodes/symbology/ean13_spec.rb +8 -0
  54. data/spec/barcodes/symbology/ean8_spec.rb +8 -0
  55. data/spec/barcodes/symbology/ean_spec.rb +8 -0
  56. data/spec/barcodes/symbology/interleaved2of5_spec.rb +8 -0
  57. data/spec/barcodes/symbology/interleaved2of5mod10_spec.rb +8 -0
  58. data/spec/barcodes/symbology/msi_spec.rb +8 -0
  59. data/spec/barcodes/symbology/msimod10_spec.rb +8 -0
  60. data/spec/barcodes/symbology/msimod11_spec.rb +8 -0
  61. data/spec/barcodes/symbology/planet_spec.rb +8 -0
  62. data/spec/barcodes/symbology/postnet_spec.rb +8 -0
  63. data/spec/barcodes/symbology/standard2of5_spec.rb +8 -0
  64. data/spec/barcodes/symbology/standard2of5mod10_spec.rb +8 -0
  65. data/spec/barcodes/symbology/upca_spec.rb +8 -0
  66. data/spec/barcodes_spec.rb +27 -0
  67. data/spec/spec_helper.rb +17 -0
  68. metadata +174 -0
@@ -0,0 +1,40 @@
1
+ require 'barcodes/symbology/standard2of5'
2
+
3
+ module Barcodes
4
+ module Symbology
5
+ class Standard2Of5Mod10 < Standard2Of5
6
+ def formatted_data
7
+ checksum = self.checksum
8
+ unless checksum.nil?
9
+ @start_character + @data + checksum + @stop_character
10
+ end
11
+ end
12
+
13
+ def checksum
14
+ even_sum = 0
15
+ odd_sum = 0
16
+ index = 0
17
+ @data.reverse.each_char do |char|
18
+ if ('0'..'9').include? char
19
+ if index.even?
20
+ even_sum += char.to_i * 3
21
+ else
22
+ odd_sum += char.to_i
23
+ end
24
+ end
25
+ index += 1
26
+ end
27
+ sum = even_sum + odd_sum
28
+
29
+ value = 10 - (sum % 10)
30
+ if value == 10
31
+ value = 0
32
+ end
33
+
34
+ if (0..9).include? value
35
+ return value.to_s
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,27 @@
1
+ require 'barcodes/symbology/ean'
2
+
3
+ module Barcodes
4
+ module Symbology
5
+ class UpcA < Ean
6
+ def initialize(args={})
7
+ unless args.has_key? :data
8
+ args[:data] = '01234567899'
9
+ end
10
+
11
+ super(args)
12
+ end
13
+
14
+ def formatted_data
15
+ @start_character + '0' + @data[0..5] + @center_character + @data[6..10] + self.checksum + @stop_character
16
+ end
17
+
18
+ def valid?
19
+ unless super
20
+ return false
21
+ end
22
+
23
+ return self.data.length == 11 ? true : false
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module Barcodes
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/exec'
3
+
4
+ describe Barcodes::Exec do
5
+ describe "#new" do
6
+ it "should accept command line arguments and return a new Barcodes::Exec class" do
7
+
8
+ end
9
+ end
10
+
11
+ describe "#run" do
12
+
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/renderer/ascii'
3
+
4
+ describe Barcodes::Renderer::Ascii do
5
+ describe "#new" do
6
+
7
+ end
8
+
9
+ describe "#render" do
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/renderer/pdf'
3
+
4
+ describe Barcodes::Renderer::Pdf do
5
+ describe "#new" do
6
+
7
+ end
8
+
9
+ describe "#render" do
10
+
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/base'
3
+
4
+ describe Barcodes::Symbology::Base do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/codabar'
3
+
4
+ describe Barcodes::Symbology::Codabar do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code11'
3
+
4
+ describe Barcodes::Symbology::Code11 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code128'
3
+
4
+ describe Barcodes::Symbology::Code128 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code39'
3
+
4
+ describe Barcodes::Symbology::Code39 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code39extended'
3
+
4
+ describe Barcodes::Symbology::Code39Extended do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code39extendedmod43'
3
+
4
+ describe Barcodes::Symbology::Code39ExtendedMod43 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code39mod43'
3
+
4
+ describe Barcodes::Symbology::Code39Mod43 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code93'
3
+
4
+ describe Barcodes::Symbology::Code93 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/code93extended'
3
+
4
+ describe Barcodes::Symbology::Code93Extended do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/ean13'
3
+
4
+ describe Barcodes::Symbology::Ean13 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/ean8'
3
+
4
+ describe Barcodes::Symbology::Ean8 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/ean'
3
+
4
+ describe Barcodes::Symbology::Ean do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/interleaved2of5'
3
+
4
+ describe Barcodes::Symbology::Interleaved2Of5 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/interleaved2of5mod10'
3
+
4
+ describe Barcodes::Symbology::Interleaved2Of5Mod10 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/msi'
3
+
4
+ describe Barcodes::Symbology::Msi do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/msimod10'
3
+
4
+ describe Barcodes::Symbology::MsiMod10 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/msimod11'
3
+
4
+ describe Barcodes::Symbology::MsiMod11 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/planet'
3
+
4
+ describe Barcodes::Symbology::Planet do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/postnet'
3
+
4
+ describe Barcodes::Symbology::Postnet do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/standard2of5'
3
+
4
+ describe Barcodes::Symbology::Standard2Of5 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/standard2of5mod10'
3
+
4
+ describe Barcodes::Symbology::Standard2Of5Mod10 do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'barcodes/symbology/upca'
3
+
4
+ describe Barcodes::Symbology::UpcA do
5
+ describe "#new" do
6
+
7
+ end
8
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'barcodes'
3
+
4
+ describe Barcodes do
5
+ describe "#create" do
6
+ it "takes a symbology name and options and return an concrete barcode class" do
7
+ Barcodes.create('Codabar', {}).should be_a_kind_of Barcodes::Symbology::Base
8
+ Barcodes.create('Codabar', {}).should be_an_instance_of Barcodes::Symbology::Codabar
9
+ end
10
+
11
+ it "should throw an error if an unknown symbology is given" do
12
+ lambda { Barcodes.create('Codabar') }.should_not raise_error(ArgumentError)
13
+ lambda { Barcodes.create('Bad Symbology Name') }.should raise_error(ArgumentError)
14
+ end
15
+ end
16
+
17
+ describe "#render" do
18
+ it "should create and render a barcode with given symbology name and output string" do
19
+ Barcodes.render('Codabar').should_not be_nil
20
+ Barcodes.render('Codabar').should be_an_instance_of String
21
+ end
22
+
23
+ it "should return nil with unknown renderer" do
24
+ Barcodes.render('Codabar', nil, {}, nil).should be_nil
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: barcodes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Aaron Wright
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &70266963040800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70266963040800
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70266963040380 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70266963040380
36
+ - !ruby/object:Gem::Dependency
37
+ name: prawn
38
+ requirement: &70266963039960 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70266963039960
47
+ description: Barcodes is a RubyGem for creating and rendering common barcode symbologies.
48
+ email:
49
+ - acwrightdesign@gmail.com
50
+ executables:
51
+ - barcodes
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - .gitignore
56
+ - .rspec
57
+ - .rvmrc
58
+ - Gemfile
59
+ - LICENSE
60
+ - README.md
61
+ - Rakefile
62
+ - barcodes.gemspec
63
+ - bin/barcodes
64
+ - lib/barcodes.rb
65
+ - lib/barcodes/exec.rb
66
+ - lib/barcodes/renderer.rb
67
+ - lib/barcodes/renderer/ascii.rb
68
+ - lib/barcodes/renderer/pdf.rb
69
+ - lib/barcodes/symbology.rb
70
+ - lib/barcodes/symbology/base.rb
71
+ - lib/barcodes/symbology/codabar.rb
72
+ - lib/barcodes/symbology/code11.rb
73
+ - lib/barcodes/symbology/code128.rb
74
+ - lib/barcodes/symbology/code39.rb
75
+ - lib/barcodes/symbology/code39extended.rb
76
+ - lib/barcodes/symbology/code39extendedmod43.rb
77
+ - lib/barcodes/symbology/code39mod43.rb
78
+ - lib/barcodes/symbology/code93.rb
79
+ - lib/barcodes/symbology/code93extended.rb
80
+ - lib/barcodes/symbology/ean.rb
81
+ - lib/barcodes/symbology/ean13.rb
82
+ - lib/barcodes/symbology/ean8.rb
83
+ - lib/barcodes/symbology/interleaved2of5.rb
84
+ - lib/barcodes/symbology/interleaved2of5mod10.rb
85
+ - lib/barcodes/symbology/msi.rb
86
+ - lib/barcodes/symbology/msimod10.rb
87
+ - lib/barcodes/symbology/msimod11.rb
88
+ - lib/barcodes/symbology/planet.rb
89
+ - lib/barcodes/symbology/postnet.rb
90
+ - lib/barcodes/symbology/standard2of5.rb
91
+ - lib/barcodes/symbology/standard2of5mod10.rb
92
+ - lib/barcodes/symbology/upca.rb
93
+ - lib/barcodes/version.rb
94
+ - spec/barcodes/exec_spec.rb
95
+ - spec/barcodes/renderer/ascii_spec.rb
96
+ - spec/barcodes/renderer/pdf_spec.rb
97
+ - spec/barcodes/symbology/base_spec.rb
98
+ - spec/barcodes/symbology/codabar_spec.rb
99
+ - spec/barcodes/symbology/code11_spec.rb
100
+ - spec/barcodes/symbology/code128_spec.rb
101
+ - spec/barcodes/symbology/code39_spec.rb
102
+ - spec/barcodes/symbology/code39extended_spec.rb
103
+ - spec/barcodes/symbology/code39extendedmod43_spec.rb
104
+ - spec/barcodes/symbology/code39mod43_spec.rb
105
+ - spec/barcodes/symbology/code93_spec.rb
106
+ - spec/barcodes/symbology/code93extended_spec.rb
107
+ - spec/barcodes/symbology/ean13_spec.rb
108
+ - spec/barcodes/symbology/ean8_spec.rb
109
+ - spec/barcodes/symbology/ean_spec.rb
110
+ - spec/barcodes/symbology/interleaved2of5_spec.rb
111
+ - spec/barcodes/symbology/interleaved2of5mod10_spec.rb
112
+ - spec/barcodes/symbology/msi_spec.rb
113
+ - spec/barcodes/symbology/msimod10_spec.rb
114
+ - spec/barcodes/symbology/msimod11_spec.rb
115
+ - spec/barcodes/symbology/planet_spec.rb
116
+ - spec/barcodes/symbology/postnet_spec.rb
117
+ - spec/barcodes/symbology/standard2of5_spec.rb
118
+ - spec/barcodes/symbology/standard2of5mod10_spec.rb
119
+ - spec/barcodes/symbology/upca_spec.rb
120
+ - spec/barcodes_spec.rb
121
+ - spec/spec_helper.rb
122
+ homepage: ''
123
+ licenses: []
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project: barcodes
142
+ rubygems_version: 1.8.16
143
+ signing_key:
144
+ specification_version: 3
145
+ summary: Barcode creation using Ruby!
146
+ test_files:
147
+ - spec/barcodes/exec_spec.rb
148
+ - spec/barcodes/renderer/ascii_spec.rb
149
+ - spec/barcodes/renderer/pdf_spec.rb
150
+ - spec/barcodes/symbology/base_spec.rb
151
+ - spec/barcodes/symbology/codabar_spec.rb
152
+ - spec/barcodes/symbology/code11_spec.rb
153
+ - spec/barcodes/symbology/code128_spec.rb
154
+ - spec/barcodes/symbology/code39_spec.rb
155
+ - spec/barcodes/symbology/code39extended_spec.rb
156
+ - spec/barcodes/symbology/code39extendedmod43_spec.rb
157
+ - spec/barcodes/symbology/code39mod43_spec.rb
158
+ - spec/barcodes/symbology/code93_spec.rb
159
+ - spec/barcodes/symbology/code93extended_spec.rb
160
+ - spec/barcodes/symbology/ean13_spec.rb
161
+ - spec/barcodes/symbology/ean8_spec.rb
162
+ - spec/barcodes/symbology/ean_spec.rb
163
+ - spec/barcodes/symbology/interleaved2of5_spec.rb
164
+ - spec/barcodes/symbology/interleaved2of5mod10_spec.rb
165
+ - spec/barcodes/symbology/msi_spec.rb
166
+ - spec/barcodes/symbology/msimod10_spec.rb
167
+ - spec/barcodes/symbology/msimod11_spec.rb
168
+ - spec/barcodes/symbology/planet_spec.rb
169
+ - spec/barcodes/symbology/postnet_spec.rb
170
+ - spec/barcodes/symbology/standard2of5_spec.rb
171
+ - spec/barcodes/symbology/standard2of5mod10_spec.rb
172
+ - spec/barcodes/symbology/upca_spec.rb
173
+ - spec/barcodes_spec.rb
174
+ - spec/spec_helper.rb