barby 0.4.3 → 0.4.4

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ * 0.4.4
2
+
3
+ * Use Gemfile for dependency management [Ken Collins]
4
+ * Move to MiniTest [Ken Collins]
5
+ * HTML outputter [Ken Collins]
6
+ * Various 1.9 fixes [Ken Collins, Dominique Ribaut]
7
+
1
8
  * 0.4.3
2
9
 
3
10
  * 2- and 5-digit UPC supplements
@@ -0,0 +1,88 @@
1
+ require 'barby/outputter'
2
+
3
+ module Barby
4
+
5
+ # Outputs an HTML representation of the barcode.
6
+ #
7
+ # Registers to_html
8
+ #
9
+ # Allowed options include.
10
+ # :width - Applied to parent element's style attribute. Default 100.
11
+ # :height - Applied to parent element's style attribute. Default 100.
12
+ # :css - Include Barby::HtmlOutputter.css in output's style tag. If you pass false
13
+ # you can include the output of Barby::HtmlOutputter.css in single place like
14
+ # your own stylesheet on once on the page. Default true.
15
+ # :parent_style - Include inline style for things like width and height on parent element.
16
+ # Useful if you want to style these attributes elsewhere globally. Default true.
17
+ class HtmlOutputter < Outputter
18
+
19
+ register :to_html
20
+
21
+ def self.css
22
+ <<-CSS
23
+ table.barby_code {
24
+ border: 0 none transparent !important;
25
+ border-collapse: collapse !important;
26
+ }
27
+ table.barby_code tr.barby_row {
28
+ border: 0 none transparent !important;
29
+ border-collapse: collapse !important;
30
+ margin: 0 !important;
31
+ padding: 0 !important;
32
+ }
33
+ table.barby_code tr.barby_row td { border: 0 none transparent !important; }
34
+ table.barby_code tr.barby_row td.barby_black { background-color: black !important; }
35
+ table.barby_code tr.barby_row td.barby_white { background-color: white !important; }
36
+ CSS
37
+ end
38
+
39
+ def to_html(options={})
40
+ default_options = {:width => 100, :height => 100, :css => true, :parent_style => :true}
41
+ options = default_options.merge(options)
42
+ elements = if barcode.two_dimensional?
43
+ booleans.map do |bools|
44
+ line_to_elements_row(bools, options)
45
+ end.join("\n")
46
+ else
47
+ line_to_elements_row(booleans, options)
48
+ end
49
+ html = %|<#{parent_element} class="barby_code" #{parent_style_attribute(options)}>\n#{elements}\n</#{parent_element}>|
50
+ options[:css] ? "<style>#{self.class.css}</style>\n#{html}" : html
51
+ end
52
+
53
+
54
+ private
55
+
56
+ def line_to_elements_row(bools, options)
57
+ elements = bools.map{ |b| b ? black_tag : white_tag }.join
58
+ Array(%|<#{row_element} class="barby_row">#{elements}</#{row_element}>|)
59
+ end
60
+
61
+ def black_tag
62
+ '<td class="barby_black"></td>'
63
+ end
64
+
65
+ def white_tag
66
+ '<td class="barby_white"></td>'
67
+ end
68
+
69
+ def row_element
70
+ 'tr'
71
+ end
72
+
73
+ def parent_element
74
+ 'table'
75
+ end
76
+
77
+ def parent_style_attribute(options)
78
+ return unless options[:parent_style]
79
+ s = ''
80
+ s << "width: #{options[:width]}px; " if options[:width]
81
+ s << "height: #{options[:height]}px; " if options[:height]
82
+ s.strip!
83
+ s.empty? ? nil : %|style="#{s}"|
84
+ end
85
+
86
+ end
87
+
88
+ end
@@ -2,7 +2,7 @@ module Barby #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barby
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 3
9
- version: 0.4.3
4
+ prerelease:
5
+ version: 0.4.4
10
6
  platform: ruby
11
7
  authors:
12
8
  - Tore Darell
@@ -14,8 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-05-10 00:00:00 +02:00
18
- default_executable:
13
+ date: 2011-08-13 00:00:00 Z
19
14
  dependencies: []
20
15
 
21
16
  description: Barby creates barcodes.
@@ -47,6 +42,7 @@ files:
47
42
  - lib/barby/barcode.rb
48
43
  - lib/barby/outputter/ascii_outputter.rb
49
44
  - lib/barby/outputter/cairo_outputter.rb
45
+ - lib/barby/outputter/html_outputter.rb
50
46
  - lib/barby/outputter/pdfwriter_outputter.rb
51
47
  - lib/barby/outputter/png_outputter.rb
52
48
  - lib/barby/outputter/prawn_outputter.rb
@@ -58,28 +54,7 @@ files:
58
54
  - lib/barby.rb
59
55
  - vendor/Pdf417lib-java-0.91/lib/Pdf417lib.jar
60
56
  - vendor/Pdf417lib-java-0.91/lib/Pdf417lib.java
61
- - vendor/rqrcode/CHANGELOG
62
- - vendor/rqrcode/COPYING
63
- - vendor/rqrcode/lib/rqrcode/core_ext/array/behavior.rb
64
- - vendor/rqrcode/lib/rqrcode/core_ext/array.rb
65
- - vendor/rqrcode/lib/rqrcode/core_ext/integer/bitwise.rb
66
- - vendor/rqrcode/lib/rqrcode/core_ext/integer.rb
67
- - vendor/rqrcode/lib/rqrcode/core_ext.rb
68
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_8bit_byte.rb
69
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_bit_buffer.rb
70
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_code.rb
71
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_math.rb
72
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_polynomial.rb
73
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_rs_block.rb
74
- - vendor/rqrcode/lib/rqrcode/qrcode/qr_util.rb
75
- - vendor/rqrcode/lib/rqrcode/qrcode.rb
76
- - vendor/rqrcode/lib/rqrcode.rb
77
- - vendor/rqrcode/Rakefile
78
- - vendor/rqrcode/README
79
- - vendor/rqrcode/test/runtest.rb
80
- - vendor/rqrcode/test/test_data.rb
81
57
  - bin/barby
82
- has_rdoc: true
83
58
  homepage: http://toretore.github.com/barby
84
59
  licenses: []
85
60
 
@@ -93,21 +68,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
68
  requirements:
94
69
  - - ">="
95
70
  - !ruby/object:Gem::Version
96
- segments:
97
- - 0
98
71
  version: "0"
99
72
  required_rubygems_version: !ruby/object:Gem::Requirement
100
73
  none: false
101
74
  requirements:
102
75
  - - ">="
103
76
  - !ruby/object:Gem::Version
104
- segments:
105
- - 0
106
77
  version: "0"
107
78
  requirements: []
108
79
 
109
80
  rubyforge_project: barby
110
- rubygems_version: 1.3.7
81
+ rubygems_version: 1.8.5
111
82
  signing_key:
112
83
  specification_version: 3
113
84
  summary: The Ruby barcode generator
@@ -1,34 +0,0 @@
1
- *0.3.3* (Feb 1st, 2011)
2
-
3
- * check to see if the level is valid
4
- * fix for 'rszf' bug by [Rob la Lau https://github.com/ohreally]
5
-
6
- *0.3.2* (Mar 15th, 2009)
7
-
8
- * Ruby 1.9 fixes by [Tore Darell http://tore.darell.no] [Chris Mowforth http://blog.99th.st]
9
-
10
- *0.3.1* (Nov 24th, 2008)
11
-
12
- * expanded RS block table to QRcode version 40 [Vladislav Gorodetskiy]
13
-
14
- *0.3.0* (Feb 28th, 2008)
15
-
16
- * added more documentation
17
- * changed to_console to to_s (what was I thinking)
18
- * add more tests
19
-
20
- *0.2.1* (Feb 24th, 2008)
21
-
22
- * small changes to rakefile and readme
23
- * small change to to_console method
24
- * make console_count method private (use modules.size instead)
25
- * slowy updating rdocs
26
-
27
- *0.2.0* (Feb 23rd, 2008)
28
-
29
- * Split files up [DR]
30
- * added rdoc comment ... more to do there
31
-
32
- *0.1.0* (Feb 22rd, 2008)
33
-
34
- * Initial Release [DR]
@@ -1,19 +0,0 @@
1
- Copyright (c) 2008 Duncan Robertson
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to
5
- deal in the Software without restriction, including without limitation the
6
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- sell copies of the Software, and to permit persons to whom the Software is
8
- furnished to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in
11
- all copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16
- THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
-
@@ -1,96 +0,0 @@
1
- == rQRCode, Encode QRCodes
2
-
3
- rQRCode is a library for encoding QR Codes in Ruby. It has a simple interface with all the standard qrcode options. It was adapted from the Javascript library by Kazuhiko Arase.
4
-
5
- == An Overview
6
-
7
- Let's clear up some rQRCode stuff.
8
-
9
- # rQRCode is a *standalone library*. It requires no other libraries. Just Ruby!
10
- # It is an encoding library. You can't decode QR codes with it.
11
- # The interface is simple and assumes you just want to encode a string into a QR code
12
- # QR code is trademarked by Denso Wave inc
13
-
14
- == Resources
15
-
16
- wikipedia:: http://en.wikipedia.org/wiki/QR_Code
17
- Denso-Wave website:: http://www.denso-wave.com/qrcode/index-e.html
18
- kaywa:: http://qrcode.kaywa.com
19
-
20
-
21
- == Installing
22
-
23
- You may get the latest stable version from Rubyforge.
24
-
25
- $ gem install rqrcode
26
-
27
- You can also get the source from http://github.com/whomwah/rqrcode/tree/master
28
-
29
- $ git clone git://github.com/whomwah/rqrcode.git
30
-
31
-
32
- === Loading rQRCode Itself
33
-
34
- You have installed the gem already, yeah?
35
-
36
- require 'rubygems'
37
- require 'rqrcode'
38
-
39
- === Simple QRCode generation to screen
40
-
41
- qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h )
42
- puts qr.to_s
43
- #
44
- # Prints:
45
- # xxxxxxx x x x x x xx xxxxxxx
46
- # x x xxx xxxxxx xxx x x
47
- # x xxx x xxxxx x xx x xxx x
48
- # ... etc
49
-
50
- === Simple QRCode generation to view (RubyOnRails)
51
-
52
- <b>Controller:</b>
53
- @qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h )
54
-
55
- <b>View: (minimal styling added)</b>
56
- <style type="text/css">
57
- table {
58
- border-width: 0;
59
- border-style: none;
60
- border-color: #0000ff;
61
- border-collapse: collapse;
62
- }
63
- td {
64
- border-width: 0;
65
- border-style: none;
66
- border-color: #0000ff;
67
- border-collapse: collapse;
68
- padding: 0;
69
- margin: 0;
70
- width: 10px;
71
- height: 10px;
72
- }
73
- td.black { background-color: #000; }
74
- td.white { background-color: #fff; }
75
- </style>
76
-
77
- <table>
78
- <% @qr.modules.each_index do |x| %>
79
- <tr>
80
- <% @qr.modules.each_index do |y| %>
81
- <% if @qr.is_dark(x,y) %>
82
- <td class="black"/>
83
- <% else %>
84
- <td class="white"/>
85
- <% end %>
86
- <% end %>
87
- </tr>
88
- <% end %>
89
- </table>
90
-
91
- == Contact
92
-
93
- Author:: Duncan Robertson
94
- Email:: duncan@whomwah.com
95
- Home Page:: http://whomwah.com
96
- License:: MIT Licence (http://www.opensource.org/licenses/mit-license.html)
@@ -1,63 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'rake/clean'
4
- require 'rake/gempackagetask'
5
- require 'rake/rdoctask'
6
- require 'rake/testtask'
7
-
8
- NAME = "rqrcode"
9
- VERS = "0.3.3"
10
- CLEAN.include ['pkg', 'rdoc']
11
-
12
- spec = Gem::Specification.new do |s|
13
- s.name = NAME
14
- s.version = VERS
15
- s.author = "Duncan Robertson"
16
- s.email = "duncan@whomwah.com"
17
- s.homepage = "http://whomwah.github.com/rqrcode/"
18
- s.platform = Gem::Platform::RUBY
19
- s.summary = "A library to encode QR Codes"
20
- s.rubyforge_project = NAME
21
- s.description = <<EOF
22
- rQRCode is a library for encoding QR Codes. The simple
23
- interface allows you to create QR Code data structures
24
- ready to be displayed in the way you choose.
25
- EOF
26
- s.files = FileList["lib/**/*", "test/*"].exclude("rdoc").to_a
27
- s.require_path = "lib"
28
- s.has_rdoc = true
29
- s.extra_rdoc_files = ["README", "CHANGELOG", "COPYING"]
30
- s.test_file = "test/runtest.rb"
31
- end
32
-
33
- task :build_package => [:repackage]
34
- Rake::GemPackageTask.new(spec) do |pkg|
35
- #pkg.need_zip = true
36
- #pkg.need_tar = true
37
- pkg.gem_spec = spec
38
- end
39
-
40
- desc "Default: run unit tests."
41
- task :default => :test
42
-
43
- desc "Run all the tests"
44
- Rake::TestTask.new(:test) do |t|
45
- t.libs << "lib"
46
- t.pattern = "test/runtest.rb"
47
- t.verbose = true
48
- end
49
-
50
- desc "Generate documentation for the library"
51
- Rake::RDocTask.new("rdoc") { |rdoc|
52
- rdoc.rdoc_dir = 'rdoc'
53
- rdoc.title = "rQRCode Documentation"
54
- rdoc.template = "~/bin/jamis.rb"
55
- rdoc.options << '--line-numbers' << '--inline-source'
56
- rdoc.main = "README"
57
- rdoc.rdoc_files.include("README", "CHANGELOG", "COPYING", 'lib/**/*.rb')
58
- }
59
-
60
- desc "rdoc to rubyforge"
61
- task :rubyforge => [:rdoc] do
62
- sh %{/usr/bin/scp -r -p rdoc/* rubyforge:/var/www/gforge-projects/rqrcode}
63
- end
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #--
4
- # Copyright 2008 by Duncan Robertson (duncan@whomwah.com).
5
- # All rights reserved.
6
-
7
- # Permission is granted for use, copying, modification, distribution,
8
- # and distribution of modified versions of this work as long as the
9
- # above copyright notice is included.
10
- #++
11
-
12
- require "rqrcode/core_ext"
13
- require "rqrcode/qrcode"
@@ -1,5 +0,0 @@
1
- Dir[File.dirname(__FILE__) + "/core_ext/*.rb"].sort.each do |path|
2
- filename = File.basename(path)
3
- require "rqrcode/core_ext/#{filename}"
4
- end
5
-
@@ -1,5 +0,0 @@
1
- require 'rqrcode/core_ext/array/behavior'
2
-
3
- class Array #:nodoc:
4
- include CoreExtensions::Array::Behavior
5
- end
@@ -1,9 +0,0 @@
1
- module CoreExtensions #:nodoc:
2
- module Array #:nodoc:
3
- module Behavior
4
- def extract_options!
5
- last.is_a?(::Hash) ? pop : {}
6
- end
7
- end
8
- end
9
- end