diff --git a/.rubocop.yml b/.rubocop.yml index 8559348..d8e3a71 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,7 +1,10 @@ require: + - rubocop-minitest - rubocop-performance + - rubocop-rake AllCops: + NewCops: enable Exclude: - .git/**/* @@ -16,6 +19,9 @@ Layout/LineLength: Layout/SpaceInsideHashLiteralBraces: Enabled: false +Metrics/MethodLength: + Max: 12 + Naming/AccessorMethodName: Enabled: false diff --git a/.travis.yml b/.travis.yml index 3075f68..e98eb25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ sudo: false language: ruby cache: bundler rvm: - - 2.6.4 + - 3.0.0 jdk: - openjdk8 before_install: - - gem install bundler -v 2.0.2 \ No newline at end of file + - gem install bundler \ No newline at end of file diff --git a/Rakefile b/Rakefile index 4b2b782..feeb94a 100644 --- a/Rakefile +++ b/Rakefile @@ -1,5 +1,6 @@ require 'bundler/gem_tasks' require 'rake/testtask' +require 'rubocop/rake_task' Rake::TestTask.new(:test) do |t| t.libs << 'test' @@ -7,4 +8,6 @@ Rake::TestTask.new(:test) do |t| t.test_files = FileList['test/**/*_test.rb'] end -task default: :test +RuboCop::RakeTask.new + +task default: %i[test rubocop] diff --git a/example/run.rb b/example/run.rb index cc0b88c..7b12c1a 100644 --- a/example/run.rb +++ b/example/run.rb @@ -64,4 +64,4 @@ pdf.save_as 'output.flat.pdf', flatten: true # closing the document -pdf.close \ No newline at end of file +pdf.close diff --git a/fillable-pdf.gemspec b/fillable-pdf.gemspec index bf7b89c..220dca5 100644 --- a/fillable-pdf.gemspec +++ b/fillable-pdf.gemspec @@ -12,6 +12,7 @@ Gem::Specification.new do |spec| spec.description = 'FillablePDF is an extremely simple and lightweight utility that bridges iText and Ruby in order to fill out fillable PDF forms or extract field values from previously filled out PDF forms.' spec.homepage = 'https://github.com/vkononov/fillable-pdf' spec.license = 'MIT' + spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0') spec.files = Dir.chdir(File.expand_path(__dir__)) do `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(example|test|spec|features)/}) } @@ -20,9 +21,14 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = %w[ext lib] - spec.add_development_dependency 'bundler', '~> 2.0' - spec.add_development_dependency 'minitest', '~> 5.0' - spec.add_development_dependency 'rake', '~> 10.0' + spec.add_development_dependency 'bundler' + spec.add_development_dependency 'minitest' + spec.add_development_dependency 'rake' + spec.add_development_dependency 'rubocop' + spec.add_development_dependency 'rubocop-md' + spec.add_development_dependency 'rubocop-minitest' + spec.add_development_dependency 'rubocop-performance' + spec.add_development_dependency 'rubocop-rake' spec.add_runtime_dependency 'rjb', '~> 1.6' end diff --git a/lib/field.rb b/lib/field.rb index a1108c3..24e9f9a 100644 --- a/lib/field.rb +++ b/lib/field.rb @@ -6,10 +6,10 @@ class Field # between these constants and tries to create the same constant ("A") for both, which causes # an annoying warning "already initialized constant Rjb::Com_itextpdf_kernel_pdf_PdfName::A". # As long as RJB has not fixed this issue, this warning will remain suppressed. - suppress_warnings { PDF_NAME = Rjb.import('com.itextpdf.kernel.pdf.PdfName') } + suppress_warnings { PDF_NAME = Rjb.import('com.itextpdf.kernel.pdf.PdfName') } # rubocop:disable Lint/ConstantDefinitionInBlock BUTTON = PDF_NAME.Btn.toString CHOICE = PDF_NAME.Ch.toString SIGNATURE = PDF_NAME.Sig.toString TEXT = PDF_NAME.Tx.toString -end \ No newline at end of file +end diff --git a/lib/fillable-pdf.rb b/lib/fillable-pdf.rb index 385e121..aee1403 100644 --- a/lib/fillable-pdf.rb +++ b/lib/fillable-pdf.rb @@ -27,8 +27,8 @@ def initialize(file_path) @pdf_doc = PDF_DOCUMENT.new @pdf_reader, @pdf_writer @pdf_form = PDF_ACRO_FORM.getAcroForm(@pdf_doc, true) @form_fields = @pdf_form.getFormFields - rescue StandardError => ex - raise "#{ex.message} (input file may be corrupt, incompatible, or may not have any forms)" + rescue StandardError => e + raise "#{e.message} (input file may be corrupt, incompatible, or may not have any forms)" end end diff --git a/lib/kernel.rb b/lib/kernel.rb index 59ef939..cc03b1c 100644 --- a/lib/kernel.rb +++ b/lib/kernel.rb @@ -6,4 +6,4 @@ def suppress_warnings $VERBOSE = original_verbosity result end -end \ No newline at end of file +end