diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..d98aadf --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,4 @@ +inherit_from: .rubocop_todo.yml + +AllCops: + TargetRubyVersion: 2.3 diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 0000000..9f5cdcb --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,372 @@ +# This configuration was generated by +# `rubocop --auto-gen-config` +# on 2019-05-31 14:29:36 +0200 using RuboCop version 0.71.0. +# The point is for the user to remove these configuration records +# one by one as the offenses are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of RuboCop, may require this file to be generated again. + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: with_first_argument, with_fixed_indentation +Layout/AlignArguments: + Exclude: + - 'lib/report_portal/rspec/formatter.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Layout/EmptyLineAfterGuardClause: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + - 'tests/features/step_definitions/steps.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment. +Layout/ExtraSpacing: + Exclude: + - 'lib/report_portal/logging/logging_appender.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Layout/LeadingCommentSpace: + Exclude: + - 'lib/report_portal/cucumber/parallel_formatter.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: aligned, indented +Layout/MultilineOperationIndentation: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +Layout/SpaceAfterComma: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + - 'lib/reportportal.rb' + - 'tests/formatter_spec.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: space, no_space +Layout/SpaceAroundEqualsInParameterDefault: + Exclude: + - 'lib/reportportal.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Layout/SpaceAroundOperators: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + - 'lib/report_portal/logging/logging_appender.rb' + - 'lib/report_portal/rspec/formatter.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. +# SupportedStyles: space, no_space +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideBlockBraces: + Exclude: + - 'tests/formatter_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces. +# SupportedStyles: space, no_space, compact +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideHashLiteralBraces: + Exclude: + - 'lib/reportportal.rb' + - 'tests/formatter_spec.rb' + +# Offense count: 100 +# Cop supports --auto-correct. +# Configuration parameters: AllowInHeredoc. +Layout/TrailingWhitespace: + Enabled: false + +# Offense count: 1 +Lint/ParenthesesAsGroupedExpression: + Exclude: + - 'tests/features/step_definitions/steps.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Lint/UnneededRequireStatement: + Exclude: + - 'lib/report_portal/cucumber/formatter.rb' + +# Offense count: 2 +Lint/UriEscapeUnescape: + Exclude: + - 'lib/reportportal.rb' + +# Offense count: 18 +Metrics/AbcSize: + Max: 106 + +# Offense count: 5 +# Configuration parameters: CountComments, ExcludedMethods. +# ExcludedMethods: refine +Metrics/BlockLength: + Max: 74 + +# Offense count: 2 +# Configuration parameters: CountComments. +Metrics/ClassLength: + Max: 165 + +# Offense count: 3 +Metrics/CyclomaticComplexity: + Max: 13 + +# Offense count: 21 +# Configuration parameters: CountComments, ExcludedMethods. +Metrics/MethodLength: + Max: 79 + +# Offense count: 1 +# Configuration parameters: CountComments. +Metrics/ModuleLength: + Max: 158 + +# Offense count: 5 +Metrics/PerceivedComplexity: + Max: 14 + +# Offense count: 3 +# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames. +# AllowedNames: io, id, to, by, on, in, at, ip, db +Naming/UncommunicativeMethodParamName: + Exclude: + - 'lib/report_portal/patches/rest_client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Security/YAMLLoad: + Exclude: + - 'lib/report_portal/settings.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: braces, no_braces, context_dependent +Style/BracesAroundHashParameters: + Exclude: + - 'tests/formatter_spec.rb' + +# Offense count: 1 +Style/CommentedKeyword: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions. +# SupportedStyles: assign_to_condition, assign_inside_condition +Style/ConditionalAssignment: + Exclude: + - 'lib/reportportal.rb' + +# Offense count: 9 +Style/Documentation: + Exclude: + - 'spec/**/*' + - 'test/**/*' + - 'lib/report_portal/cucumber/formatter.rb' + - 'lib/report_portal/cucumber/parallel_formatter.rb' + - 'lib/report_portal/cucumber/parallel_report.rb' + - 'lib/report_portal/logging/logger.rb' + - 'lib/report_portal/patches/rest_client.rb' + - 'lib/report_portal/rspec/formatter.rb' + - 'lib/report_portal/settings.rb' + - 'lib/reportportal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: empty, nil, both +Style/EmptyElse: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + - 'lib/reportportal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/ExpandPathArguments: + Exclude: + - 'Rakefile' + - 'reportportal.gemspec' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: format, sprintf, percent +Style/FormatString: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + +# Offense count: 5 +# Configuration parameters: . +# SupportedStyles: annotated, template, unannotated +Style/FormatStringToken: + EnforcedStyle: unannotated + +# Offense count: 21 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: always, never +Style/FrozenStringLiteralComment: + Enabled: false + +# Offense count: 8 +# Configuration parameters: AllowedVariables. +Style/GlobalVars: + Exclude: + - 'tests/features/step_definitions/steps.rb' + - 'tests/features/support/env.rb' + +# Offense count: 8 +# Configuration parameters: MinBodyLength. +Style/GuardClause: + Exclude: + - 'lib/report_portal/cucumber/parallel_report.rb' + - 'lib/report_portal/cucumber/report.rb' + - 'lib/report_portal/rspec/formatter.rb' + - 'lib/reportportal.rb' + - 'tests/features/step_definitions/steps.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. +# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys +Style/HashSyntax: + Exclude: + - 'lib/reportportal.rb' + - 'tests/formatter_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +Style/IfUnlessModifier: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + - 'lib/report_portal/cucumber/report.rb' + - 'tests/features/support/env.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, Autocorrect. +# SupportedStyles: module_function, extend_self +Style/ModuleFunction: + Exclude: + - 'lib/report_portal/patches/rest_client.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: literals, strict +Style/MutableConstant: + Exclude: + - 'lib/report_portal/settings.rb' + - 'lib/report_portal/version.rb' + - 'lib/reportportal.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AutoCorrect, EnforcedStyle, IgnoredMethods. +# SupportedStyles: predicate, comparison +Style/NumericPredicate: + Exclude: + - 'spec/**/*' + - 'lib/report_portal/cucumber/formatter.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: implicit, explicit +Style/RescueStandardError: + Exclude: + - 'lib/reportportal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: ConvertCodeThatCanStartToReturnNil, Whitelist. +# Whitelist: present?, blank?, presence, try, try! +Style/SafeNavigation: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + - 'lib/reportportal.rb' + +# Offense count: 10 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: only_raise, only_fail, semantic +Style/SignalException: + Exclude: + - 'lib/report_portal/cucumber/json_slurper.rb' + - 'lib/report_portal/settings.rb' + - 'tests/features/step_definitions/steps.rb' + - 'tests/features/support/env.rb' + - 'tests/spec/test_spec.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle. +# SupportedStyles: use_perl_names, use_english_names +Style/SpecialGlobalVars: + Exclude: + - 'lib/reportportal.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + - 'lib/report_portal/tasks.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: MinSize. +# SupportedStyles: percent, brackets +Style/SymbolArray: + EnforcedStyle: brackets + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, AllowSafeAssignment. +# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex +Style/TernaryParentheses: + Exclude: + - 'lib/report_portal/cucumber/report.rb' + - 'lib/report_portal/rspec/formatter.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInHashLiteral: + Exclude: + - 'lib/report_portal/settings.rb' + +# Offense count: 102 +# Cop supports --auto-correct. +# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. +# URISchemes: http, https +Metrics/LineLength: + Max: 164 diff --git a/.travis.yml b/.travis.yml index 6298504..2e07845 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ dist: trusty sudo: required language: ruby rvm: - - 2.2 - 2.3 - 2.4 + - 2.5 + - 2.6 diff --git a/Gemfile b/Gemfile index 12723c1..e45c32c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,12 @@ source 'https://rubygems.org' +gemspec + gem 'cucumber', '~> 3' -gem 'rest-client' -gem 'rubytree', git: 'https://github.com/razboev/RubyTree' -gem 'rspec' -gem 'rake' gem 'parallel_tests' +gem 'rake' +gem 'rspec' +gem 'rubytree', git: 'https://github.com/razboev/RubyTree' -gem 'logging' gem 'log4r' +gem 'logging' diff --git a/README.md b/README.md index 671478b..9c5eb28 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## Installation -Use Ruby 2.2+ +Use Ruby 2.3+ **Rubygems** diff --git a/Rakefile b/Rakefile index 2d87ec1..98e5178 100644 --- a/Rakefile +++ b/Rakefile @@ -3,8 +3,11 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) # used for testing purposes require 'report_portal/tasks' +require 'rubocop/rake_task' -task default: %w[test] +RuboCop::RakeTask.new + +task default: %w[rubocop test] task :test do # execute tests here, e.g. diff --git a/reportportal.gemspec b/reportportal.gemspec index 441a1b1..c5a110f 100644 --- a/reportportal.gemspec +++ b/reportportal.gemspec @@ -11,9 +11,11 @@ Gem::Specification.new do |s| s.email = 'dzmitry_humianiuk@epam.com' s.homepage = 'https://github.com/reportportal/agent-ruby' s.files = ['README.md', 'LICENSE', 'LICENSE.LESSER'] + Dir['lib/**/*'] - s.required_ruby_version = '>= 1.9.3' + s.required_ruby_version = '>= 2.3.0' s.license = 'Apache-2.0' s.add_dependency('rest-client', '~> 2.0') s.add_dependency('rubytree', '>=0.9.3') + + s.add_development_dependency('rubocop', '0.71') end