rtesseract 1.2.5 → 1.2.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|