Skip to content

Commit

Permalink
Merge pull request #37 from aitbw/aitbw/introduce-rubocop
Browse files Browse the repository at this point in the history
Add Rubocop for linting
  • Loading branch information
kennyadsl authored May 10, 2019
2 parents acef09c + a979b4c commit 6225ff9
Show file tree
Hide file tree
Showing 28 changed files with 401 additions and 37 deletions.
319 changes: 319 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,319 @@
# Relaxed.Ruby.Style

AllCops:
Exclude:
- 'spec/dummy/**/*'
- 'bin/**'
TargetRubyVersion: 2.2

# Sometimes I believe this reads better
# This also causes spacing issues on multi-line fixes
Style/BracesAroundHashParameters:
Enabled: false

# We use class vars and will have to continue doing so for compatability
Style/ClassVars:
Enabled: false

# We need these names for backwards compatability
Naming/PredicateName:
Enabled: false

Naming/AccessorMethodName:
Enabled: false

# This has been used for customization
Style/MutableConstant:
Enabled: false

Style/ClassAndModuleChildren:
Enabled: false

Style/EmptyElse:
Enabled: false

Style/GuardClause:
Enabled: false

Style/Next:
Enabled: false

Style/NumericPredicate:
Enabled: false

Style/WordArray:
Enabled: false

Style/ConditionalAssignment:
Enabled: false

Performance/Count:
Enabled: false

Style/RaiseArgs:
Enabled: false

Naming/BinaryOperatorParameterName:
Enabled: false

# We can use good judgement here
Style/RegexpLiteral:
Enabled: false

# Unicode comments are useful
Style/AsciiComments:
Enabled: false

Layout/EndAlignment:
Enabled: false

Layout/ElseAlignment:
Enabled: false

Layout/IndentationWidth:
Enabled: false

Layout/AlignParameters:
Enabled: false

Layout/ClosingParenthesisIndentation:
Enabled: false

Layout/MultilineMethodCallIndentation:
Enabled: false

Layout/IndentArray:
Enabled: false

Layout/IndentHash:
Enabled: false

Layout/AlignHash:
Enabled: false

Style/TrailingCommaInArguments:
Enabled: false

Style/TrailingCommaInArrayLiteral:
Enabled: false

Style/TrailingCommaInHashLiteral:
Enabled: false

# Symbol Arrays are ok and the %i syntax widely unknown
Style/SymbolArray:
Enabled: false

Rails/DynamicFindBy:
Whitelist:
- find_by_param
- find_by_param!

# We use a lot of
#
# expect {
# something
# }.to { happen }
#
# syntax in the specs files.
Lint/AmbiguousBlockAssociation:
Exclude:
- '*/spec/**/*'
- 'spec/**/*' # For the benefit of apps that inherit from this config

# We use eval to add common_spree_dependencies into the Gemfiles of each of our gems
Security/Eval:
Exclude:
- 'Gemfile'
- 'common_spree_dependencies.rb'
- '*/Gemfile'

Naming/VariableNumber:
Enabled: false

# Write empty methods as you wish.
Style/EmptyMethod:
Enabled: false

# From http://relaxed.ruby.style/

Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias

Style/BeginBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylebeginblock

Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters

Style/Documentation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledocumentation

Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition

Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation

Style/EndBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleendblock

Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring

Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier

Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda

Style/ModuleFunction:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemodulefunction

Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain

Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif

Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile

Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment

Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters

Style/PerlBackrefs:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleperlbackrefs

Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon

Style/SignalException:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesignalexception

Style/SingleLineBlockParams:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelineblockparams

Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods

Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces

Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens

Style/SpecialGlobalVars:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespecialglobalvars

Style/StringLiterals:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylestringliterals

Style/SymbolProc:
Enabled: false

Style/TernaryParentheses:
Enabled: false

Style/WhileUntilModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewhileuntilmodifier

Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral

Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition

Metrics/AbcSize:
Enabled: false

Metrics/BlockNesting:
Enabled: false

Metrics/ClassLength:
Enabled: false

Metrics/ModuleLength:
Enabled: false

Metrics/BlockLength:
Enabled: false

Metrics/CyclomaticComplexity:
Enabled: false

Metrics/LineLength:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/ParameterLists:
Enabled: false

Metrics/PerceivedComplexity:
Enabled: false

Bundler/OrderedGems:
Enabled: false

Style/NumericLiterals:
Enabled: false

Style/FrozenStringLiteralComment:
Enabled: true
EnforcedStyle: always

# json.() is idiomatic in jbuilder files
Style/LambdaCall:
Enabled: false

Naming/UncommunicativeMethodParamName:
AllowedNames:
- id
- to
- _

# Rubocop doesn't understand side-effects
Style/IdenticalConditionalBranches:
Enabled: false

Naming/MemoizedInstanceVariableName:
Enabled: false

Lint/UselessComparison:
Enabled: false

Lint/HandleExceptions:
Enabled: false
8 changes: 3 additions & 5 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# frozen_string_literal: true

source 'https://rubygems.org'

branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
gem 'solidus', git: 'https://github.com/solidusio/solidus.git', branch: branch
gem 'solidus_auth_devise'

if branch < 'v2.5'
gem 'factory_bot', '4.10.0'
else
gem 'factory_bot', '> 4.10.0'
end
gem 'factory_bot', (branch < 'v2.5' ? '4.10.0' : '> 4.10.0')

if ENV['DB'] == 'mysql'
gem 'mysql2', '~> 0.4.10'
Expand Down
2 changes: 2 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'bundler'
Bundler::GemHelper.install_tasks

Expand Down
8 changes: 5 additions & 3 deletions app/models/solidus_easypost/estimator.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# frozen_string_literal: true

module SolidusEasypost
class Estimator
def shipping_rates(package, frontend_only = true)
def shipping_rates(package, _frontend_only = true)
shipment = package.easypost_shipment
rates = shipment.rates.sort_by { |r| r.rate.to_i }

Expand All @@ -9,7 +11,7 @@ def shipping_rates(package, frontend_only = true)
if rates.any?
rates.each do |rate|
spree_rate = Spree::ShippingRate.new(
name: "#{ rate.carrier } #{ rate.service }",
name: "#{rate.carrier} #{rate.service}",
cost: rate.rate,
easy_post_shipment_id: rate.shipment_id,
easy_post_rate_id: rate.id,
Expand All @@ -36,7 +38,7 @@ def shipping_rates(package, frontend_only = true)
# Shipping method based on the admin(internal)_name. This is not user facing
# and should not be changed in the admin.
def find_or_create_shipping_method(rate)
method_name = "#{ rate.carrier } #{ rate.service }"
method_name = "#{rate.carrier} #{rate.service}"
Spree::ShippingMethod.find_or_create_by(admin_name: method_name) do |r|
r.name = method_name
r.available_to_users = false
Expand Down
2 changes: 2 additions & 0 deletions app/models/spree/address_decorator.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module Spree
module EasyPost
module AddressDecorator
Expand Down
2 changes: 2 additions & 0 deletions app/models/spree/package_decorator.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module Spree
module Stock
module PackageDecorator
Expand Down
Loading

0 comments on commit 6225ff9

Please sign in to comment.