zbar 0.2.0 → 0.2.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.
- data/README.rdoc +20 -19
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/zbar.rb +1 -0
- data/lib/zbar/lib.rb +6 -5
- data/lib/zbar/library_version.rb +41 -0
- data/spec/zbar/library_version_spec.rb +40 -0
- data/spec/zbar_spec.rb +11 -0
- data/zbar.gemspec +4 -1
- metadata +6 -3
data/README.rdoc
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
= zbar
|
1
|
+
= zbar {<img src="https://travis-ci.org/willglynn/ruby-zbar.png?branch=travis" alt="Build Status" />}[https://travis-ci.org/willglynn/ruby-zbar]
|
2
2
|
by Will Glynn
|
3
3
|
|
4
4
|
http://github.com/willglynn/ruby-zbar
|
5
5
|
|
6
|
-
==
|
6
|
+
== Description:
|
7
7
|
|
8
8
|
Ruby bindings for ZBar, a barcode recognition library.
|
9
9
|
|
10
|
-
==
|
10
|
+
== Synopsis:
|
11
11
|
|
12
12
|
require 'zbar'
|
13
13
|
|
@@ -19,40 +19,41 @@ Ruby bindings for ZBar, a barcode recognition library.
|
|
19
19
|
@quality=15,
|
20
20
|
@symbology="EAN-13">]
|
21
21
|
|
22
|
-
==
|
22
|
+
== Download/install:
|
23
23
|
|
24
|
-
|
25
|
-
* ZBar, probably 0.10 or more
|
24
|
+
Add to your Gemfile:
|
26
25
|
|
27
|
-
|
26
|
+
gem "zbar"
|
28
27
|
|
29
|
-
|
28
|
+
Otherwise:
|
30
29
|
|
31
|
-
|
30
|
+
$ [sudo] gem install zbar
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
You'll also need the +zbar+ C library to make it work. This might be available from your package manager:
|
33
|
+
|
34
|
+
$ sudo apt-get install libzbar0 # on Debian or Ubuntu
|
35
|
+
$ sudo emerge zbar # on Gentoo
|
36
|
+
$ brew install zbar # on Mac OS X with Homebrew
|
36
37
|
|
37
|
-
|
38
|
-
cd ruby-zbar
|
39
|
-
rake install
|
38
|
+
Alternately, install from source at http://zbar.sf.net/.
|
40
39
|
|
41
|
-
==
|
40
|
+
== Limitations:
|
42
41
|
|
43
42
|
Doesn't expose all ZBar functionality, including:
|
44
43
|
* No video functions
|
45
44
|
* No low-level interfaces (scanner, decoder)
|
46
45
|
|
47
|
-
|
46
|
+
Additionally, there is a zbar <= 0.10 issue with JPEG decoding; see {lib/zbar/jpeg.rb}[https://github.com/willglynn/ruby-zbar/blob/master/lib/zbar/jpeg.rb] for more. You can check your ZBar::JPEG.bugged? status if you're curious. Otherwise, just try using it, and see if you get a warning on stderr.
|
47
|
+
|
48
|
+
== Contributing
|
48
49
|
|
49
50
|
* Fork the project.
|
50
51
|
* Make your feature addition or bug fix.
|
51
52
|
* Add tests for it. This is important so I don't break it in a
|
52
53
|
future version unintentionally.
|
53
|
-
* Commit
|
54
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
54
|
+
* Commit. Don't change +VERSION+, or if you do, do it in a separate commit.
|
55
55
|
* Send me a pull request. Bonus points for topic branches.
|
56
|
+
* Watch the Travis-CI build status on your pull request. Fix any problems.
|
56
57
|
|
57
58
|
== Copyright
|
58
59
|
|
data/Rakefile
CHANGED
@@ -19,6 +19,7 @@ Jeweler::Tasks.new do |gem|
|
|
19
19
|
gem.email = "will@willglynn.com"
|
20
20
|
gem.homepage = "http://github.com/delta407/ruby-zbar"
|
21
21
|
gem.authors = ["Will Glynn"]
|
22
|
+
gem.post_install_message = "\nzbar: This gem depends on the \"zbar\" C library.\n If it's not installed, `require \"zbar\"` will fail.\n\n"
|
22
23
|
# dependencies defined in Gemfile
|
23
24
|
end
|
24
25
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/zbar.rb
CHANGED
data/lib/zbar/lib.rb
CHANGED
@@ -11,7 +11,7 @@ module ZBar
|
|
11
11
|
rescue LoadError => le
|
12
12
|
raise LoadError, [
|
13
13
|
"Didn't find libzbar on your system",
|
14
|
-
"Please install zbar (http://zbar.sourceforge.net/) or ZBAR_LIB if it's in a weird place",
|
14
|
+
"Please install zbar (http://zbar.sourceforge.net/) or set ZBAR_LIB if it's in a weird place",
|
15
15
|
"FFI::Library::ffi_lib() failed with error: #{le}"
|
16
16
|
].join("\n")
|
17
17
|
end
|
@@ -24,7 +24,7 @@ module ZBar
|
|
24
24
|
attach_function :zbar_symbol_get_loc_x, [:pointer, :uint], :int
|
25
25
|
attach_function :zbar_symbol_get_loc_y, [:pointer, :uint], :int
|
26
26
|
attach_function :zbar_symbol_next, [:pointer], :pointer
|
27
|
-
|
27
|
+
|
28
28
|
attach_function :zbar_image_create, [], :pointer
|
29
29
|
attach_function :zbar_image_destroy, [:pointer], :void
|
30
30
|
attach_function :zbar_image_first_symbol, [:pointer], :pointer
|
@@ -34,16 +34,17 @@ module ZBar
|
|
34
34
|
attach_function :zbar_image_get_height, [:pointer], :int
|
35
35
|
attach_function :zbar_image_set_size, [:pointer, :uint, :uint], :void
|
36
36
|
attach_function :zbar_image_set_data, [:pointer, :buffer_in, :uint, :pointer], :void
|
37
|
-
|
37
|
+
|
38
38
|
attach_function :zbar_processor_create, [:int], :pointer
|
39
39
|
attach_function :zbar_processor_destroy, [:pointer], :void
|
40
40
|
attach_function :zbar_processor_init, [:pointer, :string, :int], :int
|
41
41
|
attach_function :zbar_processor_set_config, [:pointer, :int, :int, :int], :int
|
42
42
|
|
43
43
|
attach_function :zbar_process_image, [:pointer, :pointer], :int
|
44
|
-
|
44
|
+
|
45
45
|
attach_function :zbar_parse_config, [:string, :pointer, :pointer, :pointer], :int
|
46
|
-
|
46
|
+
|
47
|
+
attach_function :zbar_version, [:pointer, :pointer], :int
|
47
48
|
attach_function :zbar_set_verbosity, [:int], :void
|
48
49
|
attach_function :zbar_get_symbol_name, [:int], :string
|
49
50
|
attach_function :zbar_get_addon_name, [:int], :string
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module ZBar
|
2
|
+
# Returns a ZBar::LibraryVersion representing the currently loaded library.
|
3
|
+
def self.library_version
|
4
|
+
@library_version ||= begin
|
5
|
+
major = FFI::MemoryPointer.new :uint
|
6
|
+
minor = FFI::MemoryPointer.new :uint
|
7
|
+
rv = zbar_version(major, minor)
|
8
|
+
if rv == 0
|
9
|
+
LibraryVersion.new(major.read_uint, minor.read_uint)
|
10
|
+
else
|
11
|
+
raise "zbar_version failed, returning #{rv}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Represents a version of the ZBar library, e.g. as returned by
|
17
|
+
# ZBar.library_version.
|
18
|
+
class LibraryVersion
|
19
|
+
def initialize(major, minor) #:nodoc:
|
20
|
+
@major, @minor = major, minor
|
21
|
+
end
|
22
|
+
|
23
|
+
# Major version number
|
24
|
+
attr_reader :major
|
25
|
+
|
26
|
+
# Minor version number
|
27
|
+
attr_reader :minor
|
28
|
+
|
29
|
+
# Compare this version to another LibraryVersion
|
30
|
+
def <=>(other)
|
31
|
+
[major, minor] <=> [other.major, other.minor]
|
32
|
+
end
|
33
|
+
|
34
|
+
include Comparable
|
35
|
+
|
36
|
+
# Format the library version as a string
|
37
|
+
def to_s
|
38
|
+
"#{major}.#{minor}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe ZBar::LibraryVersion do
|
4
|
+
let(:major) { 10 }
|
5
|
+
let(:minor) { 99 }
|
6
|
+
let(:library_version) { described_class.new(major, minor) }
|
7
|
+
subject { library_version }
|
8
|
+
|
9
|
+
its(:major) { should be_kind_of Fixnum }
|
10
|
+
its(:minor) { should be_kind_of Fixnum }
|
11
|
+
|
12
|
+
describe "to_s" do
|
13
|
+
subject { library_version.to_s }
|
14
|
+
it { should be_kind_of String }
|
15
|
+
it "is formatted as major.minor" do
|
16
|
+
should == "#{major}.#{minor}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "comparisons" do
|
21
|
+
let(:bigger_major) { described_class.new(major + 1, minor)}
|
22
|
+
let(:bigger_minor) { described_class.new(major, minor + 1)}
|
23
|
+
let(:equal) { described_class.new(major, minor)}
|
24
|
+
|
25
|
+
it { should be_kind_of Comparable }
|
26
|
+
|
27
|
+
it "compares minors" do
|
28
|
+
library_version.should < bigger_minor
|
29
|
+
bigger_minor.should > library_version
|
30
|
+
end
|
31
|
+
it "compares majors" do
|
32
|
+
library_version.should < bigger_major
|
33
|
+
bigger_major.should > library_version
|
34
|
+
end
|
35
|
+
it "compares equally" do
|
36
|
+
library_version.should == equal
|
37
|
+
equal.should == library_version
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/spec/zbar_spec.rb
CHANGED
@@ -2,4 +2,15 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe ZBar do
|
4
4
|
it { should be_kind_of Module }
|
5
|
+
|
6
|
+
describe "library_version" do
|
7
|
+
it "calls zbar_version(uint*, uint*)" do
|
8
|
+
ZBar.should_receive(:zbar_version).with(anything, anything).and_return(0)
|
9
|
+
ZBar.library_version
|
10
|
+
end
|
11
|
+
|
12
|
+
it "returns LibraryVersion" do
|
13
|
+
ZBar.library_version.should be_kind_of ZBar::LibraryVersion
|
14
|
+
end
|
15
|
+
end
|
5
16
|
end
|
data/zbar.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "zbar"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Will Glynn"]
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/zbar/image.rb",
|
30
30
|
"lib/zbar/jpeg.rb",
|
31
31
|
"lib/zbar/lib.rb",
|
32
|
+
"lib/zbar/library_version.rb",
|
32
33
|
"lib/zbar/processor.rb",
|
33
34
|
"lib/zbar/symbol.rb",
|
34
35
|
"spec/spec_helper.rb",
|
@@ -36,11 +37,13 @@ Gem::Specification.new do |s|
|
|
36
37
|
"spec/support/test.jpg",
|
37
38
|
"spec/support/test.pgm",
|
38
39
|
"spec/zbar/image_spec.rb",
|
40
|
+
"spec/zbar/library_version_spec.rb",
|
39
41
|
"spec/zbar/processor_spec.rb",
|
40
42
|
"spec/zbar_spec.rb",
|
41
43
|
"zbar.gemspec"
|
42
44
|
]
|
43
45
|
s.homepage = "http://github.com/delta407/ruby-zbar"
|
46
|
+
s.post_install_message = "\nzbar: This gem depends on the \"zbar\" C library.\n If it's not installed, `require \"zbar\"` will fail.\n\n"
|
44
47
|
s.require_paths = ["lib"]
|
45
48
|
s.rubygems_version = "1.8.25"
|
46
49
|
s.summary = "Ruby bindings for ZBar, a barcode recognition library"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/zbar/image.rb
|
129
129
|
- lib/zbar/jpeg.rb
|
130
130
|
- lib/zbar/lib.rb
|
131
|
+
- lib/zbar/library_version.rb
|
131
132
|
- lib/zbar/processor.rb
|
132
133
|
- lib/zbar/symbol.rb
|
133
134
|
- spec/spec_helper.rb
|
@@ -135,12 +136,14 @@ files:
|
|
135
136
|
- spec/support/test.jpg
|
136
137
|
- spec/support/test.pgm
|
137
138
|
- spec/zbar/image_spec.rb
|
139
|
+
- spec/zbar/library_version_spec.rb
|
138
140
|
- spec/zbar/processor_spec.rb
|
139
141
|
- spec/zbar_spec.rb
|
140
142
|
- zbar.gemspec
|
141
143
|
homepage: http://github.com/delta407/ruby-zbar
|
142
144
|
licenses: []
|
143
|
-
post_install_message:
|
145
|
+
post_install_message: ! "\nzbar: This gem depends on the \"zbar\" C library.\n If
|
146
|
+
it's not installed, `require \"zbar\"` will fail.\n\n"
|
144
147
|
rdoc_options: []
|
145
148
|
require_paths:
|
146
149
|
- lib
|
@@ -152,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
155
|
version: '0'
|
153
156
|
segments:
|
154
157
|
- 0
|
155
|
-
hash:
|
158
|
+
hash: 481266142629962502
|
156
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
160
|
none: false
|
158
161
|
requirements:
|