Rails 플러그인 개발 과정
- 플러그인 초기화 및 설정:
rails plugin new yaffle
명령으로 플러그인 스켈레톤을 생성하고gemspec
파일의 필수 정보를 업데이트합니다.bundle install
후bin/test
를 통해 초기 환경이 올바르게 설정되었는지 확인합니다.
String
클래스 확장 예시 (to_squawk
메서드):- 테스트 주도 개발(TDD) 방식으로
yaffle/test/core_ext_test.rb
에 실패 테스트를 먼저 작성합니다. yaffle/lib/yaffle.rb
에require "yaffle/core_ext"
를 추가하고,yaffle/lib/yaffle/core_ext.rb
파일에String
클래스의to_squawk
인스턴스 메서드를 구현합니다.bin/test
로 테스트 통과를 확인하고,bin/rails console
에서 실제 동작을 검증합니다.
- 테스트 주도 개발(TDD) 방식으로
Active Record
모델 확장 (acts_as_yaffle
패턴):acts_as_yaffle
모듈 정의:ActiveSupport::Concern
을 활용하여Yaffle::ActsAsYaffle
모듈을 생성합니다. 이 모듈은acts_as_yaffle
클래스 메서드를 통해 모델에yaffle_text_field
설정을 제공하며, 기본값은:last_squawk
입니다.- 테스트 모델 연동:
test/dummy
앱에서 필요한Active Record
모델(예:Hickwall
,Wickwall
)을 생성하고 마이그레이션을 수행합니다.ApplicationRecord
에Yaffle::ActsAsYaffle
을 포함시키고, 각 모델에서acts_as_yaffle
을 호출하여 플러그인 기능을 활성화합니다. squawk
메서드 구현:Yaffle::ActsAsYaffle
모듈의included
블록 내에squawk
인스턴스 메서드를 구현하여yaffle_text_field
에 값을 저장하는 로직을 추가합니다.bin/test
를 실행하여acts_as_yaffle
패턴에 대한 모든 테스트가 통과하는지 최종 확인합니다.
- 배포 및 문서화:
- 플러그인에
lib/generators
디렉토리를 통해 제너레이터를 포함할 수 있습니다. - 개발 중인 플러그인은
Gemfile
에서 Git 저장소 경로를 지정하여 공유할 수 있으며, 최종적으로bundle exec rake release
명령을 통해 RubyGems에 정식 배포합니다. README
파일을 상세히 작성하고,RDoc
주석을 활용하여 코드 문서를 생성함으로써 사용자 편의성을 높입니다.
- 플러그인에