rtesseract 3.0.3 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8eb694ea4b37475f756451795c145b8ba9618a0e5e94b0774a90301bb1aa97a2
4
- data.tar.gz: fe725c774fc39720ff830e47e4580f7335def9ece76f67fad77fe9722f415d6c
3
+ metadata.gz: 87f85a70ab24a03a719e7726d95debeb469d822c447acc39a8adc1579c43e6d1
4
+ data.tar.gz: a18cd83cd4632ed5adc096f9384659f0e47a4ba33e2f8a76e804cf8140e8798b
5
5
  SHA512:
6
- metadata.gz: f40f8b53fc3c63e4968d9b1adab5153771730897fd681e354afea79f2007c28c4216dc61cad0d218dc7d76814360ae9169a0ffb8999ab6c8d15ef51ad712ec07
7
- data.tar.gz: e2dfbf63b972c6e678d4bb79ec00064a958c9607f76cffe197bc26f555dff35bd7b0e1c263e376ede9598e2f429a344abb4b8d39b0e47ede6d1c09a32e6c44a4
6
+ metadata.gz: 4f6b37e1645d5f82c759e5feea081cfcf5384e2ad91423d2d04030a89ef007eb9469ecf398ba4cd2364bf2baeea4bad885866c4c41b19fa4da2c078b79cef4a6
7
+ data.tar.gz: bea642e1d7d2576dbdaeeb68ff730627104894d914a405a4ec2a37b8c65755f2f9c33a5091e16eaced51162725b6ea62f647b764ec838eefe3bfe4f58f461986
@@ -0,0 +1,31 @@
1
+ name: CI
2
+ on: [push]
3
+ jobs:
4
+ test:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ matrix:
8
+ ruby:
9
+ - '2.5.x'
10
+ - '2.6.x'
11
+ - '2.7.x'
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Install tesseract-ocr
15
+ run: |
16
+ sudo add-apt-repository ppa:alex-p/tesseract-ocr -y
17
+ sudo apt-get update -q
18
+ sudo apt-get install tesseract-ocr tesseract-ocr-eng ghostscript -y
19
+ - name: Setup Ruby
20
+ uses: actions/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - name: Bundle
24
+ env:
25
+ MTSR_RAILS_VERSION: ${{ matrix.rails }}
26
+ run: |
27
+ gem uninstall -aIx bundler
28
+ gem install bundler
29
+ bundle install --jobs 4 --retry 3
30
+ - name: Test
31
+ run: bundle exec rake
@@ -0,0 +1,3 @@
1
+ rubocop:
2
+ config_file: .rubocop.yml
3
+ version: 0.80.0
@@ -1,8 +1,20 @@
1
- Documentation:
2
- Enabled: false
3
1
 
4
- Metrics/LineLength:
2
+ Layout/LineLength:
5
3
  Max: 150
6
4
 
7
5
  Metrics/BlockLength:
8
6
  Max: 50
7
+
8
+ Metrics/AbcSize:
9
+ Max: 30
10
+
11
+ Style/Documentation:
12
+ Enabled: false
13
+ Style/HashEachMethods:
14
+ Enabled: true
15
+
16
+ Style/HashTransformKeys:
17
+ Enabled: true
18
+
19
+ Style/HashTransformValues:
20
+ Enabled: true
@@ -1,3 +1,39 @@
1
+ ## v3.1.2
2
+
3
+ #### Added
4
+
5
+ * Added confidence for each word in box mode
6
+
7
+ ## v3.1.1
8
+
9
+ #### Changed
10
+
11
+ * Changed RTesseract::Command to receive a block when success run
12
+
13
+ ## v3.1.0
14
+
15
+ #### Changed
16
+
17
+ * Removed nokogi dependency.
18
+
19
+ ## v3.0.4
20
+
21
+ #### Changed
22
+
23
+ * Updated dependencies by security alerts.
24
+
25
+ ## v3.0.5
26
+
27
+ #### Changed
28
+
29
+ * Updated dependencies by security alerts.
30
+
31
+ ## v3.0.4
32
+
33
+ #### Changed
34
+
35
+ * Updated dependencies by security alerts.
36
+
1
37
  ## v3.0.3
2
38
 
3
39
  #### Changed
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
@@ -1,58 +1,55 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rtesseract (3.0.3)
5
- nokogiri
4
+ rtesseract (3.1.2)
6
5
 
7
6
  GEM
8
7
  remote: https://rubygems.org/
9
8
  specs:
10
- coveralls (0.8.22)
9
+ coveralls (0.8.23)
11
10
  json (>= 1.8, < 3)
12
11
  simplecov (~> 0.16.1)
13
12
  term-ansicolor (~> 1.3)
14
- thor (~> 0.19.4)
13
+ thor (>= 0.19.4, < 2.0)
15
14
  tins (~> 1.6)
16
15
  diff-lcs (1.3)
17
- docile (1.3.1)
18
- json (2.1.0)
19
- mini_portile2 (2.4.0)
20
- nokogiri (1.10.1)
21
- mini_portile2 (~> 2.4.0)
22
- rake (10.5.0)
23
- rspec (3.8.0)
24
- rspec-core (~> 3.8.0)
25
- rspec-expectations (~> 3.8.0)
26
- rspec-mocks (~> 3.8.0)
27
- rspec-core (3.8.0)
28
- rspec-support (~> 3.8.0)
29
- rspec-expectations (3.8.2)
16
+ docile (1.3.2)
17
+ json (2.3.0)
18
+ rake (13.0.1)
19
+ rspec (3.9.0)
20
+ rspec-core (~> 3.9.0)
21
+ rspec-expectations (~> 3.9.0)
22
+ rspec-mocks (~> 3.9.0)
23
+ rspec-core (3.9.1)
24
+ rspec-support (~> 3.9.1)
25
+ rspec-expectations (3.9.1)
30
26
  diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.8.0)
32
- rspec-mocks (3.8.0)
27
+ rspec-support (~> 3.9.0)
28
+ rspec-mocks (3.9.1)
33
29
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.8.0)
35
- rspec-support (3.8.0)
30
+ rspec-support (~> 3.9.0)
31
+ rspec-support (3.9.2)
36
32
  simplecov (0.16.1)
37
33
  docile (~> 1.1)
38
34
  json (>= 1.8, < 3)
39
35
  simplecov-html (~> 0.10.0)
40
36
  simplecov-html (0.10.2)
41
- term-ansicolor (1.7.0)
37
+ sync (0.5.0)
38
+ term-ansicolor (1.7.1)
42
39
  tins (~> 1.0)
43
- thor (0.19.4)
44
- tins (1.20.2)
40
+ thor (1.0.1)
41
+ tins (1.24.1)
42
+ sync
45
43
 
46
44
  PLATFORMS
47
45
  ruby
48
46
 
49
47
  DEPENDENCIES
50
- bundler (~> 1.17)
48
+ bundler (~> 2)
51
49
  coveralls
52
- rake (~> 10.0)
53
- rspec (~> 3.0)
50
+ rake
51
+ rspec
54
52
  rtesseract!
55
- simplecov
56
53
 
57
54
  BUNDLED WITH
58
- 1.17.2
55
+ 2.1.4
data/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  <a href='http://badge.fury.io/rb/rtesseract'>
4
4
  <img src="https://badge.fury.io/rb/rtesseract.png" alt="Gem Version" />
5
5
  </a>
6
- <a href='https://travis-ci.org/dannnylo/rtesseract'>
7
- <img src="https://travis-ci.org/dannnylo/rtesseract.png?branch=master" alt="Build Status" />
6
+ <a href='https://github.com/dannnylo/rtesseract/workflows/CI/badge.svg'>
7
+ <img src="https://github.com/dannnylo/rtesseract/workflows/CI/badge.svg" alt="Build Status" />
8
8
  </a>
9
9
  <a href='https://coveralls.io/r/dannnylo/rtesseract?branch=master'>
10
10
  <img src="https://coveralls.io/repos/dannnylo/rtesseract/badge.png?branch=master" alt="Coverage Status" />
@@ -100,20 +100,20 @@ This will preserve the image colors, pictures and structure in the generated pdf
100
100
  ```ruby
101
101
  RTesseract.new('test_words.png').to_box
102
102
  => [
103
- {:word => 'If', :x_start=>52, :y_start=>13, :x_end=>63, :y_end=>27},
104
- {:word => 'you', :x_start=>69, :y_start=>17, :x_end=>100, :y_end=>31},
105
- {:word => 'are', :x_start=>108, :y_start=>17, :x_end=>136, :y_end=>27},
106
- {:word => 'a', :x_start=>143, :y_start=>17, :x_end=>151, :y_end=>27},
107
- {:word => 'friend,', :x_start=>158, :y_start=>13, :x_end=>214, :y_end=>29},
108
- {:word => 'you', :x_start=>51, :y_start=>39, :x_end=>82, :y_end=>53},
109
- {:word => 'speak', :x_start=>90, :y_start=>35, :x_end=>140, :y_end=>53},
110
- {:word => 'the', :x_start=>146, :y_start=>35, :x_end=>174, :y_end=>49},
111
- {:word => 'password,', :x_start=>182, :y_start=>35, :x_end=>267, :y_end=>53},
112
- {:word => 'and', :x_start=>51, :y_start=>57, :x_end=>81, :y_end=>71},
113
- {:word => 'the', :x_start=>89, :y_start=>57, :x_end=>117, :y_end=>71},
114
- {:word => 'doors', :x_start=>124, :y_start=>57, :x_end=>172, :y_end=>71},
115
- {:word => 'will', :x_start=>180, :y_start=>57, :x_end=>208, :y_end=>71},
116
- {:word => 'open.', :x_start=>216, :y_start=>61, :x_end=>263, :y_end=>75}
103
+ { :word => 'If', :confidence=>89, :x_start=>52, :y_start=>13, :x_end=>63, :y_end=>27},
104
+ { :word => 'you', :confidence=>96, :x_start=>69, :y_start=>17, :x_end=>100, :y_end=>31},
105
+ { :word => 'are', :confidence=>92, :x_start=>108, :y_start=>17, :x_end=>136, :y_end=>27},
106
+ { :word => 'a', :confidence=>92, :x_start=>133, :y_start=>8, :x_end=>147, :y_end=>35},
107
+ { :word => 'friend,', :confidence=>95, :x_start=>158, :y_start=>13, :x_end=>214, :y_end=>29},
108
+ { :word => 'you', :confidence=>96, :x_start=>51, :y_start=>39, :x_end=>82, :y_end=>53},
109
+ { :word => 'speak', :confidence=>96, :x_start=>90, :y_start=>35, :x_end=>140, :y_end=>53},
110
+ { :word => 'the', :confidence=>96, :x_start=>146, :y_start=>35, :x_end=>174, :y_end=>49},
111
+ { :word => 'password,', :confidence=>96, :x_start=>182, :y_start=>35, :x_end=>267, :y_end=>53},
112
+ { :word => 'and', :confidence=>96, :x_start=>51, :y_start=>57, :x_end=>81, :y_end=>71},
113
+ { :word => 'the', :confidence=>96, :x_start=>89, :y_start=>57, :x_end=>117, :y_end=>71},
114
+ { :word => 'doors', :confidence=>96, :x_start=>124, :y_start=>57, :x_end=>172, :y_end=>71},
115
+ { :word => 'will', :confidence=>96, :x_start=>180, :y_start=>57, :x_end=>208, :y_end=>71},
116
+ { :word => 'open.', :confidence=>96, :x_start=>216, :y_start=>61, :x_end=>263, :y_end=>75}
117
117
  ]
118
118
  ```
119
119
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'rtesseract'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rtesseract/check'
2
4
  require 'rtesseract/configuration'
3
5
  require 'rtesseract/command'
@@ -1,13 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'tmpdir'
2
4
  require 'securerandom'
3
5
  require 'pathname'
4
6
 
5
7
  class RTesseract
6
8
  module Base
7
- def temp_file(ext = '')
8
- @rand_file ||= "rtesseract_#{SecureRandom.uuid}"
9
-
10
- Pathname.new(Dir.tmpdir).join("#{@rand_file}#{ext}").to_s
9
+ def temp_file_path
10
+ Pathname.new(Dir.tmpdir).join("rtesseract_#{SecureRandom.uuid}").to_s
11
11
  end
12
12
  end
13
13
  end
@@ -1,33 +1,50 @@
1
- require 'nokogiri'
1
+ # frozen_string_literal: true
2
2
 
3
3
  class RTesseract
4
4
  module Box
5
5
  extend RTesseract::Base
6
6
 
7
- def self.run(source, errors, options)
8
- options.tessedit_create_hocr = 1
7
+ class << self
8
+ def run(source, errors, options)
9
+ options.tessedit_create_hocr = 1
9
10
 
10
- RTesseract::Command.new(source, temp_file, errors, options).run
11
+ RTesseract::Command.new(source, temp_file_path, errors, options).run do |output_path|
12
+ parse(File.read("#{output_path}.hocr"))
13
+ end
14
+ end
11
15
 
12
- parse(File.read(temp_file('.hocr')))
13
- end
16
+ def parse(content)
17
+ content.lines.map { |line| parse_line(line) }.compact
18
+ end
19
+
20
+ def parse_line(line)
21
+ return unless line.match?(/oc(rx|r)_word/)
22
+
23
+ word = line.match(/(?<=>)(.*?)(?=<)/).to_s
24
+
25
+ return if word.strip == ''
14
26
 
15
- def self.parse(content)
16
- html = Nokogiri::HTML(content)
17
- html.css('span.ocrx_word, span.ocr_word').map do |word|
18
- attributes = word.attributes['title'].value.to_s.delete(';').split(' ')
19
- word_info(word, attributes)
27
+ word_info(word, parse_position(line), parse_confidence(line))
28
+ end
29
+
30
+ def word_info(word, positions, confidence)
31
+ {
32
+ word: word,
33
+ confidence: confidence[-1].to_i,
34
+ x_start: positions[1].to_i,
35
+ y_start: positions[2].to_i,
36
+ x_end: positions[3].to_i,
37
+ y_end: positions[4].to_i
38
+ }
20
39
  end
21
- end
22
40
 
23
- def self.word_info(word, data)
24
- {
25
- word: word.text,
26
- x_start: data[1].to_i,
27
- y_start: data[2].to_i,
28
- x_end: data[3].to_i,
29
- y_end: data[4].to_i
30
- }
41
+ def parse_position(line)
42
+ line.match(/(?<=title)(.*?)(?=;)/).to_s.split(' ')
43
+ end
44
+
45
+ def parse_confidence(line)
46
+ line.match(/(?<=;)(.*?)(?=')/).to_s.split(' ')
47
+ end
31
48
  end
32
49
  end
33
50
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class RTesseract
2
4
  class << self
3
5
  def tesseract_version
@@ -1,24 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class RTesseract
2
4
  class Command
3
5
  FIXED = %i[command psm oem lang tessdata_dir user_words user_patterns config_file].freeze
4
6
 
5
7
  attr_reader :options
6
8
 
7
- def initialize(source, output, errors, options)
9
+ def initialize(source, output_path, errors, options)
8
10
  @source = source
9
- @output = output
11
+ @output_path = output_path
10
12
  @options = options
11
13
  @errors = errors
12
- @full_command = [options.command, @source, @output]
14
+ @full_command = [options.command, @source, @output_path]
13
15
  end
14
16
 
15
17
  def full_command
16
18
  add_option('--psm', options.psm)
17
19
  add_option('--oem', options.oem)
18
20
  add_option('-l', options.lang)
19
- add_option('--tessdata_dir', options.tessdata_dir)
20
- add_option('--user_words', options.user_words)
21
- add_option('--user_patterns', options.user_patterns)
21
+ add_option('--tessdata-dir', options.tessdata_dir)
22
+ add_option('--user-words', options.user_words)
23
+ add_option('--user-patterns', options.user_patterns)
22
24
 
23
25
  other_configs
24
26
 
@@ -46,7 +48,11 @@ class RTesseract
46
48
 
47
49
  @errors.push(error)
48
50
 
49
- return output if status.success?
51
+ if status.success?
52
+ return yield(@output_path) if block_given?
53
+
54
+ return output
55
+ end
50
56
 
51
57
  raise RTesseract::Error, error
52
58
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ostruct'
2
4
 
3
5
  class RTesseract
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class RTesseract
2
4
  module Pdf
3
5
  extend Base
@@ -5,9 +7,9 @@ class RTesseract
5
7
  def self.run(source, errors, options)
6
8
  options.tessedit_create_pdf = 1
7
9
 
8
- RTesseract::Command.new(source, temp_file, errors, options).run
9
-
10
- File.open(temp_file('.pdf'), 'r')
10
+ RTesseract::Command.new(source, temp_file_path, errors, options).run do |output_path|
11
+ File.open("#{output_path}.pdf", 'r')
12
+ end
11
13
  end
12
14
  end
13
15
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
 
3
5
  class RTesseract
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class RTesseract
2
4
  module Tsv
3
5
  extend Base
@@ -5,9 +7,9 @@ class RTesseract
5
7
  def self.run(source, errors, options)
6
8
  options.tessedit_create_tsv = 1
7
9
 
8
- RTesseract::Command.new(source, temp_file, errors, options).run
9
-
10
- File.open(temp_file('.tsv'), 'r')
10
+ RTesseract::Command.new(source, temp_file_path, errors, options).run do |output_path|
11
+ File.open("#{output_path}.tsv", 'r')
12
+ end
11
13
  end
12
14
  end
13
15
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class RTesseract
2
- VERSION = '3.0.3'.freeze
4
+ VERSION = '3.1.2'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'rtesseract/version'
@@ -8,9 +10,9 @@ Gem::Specification.new do |spec|
8
10
  spec.authors = ['Danilo Jeremias da Silva']
9
11
  spec.email = ['dannnylo@gmail.com']
10
12
 
11
- spec.summary = 'Ruby library for working with the Tesseract OCR.'.freeze
12
- spec.description = 'Ruby library for working with the Tesseract OCR.'.freeze
13
- spec.homepage = 'http://github.com/dannnylo/rtesseract'.freeze
13
+ spec.summary = 'Ruby library for working with the Tesseract OCR.'
14
+ spec.description = 'Ruby library for working with the Tesseract OCR.'
15
+ spec.homepage = 'http://github.com/dannnylo/rtesseract'
14
16
  spec.license = 'MIT'
15
17
 
16
18
  # Specify which files should be added to the gem when it is released.
@@ -22,11 +24,8 @@ Gem::Specification.new do |spec|
22
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
25
  spec.require_paths = ['lib']
24
26
 
25
- spec.add_development_dependency 'bundler', '~> 1.17'
27
+ spec.add_development_dependency 'bundler', '~> 2'
26
28
  spec.add_development_dependency 'coveralls'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec', '~> 3.0'
29
- spec.add_development_dependency 'simplecov'
30
-
31
- spec.add_dependency 'nokogiri'
29
+ spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'rspec'
32
31
  end
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: 3.0.3
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danilo Jeremias da Silva
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-19 00:00:00.000000000 Z
11
+ date: 2020-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coveralls
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -40,34 +40,6 @@ dependencies:
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.0'
69
- - !ruby/object:Gem::Dependency
70
- name: simplecov
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - ">="
@@ -81,13 +53,13 @@ dependencies:
81
53
  - !ruby/object:Gem::Version
82
54
  version: '0'
83
55
  - !ruby/object:Gem::Dependency
84
- name: nokogiri
56
+ name: rspec
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - ">="
88
60
  - !ruby/object:Gem::Version
89
61
  version: '0'
90
- type: :runtime
62
+ type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
@@ -102,10 +74,11 @@ extensions: []
102
74
  extra_rdoc_files: []
103
75
  files:
104
76
  - ".document"
77
+ - ".github/workflows/ci.yml"
105
78
  - ".gitignore"
79
+ - ".hound.yml"
106
80
  - ".rspec"
107
81
  - ".rubocop.yml"
108
- - ".travis.yml"
109
82
  - CHANGELOG.md
110
83
  - CODE_OF_CONDUCT.md
111
84
  - Gemfile
@@ -145,8 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
118
  - !ruby/object:Gem::Version
146
119
  version: '0'
147
120
  requirements: []
148
- rubyforge_project:
149
- rubygems_version: 2.7.8
121
+ rubygems_version: 3.1.2
150
122
  signing_key:
151
123
  specification_version: 4
152
124
  summary: Ruby library for working with the Tesseract OCR.
@@ -1,17 +0,0 @@
1
- ---
2
-
3
- sudo: false
4
- dist: bionic
5
- language: ruby
6
- cache: bundler
7
-
8
- before_install:
9
- - sudo add-apt-repository ppa:alex-p/tesseract-ocr -y
10
- - sudo apt-get update -q
11
- - sudo apt-get install tesseract-ocr tesseract-ocr-eng ghostscript -y
12
- - gem install bundler -v 1.17.1
13
-
14
- rvm:
15
- - 2.4.5
16
- - 2.5.3
17
- - 2.6.0