diff --git a/.rubocop.yml b/.rubocop.yml index 347c2e8..4a63134 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,508 +1,511 @@ require: rubocop-rspec AllCops: - TargetRubyVersion: 2.3 + TargetRubyVersion: 2.2 Include: - ./**/*.rb Exclude: - files/**/* - vendor/**/* - .vendor/**/* - pkg/**/* - spec/fixtures/**/* - Gemfile - Rakefile Layout/ConditionPosition: Enabled: true Lint/ElseLayout: Enabled: true Lint/UnreachableCode: Enabled: true Lint/UselessComparison: Enabled: true Lint/EnsureReturn: Enabled: true Lint/SuppressedException: Enabled: true Lint/ShadowingOuterLocalVariable: Enabled: true Lint/LiteralInInterpolation: Enabled: true Style/HashSyntax: Enabled: false Style/RedundantReturn: Enabled: true Lint/AmbiguousOperator: Enabled: true Lint/AssignmentInCondition: Enabled: true Layout/SpaceBeforeComment: Enabled: true Style/AndOr: Enabled: true Style/RedundantSelf: Enabled: true # Method length is not necessarily an indicator of code quality Metrics/MethodLength: Enabled: false # Module length is not necessarily an indicator of code quality Metrics/ModuleLength: Enabled: false Style/WhileUntilModifier: Enabled: true Lint/AmbiguousRegexpLiteral: Enabled: true Security/Eval: Enabled: true Layout/BlockAlignment: Enabled: true Layout/DefEndAlignment: Enabled: true Layout/EndAlignment: Enabled: true Lint/DeprecatedClassMethods: Enabled: true Lint/Loop: Enabled: true Lint/ParenthesesAsGroupedExpression: Enabled: true Lint/RescueException: Enabled: true Lint/RedundantStringCoercion: Enabled: true Lint/UnusedBlockArgument: Enabled: true Lint/UnusedMethodArgument: Enabled: true Lint/UselessAccessModifier: Enabled: true Lint/UselessAssignment: Enabled: true Lint/Void: Enabled: true Layout/AccessModifierIndentation: Enabled: true Naming/AccessorMethodName: Enabled: true Style/Alias: Enabled: true Layout/ArrayAlignment: Enabled: true Layout/HashAlignment: Enabled: true Layout/ParameterAlignment: Enabled: true Metrics/BlockNesting: Enabled: true Style/AsciiComments: Enabled: true Style/Attr: Enabled: true Style/BracesAroundHashParameters: Enabled: true Style/CaseEquality: Enabled: true Layout/CaseIndentation: Enabled: true Style/CharacterLiteral: Enabled: true Naming/ClassAndModuleCamelCase: Enabled: true Style/ClassAndModuleChildren: Enabled: false Style/ClassCheck: Enabled: true # Class length is not necessarily an indicator of code quality Metrics/ClassLength: Enabled: false Style/ClassMethods: Enabled: true Style/ClassVars: Enabled: true Style/WhenThen: Enabled: true Style/WordArray: Enabled: true Style/RedundantPercentQ: Enabled: true Layout/Tab: Enabled: true Layout/SpaceBeforeSemicolon: Enabled: true Layout/TrailingEmptyLines: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: true Layout/SpaceInsideHashLiteralBraces: Enabled: true Layout/SpaceInsideParens: Enabled: true Layout/LeadingCommentSpace: Enabled: true Layout/SpaceAfterColon: Enabled: true Layout/SpaceAfterComma: Enabled: true Layout/SpaceAfterMethodName: Enabled: true Layout/SpaceAfterNot: Enabled: true Layout/SpaceAfterSemicolon: Enabled: true Layout/SpaceAroundEqualsInParameterDefault: Enabled: true Layout/SpaceAroundOperators: Enabled: true Layout/SpaceBeforeBlockBraces: Enabled: true Layout/SpaceBeforeComma: Enabled: true Style/CollectionMethods: Enabled: true Layout/CommentIndentation: Enabled: true Style/ColonMethodCall: Enabled: true Style/CommentAnnotation: Enabled: true # 'Complexity' is very relative Metrics/CyclomaticComplexity: Enabled: false Naming/ConstantName: Enabled: true Style/Documentation: Enabled: false Style/DefWithParentheses: Enabled: true Style/PreferredHashMethods: Enabled: true Layout/DotPosition: EnforcedStyle: trailing Style/DoubleNegation: Enabled: true Style/EachWithObject: Enabled: true Layout/EmptyLineBetweenDefs: Enabled: true Layout/FirstArrayElementIndentation: Enabled: true Layout/FirstHashElementIndentation: Enabled: true Layout/IndentationConsistency: Enabled: true Layout/IndentationWidth: Enabled: true Layout/EmptyLines: Enabled: true Layout/EmptyLinesAroundAccessModifier: Enabled: true Style/EmptyLiteral: Enabled: true # Configuration parameters: AllowURI, URISchemes. Layout/LineLength: Enabled: false Style/MethodDefParentheses: Enabled: true Style/LineEndConcatenation: Enabled: true Layout/TrailingWhitespace: Enabled: true Style/StringLiterals: Enabled: true Style/TrailingCommaInArguments: Enabled: true Style/TrailingCommaInHashLiteral: Enabled: true Style/TrailingCommaInArrayLiteral: Enabled: true Style/GlobalVars: Enabled: true Style/GuardClause: Enabled: true Style/IfUnlessModifier: Enabled: true Style/MultilineIfThen: Enabled: true Style/NegatedIf: Enabled: true Style/NegatedWhile: Enabled: true Style/Next: Enabled: true Style/SingleLineBlockParams: Enabled: true Style/SingleLineMethods: Enabled: true Style/SpecialGlobalVars: Enabled: true Style/TrivialAccessors: Enabled: true Style/UnlessElse: Enabled: true Style/VariableInterpolation: Enabled: true Naming/VariableName: Enabled: true Style/WhileUntilDo: Enabled: true Style/EvenOdd: Enabled: true Naming/FileName: Enabled: true Style/For: Enabled: true Style/Lambda: Enabled: true Naming/MethodName: Enabled: true Style/MultilineTernaryOperator: Enabled: true Style/NestedTernaryOperator: Enabled: true Style/NilComparison: Enabled: true Style/FormatString: Enabled: true Style/MultilineBlockChain: Enabled: true Style/Semicolon: Enabled: true Style/SignalException: Enabled: true Style/NonNilCheck: Enabled: true Style/Not: Enabled: true Style/NumericLiterals: Enabled: true Style/OneLineConditional: Enabled: true Naming/BinaryOperatorParameterName: Enabled: true Style/ParenthesesAroundCondition: Enabled: true Style/PercentLiteralDelimiters: Enabled: true Style/PerlBackrefs: Enabled: true Naming/PredicateName: Enabled: true Style/RedundantException: Enabled: true Style/SelfAssignment: Enabled: true Style/Proc: Enabled: true Style/RaiseArgs: Enabled: true Style/RedundantBegin: Enabled: true Style/RescueModifier: Enabled: true # based on https://github.com/voxpupuli/modulesync_config/issues/168 Style/RegexpLiteral: EnforcedStyle: percent_r Enabled: true Lint/UnderscorePrefixedVariableName: Enabled: true Metrics/ParameterLists: Enabled: false Lint/RequireParentheses: Enabled: true Layout/SpaceBeforeFirstArg: Enabled: true Style/ModuleFunction: Enabled: true Lint/Debugger: Enabled: true Style/IfWithSemicolon: Enabled: true Style/Encoding: Enabled: true Style/BlockDelimiters: Enabled: true Style/FormatStringToken: Enabled: false Layout/MultilineBlockLayout: Enabled: true # 'Complexity' is very relative Metrics/AbcSize: Enabled: False Metrics/BlockLength: Enabled: False # 'Complexity' is very relative Metrics/PerceivedComplexity: Enabled: False Layout/ClosingParenthesisIndentation: Enabled: false # RSpec # We don't use rspec in this way RSpec/DescribeClass: Enabled: False # Example length is not necessarily an indicator of code quality RSpec/ExampleLength: Enabled: False RSpec/NestedGroups: Max: 4 RSpec/MultipleExpectations: Max: 2 + +RSpec/NamedSubject: + Enabled: false diff --git a/Gemfile b/Gemfile index e4bf1a7..015fc4d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,55 +1,56 @@ source ENV['GEM_SOURCE'] || 'https://rubygems.org' def location_for(place, fake_version = nil) if place =~ /^(git[:@][^#]*)#(.*)/ [fake_version, { git: $1, branch: $2, require: false }].compact elsif place =~ /^file:\/\/(.*)/ ['>= 0', { path: File.expand_path($1), require: false }] else [place, { require: false }] end end group :test do gem 'puppetlabs_spec_helper', require: false gem 'rspec-puppet', require: false, git: 'https://github.com/rodjek/rspec-puppet.git' gem 'rspec-puppet-facts', require: false gem 'rspec-puppet-utils', require: false gem 'puppet-lint-absolute_classname-check', require: false gem 'puppet-lint-leading_zero-check', require: false gem 'puppet-lint-trailing_comma-check', require: false gem 'puppet-lint-version_comparison-check', require: false gem 'puppet-lint-classes_and_types_beginning_with_digits-check', require: false gem 'puppet-lint-unquoted_string-check', require: false gem 'puppet-lint-variable_contains_upcase', require: false gem 'metadata-json-lint', require: false gem 'puppet-blacksmith', require: false gem 'voxpupuli-release', require: false, git: 'https://github.com/voxpupuli/voxpupuli-release-gem.git' - gem 'rubocop-rspec', '~> 1.5', require: false if RUBY_VERSION >= '2.2.0' + gem 'rubocop', '~> 0.49.1', require: false + gem 'rubocop-rspec', require: false gem 'json_pure', '<= 2.0.1', require: false if RUBY_VERSION < '2.0.0' gem 'rspec-its', require: false end group :development do gem 'travis', require: false gem 'travis-lint', require: false gem 'guard-rake', require: false end group :system_tests do gem 'beaker', :require => false gem 'beaker-rspec', :require => false gem 'serverspec', :require => false gem 'beaker-puppet_install_helper', require: false end if (facterversion = ENV['FACTER_GEM_VERSION']) gem 'facter', facterversion.to_s, require: false, groups: [:test] else gem 'facter', require: false, groups: [:test] end ENV['PUPPET_VERSION'].nil? ? puppetversion = '~> 4.0' : puppetversion = ENV['PUPPET_VERSION'].to_s gem 'puppet', puppetversion, require: false, groups: [:test] # vim: syntax=ruby