Created by Sebastian Korfmann / @skorfmann
“Role models are important.”
Officer Alex J. Murphy / RoboCop
RuboCop is a Ruby static code analyzer.
class MyClass
attr_accessor :name
def initalize name
self.name = name
end
def name
name.upcase
rescue
end
def greet
return 'Hello'+name
end
end
rubocop --format offences 1 SpaceAroundOperators 1 RedundantReturn 1 HandleExceptions 1 MethodDefParentheses 1 Documentation
Ruby Example:
# starting point (line is too long)
def send_mail(source)
Mailer.deliver(to: 'bob@example.com', from: 'us@example.com', subject: 'Important message', body: source.text)
end
# good (normal indent)
def send_mail(source)
Mailer.deliver(
to: 'bob@example.com',
from: 'us@example.com',
subject: 'Important message',
body: source.text
)
end
Rails Example
# bad validates_presence_of :email # good validates :email, presence: true
Add it to your project
#Gemfile gem 'rubocop'
rubocop --auto-gen-config
#./rubocop-todo.yml # Offence count: 3 AccessorMethodName: Enabled: false # Offence count: 7 # Cop supports --auto-correct. AlignArray: Enabled: false # Offence count: 20 # Cop supports --auto-correct. # Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle. AlignHash: Enabled: false #...
#./rubocop-settings.yml HashSyntax: EnforcedStyle: hash_rockets Style/SpaceInsideHashLiteralBraces: EnforcedStyle: no_space Style/NumericLiterals: Enabled: false Style/SignalException: Enabled: false Metrics/ClassLength: CountComments: false Max: 150 #...
Violate the Styleguide on purpose:
# rubocop:disable RescueModifier if (entity rescue nil) # rubocop:enable RescueModifier