rtesseract 1.2.5 → 1.2.6
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.
- checksums.yaml +4 -4
- data/README.rdoc +6 -1
- data/VERSION +1 -1
- data/lib/processors/mini_magick.rb +5 -1
- data/lib/processors/none.rb +26 -0
- data/lib/processors/quick_magick.rb +1 -0
- data/lib/processors/rmagick.rb +1 -0
- data/lib/rtesseract.rb +3 -0
- data/rtesseract.gemspec +4 -3
- data/spec/images/mixed.tif +0 -0
- data/spec/images/test.bmp +0 -0
- data/spec/images/test.jpg +0 -0
- data/spec/images/test.tif +0 -0
- data/spec/rtesseract_mixed_spec.rb +8 -8
- data/spec/rtesseract_spec.rb +51 -42
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d411f0cb8348c4bd1d39d03edac5aa57023275f1
|
4
|
+
data.tar.gz: 5707dea49f6e560ae5785033cabbc489764acba8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ef2bc81e31136ae67a6280510d191633f9c0787726d1b8b697f46ae5a0201fa2248d1c51afb5f7e8f418f7d554a767d8a3c4edc212ed90498cb08005b347adf
|
7
|
+
data.tar.gz: ead5acd868fc9925e4d7de70e3d576eb02aa18dd69f653f38e06f021f7ebcc08596970894d43f835954a2efe974e2dd808a49ad2be1b531c5dbea0b962307107
|
data/README.rdoc
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
{<img src="https://travis-ci.org/dannnylo/rtesseract.png?branch=master" alt="Build Status" />}[https://travis-ci.org/dannnylo/rtesseract]
|
4
4
|
{<img src="https://coveralls.io/repos/dannnylo/rtesseract/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/dannnylo/rtesseract?branch=master]
|
5
5
|
{<img src="https://codeclimate.com/github/dannnylo/rtesseract.png" />}[https://codeclimate.com/github/dannnylo/rtesseract]
|
6
|
-
|
6
|
+
|
7
7
|
|
8
8
|
Ruby library for working with the Tesseract OCR.
|
9
9
|
|
@@ -64,6 +64,11 @@ It's very simple to use rtesseract:
|
|
64
64
|
Processors Options (_Rmagick_ is default)
|
65
65
|
|
66
66
|
RTesseract.new("test.jpg", :processor => "mini_magick")
|
67
|
+
RTesseract.new("test.jpg", :processor => "quick_magick")
|
68
|
+
|
69
|
+
Note: For non process the image use NoneProcessor
|
70
|
+
|
71
|
+
RTesseract.new("test.jpg", :processor => "none")
|
67
72
|
|
68
73
|
Language Options
|
69
74
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.6
|
@@ -12,8 +12,12 @@ module MiniMagickProcessor
|
|
12
12
|
def self.image_to_tif(source, x = nil, y = nil, w = nil, h = nil)
|
13
13
|
tmp_file = Tempfile.new(['', '.tif'])
|
14
14
|
cat = source.is_a?(Pathname) ? read_with_processor(source.to_s) : source
|
15
|
-
cat.format('tif') { |c|
|
15
|
+
cat.format('tif') { |c|
|
16
|
+
c.compress 'None'
|
17
|
+
c.alpha 'off'
|
18
|
+
}
|
16
19
|
cat.crop("#{w}x#{h}+#{x}+#{y}") unless [x, y, w, h].compact == []
|
20
|
+
cat.alpha 'off'
|
17
21
|
cat.write tmp_file.path.to_s
|
18
22
|
tmp_file
|
19
23
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# Add to rtesseract a image without manipulation
|
3
|
+
module NoneProcessor
|
4
|
+
def self.setup
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.a_name?(name)
|
8
|
+
%w(none NoneProcessor).include?(name.to_s)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.image_to_tif(source, x = nil, y = nil, w = nil, h = nil)
|
12
|
+
tmp_file = Tempfile.new(['', '.tif'])
|
13
|
+
tmp_file.write(self.read_with_processor(source))
|
14
|
+
tmp_file
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.need_crop?(x = nil, y = nil, w = nil, h = nil)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.read_with_processor(path)
|
21
|
+
File.read(path)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.image?(object)
|
25
|
+
end
|
26
|
+
end
|
@@ -14,6 +14,7 @@ module QuickMagickProcessor
|
|
14
14
|
cat = source.is_a?(Pathname) ? read_with_processor(source.to_s) : source
|
15
15
|
cat.compress = 'None'
|
16
16
|
cat.format = 'tif'
|
17
|
+
cat.alpha = "off"
|
17
18
|
cat.crop("#{w}x#{h}+#{x}+#{y}") if need_crop?( x, y, w, h)
|
18
19
|
cat.write tmp_file.path.to_s
|
19
20
|
tmp_file
|
data/lib/processors/rmagick.rb
CHANGED
@@ -13,6 +13,7 @@ module RMagickProcessor
|
|
13
13
|
tmp_file = Tempfile.new(['', '.tif'])
|
14
14
|
cat = source.is_a?(Pathname) ? read_with_processor(source.to_s) : source
|
15
15
|
cat.crop!(x, y, w, h) unless [x, y, w, h].compact == []
|
16
|
+
cat.alpha Magick::DeactivateAlphaChannel
|
16
17
|
cat.write(tmp_file.path.to_s) { self.compression = Magick::NoCompression }
|
17
18
|
tmp_file
|
18
19
|
end
|
data/lib/rtesseract.rb
CHANGED
@@ -9,6 +9,7 @@ require 'rtesseract/mixed'
|
|
9
9
|
require 'processors/rmagick.rb'
|
10
10
|
require 'processors/mini_magick.rb'
|
11
11
|
require 'processors/quick_magick.rb'
|
12
|
+
require 'processors/none.rb'
|
12
13
|
|
13
14
|
# Ruby wrapper for Tesseract OCR
|
14
15
|
class RTesseract
|
@@ -199,6 +200,8 @@ class RTesseract
|
|
199
200
|
MiniMagickProcessor
|
200
201
|
elsif QuickMagickProcessor.a_name?(processor.to_s)
|
201
202
|
QuickMagickProcessor
|
203
|
+
elsif NoneProcessor.a_name?(processor.to_s)
|
204
|
+
NoneProcessor
|
202
205
|
else
|
203
206
|
RMagickProcessor
|
204
207
|
end
|
data/rtesseract.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: rtesseract 1.2.
|
5
|
+
# stub: rtesseract 1.2.6 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "rtesseract"
|
9
|
-
s.version = "1.2.
|
9
|
+
s.version = "1.2.6"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Danilo Jeremias da Silva"]
|
14
|
-
s.date = "2015-03-
|
14
|
+
s.date = "2015-03-13"
|
15
15
|
s.description = "Ruby library for working with the Tesseract OCR."
|
16
16
|
s.email = "dannnylo@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"Rakefile",
|
31
31
|
"VERSION",
|
32
32
|
"lib/processors/mini_magick.rb",
|
33
|
+
"lib/processors/none.rb",
|
33
34
|
"lib/processors/quick_magick.rb",
|
34
35
|
"lib/processors/rmagick.rb",
|
35
36
|
"lib/rtesseract.rb",
|
data/spec/images/mixed.tif
CHANGED
Binary file
|
data/spec/images/test.bmp
CHANGED
Binary file
|
data/spec/images/test.jpg
CHANGED
Binary file
|
data/spec/images/test.tif
CHANGED
Binary file
|
@@ -4,33 +4,33 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
4
4
|
describe "Rtesseract::Mixed" do
|
5
5
|
before do
|
6
6
|
@path = Pathname.new(__FILE__.gsub("rtesseract_mixed_spec.rb","")).expand_path
|
7
|
-
@
|
8
|
-
@
|
7
|
+
@image_tif = @path.join("images","mixed.tif").to_s
|
8
|
+
@image2_tif = @path.join("images","mixed2.tif").to_s
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should be instantiable" do
|
12
12
|
RTesseract::Mixed.new.class.should eql(RTesseract::Mixed)
|
13
|
-
RTesseract::Mixed.new(@
|
13
|
+
RTesseract::Mixed.new(@image_tif).class.should eql(RTesseract::Mixed)
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should translate parts of the image to text" do
|
17
|
-
mix_block = RTesseract::Mixed.new(@
|
17
|
+
mix_block = RTesseract::Mixed.new(@image_tif,{:psm=>7}) do |image|
|
18
18
|
image.area(28, 19, 25, 25) #position of 4
|
19
19
|
image.area(180, 22, 20, 28) # position of 3
|
20
20
|
image.area(218, 22, 24, 28) # position of z
|
21
21
|
image.area(248, 24, 22, 22) # position of z
|
22
22
|
end
|
23
|
-
mix_block.to_s_without_spaces.should eql("
|
23
|
+
mix_block.to_s_without_spaces.should eql("43FF")
|
24
24
|
mix_block.clear_areas
|
25
25
|
mix_block.areas.should == []
|
26
26
|
|
27
|
-
mix_block = RTesseract::Mixed.new(@
|
27
|
+
mix_block = RTesseract::Mixed.new(@image_tif,{:areas => [
|
28
28
|
{:x => 28, :y=>19, :width=>25, :height=>25 }, #position of 4
|
29
29
|
{:x => 180, :y=>22, :width=>20, :height=>28}, # position of 3
|
30
30
|
{:x => 218, :y=>22, :width=>24, :height=>28}, # position of z
|
31
31
|
{:x => 248, :y=>24, :width=>22, :height=>22} # position of z
|
32
32
|
],:psm=>7})
|
33
|
-
mix_block.to_s_without_spaces.should eql("
|
33
|
+
mix_block.to_s_without_spaces.should eql("43FF")
|
34
34
|
end
|
35
35
|
|
36
36
|
it " get a error" do
|
@@ -39,7 +39,7 @@ describe "Rtesseract::Mixed" do
|
|
39
39
|
expect{ mix_block.to_s_without_spaces }.to raise_error(RTesseract::ImageNotSelectedError)
|
40
40
|
|
41
41
|
|
42
|
-
mix_block = RTesseract::Mixed.new(@
|
42
|
+
mix_block = RTesseract::Mixed.new(@image_tif,{:areas => [{:x => 28, :y=>19, :width=>25, :height=>25 }
|
43
43
|
],:psm=>7, :command => "tesseract_error"})
|
44
44
|
expect{ mix_block.to_s }.to raise_error(RTesseract::ConversionError)
|
45
45
|
end
|
data/spec/rtesseract_spec.rb
CHANGED
@@ -10,89 +10,95 @@ end
|
|
10
10
|
describe "Rtesseract" do
|
11
11
|
before do
|
12
12
|
@path = Pathname.new(__FILE__.gsub("rtesseract_spec.rb","")).expand_path
|
13
|
-
@
|
13
|
+
@image_tif = @path.join("images","test.tif").to_s
|
14
14
|
end
|
15
15
|
|
16
16
|
it " be instantiable" do
|
17
17
|
RTesseract.new.class.should eql(RTesseract)
|
18
18
|
RTesseract.new("").class.should eql(RTesseract)
|
19
|
-
RTesseract.new(@
|
19
|
+
RTesseract.new(@image_tif).class.should eql(RTesseract)
|
20
20
|
end
|
21
21
|
|
22
22
|
it " translate image to text" do
|
23
|
-
RTesseract.new(@
|
24
|
-
RTesseract.new(@
|
23
|
+
RTesseract.new(@image_tif).to_s_without_spaces.should eql("43XF")
|
24
|
+
RTesseract.new(@image_tif, {:processor => 'mini_magick'}).to_s_without_spaces.should eql("43XF")
|
25
25
|
RTesseract.new(@path.join("images","test1.tif").to_s).to_s_without_spaces.should eql("V2V4")
|
26
26
|
RTesseract.new(@path.join("images","test with spaces.tif").to_s).to_s_without_spaces.should eql("V2V4")
|
27
|
+
|
27
28
|
end
|
28
29
|
|
29
30
|
it " translate images .png, .jpg, .bmp" do
|
30
31
|
RTesseract.new(@path.join("images","test.png").to_s).to_s_without_spaces.should eql("HW9W")
|
31
|
-
RTesseract.new(@path.join("images","test.jpg").to_s).to_s_without_spaces.should eql("
|
32
|
-
RTesseract.new(@path.join("images","test.bmp").to_s).to_s_without_spaces.should eql("
|
32
|
+
RTesseract.new(@path.join("images","test.jpg").to_s).to_s_without_spaces.should eql("3R8F")
|
33
|
+
RTesseract.new(@path.join("images","test.bmp").to_s).to_s_without_spaces.should eql("FLA6")
|
33
34
|
end
|
34
35
|
|
35
36
|
it " support diferent processors" do
|
36
37
|
#Rmagick
|
37
|
-
RTesseract.new(@
|
38
|
-
RTesseract.new(@
|
38
|
+
RTesseract.new(@image_tif).to_s_without_spaces.should eql("43XF")
|
39
|
+
RTesseract.new(@image_tif, :processor => 'rmagick').to_s_without_spaces.should eql("43XF")
|
40
|
+
RTesseract.new(@path.join("images","test.png").to_s, :processor => 'rmagick').to_s_without_spaces.should eql("HW9W")
|
39
41
|
|
40
42
|
#MiniMagick
|
41
|
-
RTesseract.new(@
|
43
|
+
RTesseract.new(@image_tif, :processor => 'mini_magick').to_s_without_spaces.should eql("43XF")
|
44
|
+
RTesseract.new(@path.join("images","test.png").to_s, :processor => 'mini_magick').to_s_without_spaces.should eql("HW9W")
|
42
45
|
|
43
46
|
#QuickMagick
|
44
|
-
RTesseract.new(@
|
47
|
+
RTesseract.new(@image_tif, :processor => 'quick_magick').to_s_without_spaces.should eql("43XF")
|
48
|
+
RTesseract.new(@path.join("images","test.png").to_s, :processor => 'quick_magick').to_s_without_spaces.should eql("HW9W")
|
49
|
+
|
50
|
+
#NoneMagick
|
51
|
+
RTesseract.new(@image_tif, :processor => 'none').to_s_without_spaces.should eql("43XF")
|
45
52
|
end
|
46
53
|
|
47
54
|
it " change the image" do
|
48
|
-
image = RTesseract.new(@
|
49
|
-
image.to_s_without_spaces.should eql("
|
55
|
+
image = RTesseract.new(@image_tif)
|
56
|
+
image.to_s_without_spaces.should eql("43XF")
|
50
57
|
image.source = @path.join("images","test1.tif").to_s
|
51
58
|
image.to_s_without_spaces.should eql("V2V4")
|
52
59
|
end
|
53
60
|
|
54
61
|
it " select the language" do
|
55
62
|
#English
|
56
|
-
RTesseract.new(@
|
57
|
-
RTesseract.new(@
|
58
|
-
RTesseract.new(@
|
59
|
-
RTesseract.new(@
|
63
|
+
RTesseract.new(@image_tif,{:lang=>"eng"}).lang.should eql(" -l eng ")
|
64
|
+
RTesseract.new(@image_tif,{:lang=>"en"}).lang.should eql(" -l eng ")
|
65
|
+
RTesseract.new(@image_tif,{:lang=>"en-US"}).lang.should eql(" -l eng ")
|
66
|
+
RTesseract.new(@image_tif,{:lang=>"english"}).lang.should eql(" -l eng ")
|
60
67
|
|
61
68
|
#Portuguese
|
62
|
-
RTesseract.new(@
|
63
|
-
RTesseract.new(@
|
64
|
-
RTesseract.new(@
|
65
|
-
RTesseract.new(@
|
66
|
-
RTesseract.new(@
|
69
|
+
RTesseract.new(@image_tif,{:lang=>"por"}).lang.should eql(" -l por ")
|
70
|
+
RTesseract.new(@image_tif,{:lang=>"pt-BR"}).lang.should eql(" -l por ")
|
71
|
+
RTesseract.new(@image_tif,{:lang=>"pt-br"}).lang.should eql(" -l por ")
|
72
|
+
RTesseract.new(@image_tif,{:lang=>"pt"}).lang.should eql(" -l por ")
|
73
|
+
RTesseract.new(@image_tif,{:lang=>"portuguese"}).lang.should eql(" -l por ")
|
67
74
|
|
68
|
-
RTesseract.new(@
|
69
|
-
RTesseract.new(@
|
70
|
-
|
71
|
-
RTesseract.new(@image_tiff,{:lang=>"eng"}).lang.should eql(" -l eng ")
|
75
|
+
RTesseract.new(@image_tif,{:lang=>"eng"}).to_s_without_spaces.should eql("43XF")
|
76
|
+
#RTesseract.new(@image_tif,{:lang=>"por"}).to_s_without_spaces.should eql("43XF")
|
77
|
+
RTesseract.new(@image_tif,{:lang=>"eng"}).lang.should eql(" -l eng ")
|
72
78
|
|
73
79
|
#Inválid lang object
|
74
|
-
RTesseract.new(@
|
80
|
+
RTesseract.new(@image_tif,{:lang=>MakeStringError.new}).lang.should eql("")
|
75
81
|
end
|
76
82
|
|
77
83
|
it " select options" do
|
78
|
-
expect(RTesseract.new(@
|
79
|
-
expect(RTesseract.new(@
|
80
|
-
expect(RTesseract.new(@
|
81
|
-
expect(RTesseract.new(@
|
84
|
+
expect(RTesseract.new(@image_tif).options_cmd).to eql([])
|
85
|
+
expect(RTesseract.new(@image_tif, options: 'digits').options_cmd).to eql(['digits'])
|
86
|
+
expect(RTesseract.new(@image_tif, options: :digits).options_cmd).to eql([:digits])
|
87
|
+
expect(RTesseract.new(@image_tif, options: [:digits, :quiet]).options_cmd).to eql([:digits, :quiet])
|
82
88
|
end
|
83
89
|
|
84
90
|
it " be configurable" do
|
85
|
-
RTesseract.new(@
|
86
|
-
RTesseract.new(@
|
87
|
-
RTesseract.new(@
|
88
|
-
RTesseract.new(@
|
91
|
+
RTesseract.new(@image_tif,{:chop_enable=>0,:enable_assoc=>0,:display_text=>0}).config.should eql("chop_enable 0\nenable_assoc 0\ndisplay_text 0")
|
92
|
+
RTesseract.new(@image_tif,{:chop_enable=>0}).config.should eql("chop_enable 0")
|
93
|
+
RTesseract.new(@image_tif,{:chop_enable=>0,:enable_assoc=>0}).config.should eql("chop_enable 0\nenable_assoc 0")
|
94
|
+
RTesseract.new(@image_tif,{:chop_enable=>0}).to_s_without_spaces.should eql("43XF")
|
89
95
|
end
|
90
96
|
|
91
97
|
it " crop image" do
|
92
|
-
RTesseract.new(@
|
93
|
-
RTesseract.new(@
|
94
|
-
RTesseract.new(@
|
95
|
-
RTesseract.new(@
|
98
|
+
RTesseract.new(@image_tif,{:psm=>7}).crop!(140,10,36,40).to_s_without_spaces.should eql("4")
|
99
|
+
RTesseract.new(@image_tif,{:psm=>7}).crop!(180,10,36,40).to_s_without_spaces.should eql("3")
|
100
|
+
RTesseract.new(@image_tif,{:psm=>7}).crop!(216,10,20,40).to_s_without_spaces.should eql("X")
|
101
|
+
RTesseract.new(@image_tif,{:psm=>7}).crop!(240,10,30,40).to_s_without_spaces.should eql("F")
|
96
102
|
end
|
97
103
|
|
98
104
|
|
@@ -109,7 +115,7 @@ describe "Rtesseract" do
|
|
109
115
|
end
|
110
116
|
|
111
117
|
it " use a instance" do
|
112
|
-
RTesseract.new(Magick::Image.read(@
|
118
|
+
RTesseract.new(Magick::Image.read(@image_tif.to_s).first).to_s_without_spaces.should eql("43XF")
|
113
119
|
RMagickProcessor.a_name?('teste').should == false
|
114
120
|
RMagickProcessor.a_name?('rmagick').should == true
|
115
121
|
RMagickProcessor.a_name?('RMagickProcessor').should == true
|
@@ -121,6 +127,9 @@ describe "Rtesseract" do
|
|
121
127
|
QuickMagickProcessor.a_name?('teste').should == false
|
122
128
|
QuickMagickProcessor.a_name?('quick_magick').should == true
|
123
129
|
QuickMagickProcessor.a_name?('QuickMagickProcessor').should == true
|
130
|
+
|
131
|
+
NoneProcessor.a_name?('none').should == true
|
132
|
+
NoneProcessor.a_name?('NoneProcessor').should == true
|
124
133
|
end
|
125
134
|
|
126
135
|
it " change image in a block" do
|
@@ -133,13 +142,13 @@ describe "Rtesseract" do
|
|
133
142
|
test = RTesseract.read(@path.join("images","test.jpg").to_s,{:lang=>'en'}) do |image|
|
134
143
|
image = image.white_threshold(245).quantize(256, Magick::GRAYColorspace)
|
135
144
|
end
|
136
|
-
test.to_s_without_spaces.should eql("
|
145
|
+
test.to_s_without_spaces.should eql("3R8F")
|
137
146
|
|
138
147
|
test = RTesseract.read(@path.join("images","test.jpg").to_s,{:lang=>'en', :processor => 'mini_magick'}) do |image|
|
139
148
|
#image.white_threshold(245)
|
140
149
|
image.gravity "south"
|
141
150
|
end
|
142
|
-
test.to_s_without_spaces.should eql("
|
151
|
+
test.to_s_without_spaces.should eql("3R8F")
|
143
152
|
end
|
144
153
|
|
145
154
|
it " get a error" do
|
@@ -147,7 +156,7 @@ describe "Rtesseract" do
|
|
147
156
|
expect{ RTesseract.new(@path.join("images","test_not_exists.png").to_s).to_s }.to raise_error(RTesseract::ImageNotSelectedError)
|
148
157
|
|
149
158
|
#Inválid psm object
|
150
|
-
RTesseract.new(@
|
159
|
+
RTesseract.new(@image_tif,{:psm=>MakeStringError.new}).psm.should eql("")
|
151
160
|
end
|
152
161
|
|
153
162
|
it "remove a file" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtesseract
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danilo Jeremias da Silva
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- Rakefile
|
114
114
|
- VERSION
|
115
115
|
- lib/processors/mini_magick.rb
|
116
|
+
- lib/processors/none.rb
|
116
117
|
- lib/processors/quick_magick.rb
|
117
118
|
- lib/processors/rmagick.rb
|
118
119
|
- lib/rtesseract.rb
|