Ruby on Rails 스터디 노트
  • Ruby on Rails 스터디 노트
  • 리소스
  • 릴리즈 노트 번역
    • 5.1
    • 5.2
    • 6.0 (Alpha)
  • Concern 사용하기
  • Gems
    • RuboCop
    • Annotate Model
    • Rails ERD
  • Model
    • UNIX Time (Milliseconds) 사용하기
  • Model Design
    • History Source
    • STI (Single Table Inheritance)
    • MTI (Multiple Table Inheritance)
    • Polymorphic Association
Powered by GitBook
On this page
  • 설치
  • 설정 파일
  • 사용법
  • 설정 파일 리소스
  1. Gems

RuboCop

PreviousConcern 사용하기NextAnnotate Model

Last updated 6 years ago

은 루비 코드 정적 분석기이다.

프로젝트마다 이러한 도구의 룰(Cop이라 부름)셋을 잘 설정해두면 코드 스타일 가이드로써 큰 역할을 한다.

코드 스타일을 명시적으로 제한해서 일관성을 향상 시키는 건 물론, 자동화가 가능하니 CI 통합을 통해 코드 리뷰에 들어가는 비용을 큰 폭으로 줄일 수 있기에 선택 아닌 필수인 도구 중 하나 이다.

  • 문서: 문서 구려

설치

gem install rubocop

번들러 사용 시 Gemfile에 추가 후 bundle install

gem 'rubocop', require: false

설정 파일

프로젝트 루트에 .rubocop.yml 파일을 추가해서 설정을 변경할 수 있다.

레일즈 설정은 기본으로 내장된 Cop 중에 가 있으니 이걸 사용하면 된다.

기본 설정에서는 Ruby 2.4 버전을 타겟으로 하는 데 각자 프로젝트에 맞는 루비 버전으로 변경해주면 좋다.

+AllCops:
+  TargetRubyVersion: 2.5
+  Exclude:
+    - 'db/schema.rb'
+    - 'node_modules/**/*'
+
+Rails:
+  Enabled: true

사용법

rubocop # bundle exec rubocop

실행하면 기본 출력 포맷으로 분석결과를 보여준다.

또한 --auto-correct 옵션을 통한 자동 코드 포매팅도 지원하니 pre-commit hook 등과 연계해도 좋다.

rails g rubocop:install

위처럼 레일즈 제너레이터를 사용해서 Rake 태스크로 통합할 수도 있다.

$ rake -T

rake rubocop                            # Run RuboCop
rake rubocop:auto_correct               # Auto-correct RuboCop offenses

설정 파일 리소스

위의 레일즈 공식 설정파일 외에도, 빅브라더들이 오픈소스로 공개한 스타일 가이드가 있으니 팔로우 하거나 확장해서 사용하면 좋다.

(RuboCop 기본 설정)

RuboCop
http://docs.rubocop.org/en/latest/
레일즈 전용 카테고리
Ruby 커뮤니티 코드 스타일 가이드
Rails 코드 스타일 가이드
GitHub 코드 스타일 가이드
AirBnB 코드 스타일 가이드