diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..6640ebf --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,4 @@ +inherit_from: .rubocop_todo.yml + +AllCops: + DisplayCopNames: true diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 0000000..5008d6e --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,416 @@ +# This configuration was generated by `rubocop --auto-gen-config` +# on 2015-04-06 09:56:00 -0700 using RuboCop version 0.30.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 +Lint/AmbiguousOperator: + Enabled: false + +# Offense count: 3 +# Configuration parameters: AllowSafeAssignment. +Lint/AssignmentInCondition: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Lint/BlockAlignment: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Lint/DeprecatedClassMethods: + Enabled: false + +# Offense count: 1 +Lint/Eval: + Enabled: false + +# Offense count: 5 +Lint/ParenthesesAsGroupedExpression: + Enabled: false + +# Offense count: 4 +Lint/RescueException: + Enabled: false + +# Offense count: 2 +Lint/ShadowingOuterLocalVariable: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +Lint/UnusedBlockArgument: + Enabled: false + +# Offense count: 11 +Lint/UselessAssignment: + Enabled: false + +# Offense count: 25 +Metrics/AbcSize: + Max: 196 + +# Offense count: 17 +Metrics/BlockNesting: + Max: 5 + +# Offense count: 7 +# Configuration parameters: CountComments. +Metrics/ClassLength: + Max: 342 + +# Offense count: 12 +Metrics/CyclomaticComplexity: + Max: 60 + +# Offense count: 347 +# Configuration parameters: AllowURI, URISchemes. +Metrics/LineLength: + Max: 201 + +# Offense count: 28 +# Configuration parameters: CountComments. +Metrics/MethodLength: + Max: 128 + +# Offense count: 1 +# Configuration parameters: CountKeywordArgs. +Metrics/ParameterLists: + Max: 6 + +# Offense count: 10 +Metrics/PerceivedComplexity: + Max: 46 + +# Offense count: 4 +# Cop supports --auto-correct. +Performance/Detect: + Enabled: false + +# Offense count: 3 +Style/AccessorMethodName: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +Style/Alias: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/AlignArray: + Enabled: false + +# Offense count: 27 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/AndOr: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/BarePercentLiterals: + Enabled: false + +# Offense count: 29 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods. +Style/BlockDelimiters: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/BlockEndNewline: + Enabled: false + +# Offense count: 44 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/BracesAroundHashParameters: + Enabled: false + +# Offense count: 8 +# Configuration parameters: IndentWhenRelativeTo, SupportedStyles, IndentOneStep. +Style/CaseIndentation: + Enabled: false + +# Offense count: 3 +Style/ClassVars: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +Style/CommentIndentation: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/DeprecatedHashMethods: + Enabled: false + +# Offense count: 7 +Style/Documentation: + Enabled: false + +# Offense count: 2 +Style/EachWithObject: + Enabled: false + +# Offense count: 3 +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/EmptyElse: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AllowAdjacentOneLineDefs. +Style/EmptyLineBetweenDefs: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +Style/EmptyLines: + Enabled: false + +# Offense count: 13 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/EmptyLinesAroundBlockBody: + Enabled: false + +# Offense count: 7 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/EmptyLinesAroundClassBody: + Enabled: false + +# Offense count: 23 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/EmptyLinesAroundModuleBody: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/FirstParameterIndentation: + Enabled: false + +# Offense count: 3 +# Configuration parameters: MinBodyLength. +Style/GuardClause: + Enabled: false + +# Offense count: 8 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues. +Style/HashSyntax: + Enabled: false + +# Offense count: 11 +# Cop supports --auto-correct. +# Configuration parameters: MaxLineLength. +Style/IfUnlessModifier: + Enabled: false + +# Offense count: 20 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/IndentHash: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: Width. +Style/IndentationWidth: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +Style/LeadingCommentSpace: + Enabled: false + +# Offense count: 2 +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/MethodName: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/MultilineBlockLayout: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/MultilineOperationIndentation: + Enabled: false + +# Offense count: 16 +# Cop supports --auto-correct. +Style/NegatedIf: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/NegatedWhile: + Enabled: false + +# Offense count: 1 +# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles. +Style/Next: + Enabled: false + +# Offense count: 16 +# Cop supports --auto-correct. +Style/NumericLiterals: + MinDigits: 11 + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: AllowSafeAssignment. +Style/ParenthesesAroundCondition: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Enabled: false + +# Offense count: 35 +# Configuration parameters: SupportedStyles. +Style/RaiseArgs: + EnforcedStyle: compact + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AllowMultipleReturnValues. +Style/RedundantReturn: + Enabled: false + +# Offense count: 2 +Style/RescueModifier: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/SelfAssignment: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AllowAsExpressionSeparator. +Style/Semicolon: + Enabled: false + +# Offense count: 36 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/SignalException: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +Style/SingleSpaceBeforeFirstArg: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/SpaceAfterColon: + Enabled: false + +# Offense count: 8058 +# Cop supports --auto-correct. +Style/SpaceAfterComma: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyleInsidePipes, SupportedStyles. +Style/SpaceAroundBlockParameters: + Enabled: false + +# Offense count: 30 +# Cop supports --auto-correct. +# Configuration parameters: MultiSpaceAllowedForOperators. +Style/SpaceAroundOperators: + Enabled: false + +# Offense count: 12 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/SpaceBeforeBlockBraces: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/SpaceBeforeComment: + Enabled: false + +# Offense count: 46 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. +Style/SpaceInsideBlockBraces: + Enabled: false + +# Offense count: 321 +# Cop supports --auto-correct. +Style/SpaceInsideBrackets: + Enabled: false + +# Offense count: 135 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles. +Style/SpaceInsideHashLiteralBraces: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +Style/SpecialGlobalVars: + Enabled: false + +# Offense count: 2148 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/StringLiterals: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/StringLiteralsInInterpolation: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/TrailingBlankLines: + Enabled: false + +# Offense count: 331 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles. +Style/TrailingComma: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. +Style/TrivialAccessors: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +Style/WhileUntilDo: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: WordRegex. +Style/WordArray: + MinSize: 2 diff --git a/.travis.yml b/.travis.yml index 2ef65c2..e5fd8ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: ruby -script: bundle exec rake test rvm: - 2.0.0 - 2.1 diff --git a/Gemfile b/Gemfile index 98294b4..76e062f 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ group :test do gem 'pry-byebug', :platform => :mri gem 'rspec' gem 'rspec-autotest' + gem 'rubocop', '~> 0.30.0' end gemspec diff --git a/Rakefile b/Rakefile index df33fd0..5a274b6 100644 --- a/Rakefile +++ b/Rakefile @@ -1,12 +1,11 @@ -require "bundler/gem_tasks" -require "rspec/core/rake_task" -require_relative "lib/tasks/generate_huffman_table" - -desc "Run all RSpec tests" -RSpec::Core::RakeTask.new(:spec) - -task :default => :spec -task :test => [:spec] - +require 'bundler/gem_tasks' +require 'rspec/core/rake_task' +require 'rubocop/rake_task' require 'yard' +require_relative 'lib/tasks/generate_huffman_table' + +RSpec::Core::RakeTask.new +RuboCop::RakeTask.new YARD::Rake::YardocTask.new + +task default: [:spec, :rubocop]