Runtime Option

환경 변수 옵션은 보이지 않는 입력이므로 우선순위를 고정한다

minigrep의 대소문자 무시 검색은 기본값, 환경 변수, 명령줄 인수, 테스트가 서로 어떤 책임을 갖는지 정해야 예측 가능한 기능이 됩니다.

01

기본 동작

아무 설정이 없으면 대소문자를 구분하는 검색을 수행합니다.

search
02

환경 변수

IGNORE_CASE가 있으면 Config가 ignore_case를 true로 둡니다.

env::var
03

명령줄 옵션

옵션을 추가한다면 env보다 우선할지 명시적으로 정합니다.

precedence
04

검색 분기

Config 값 하나로 search와 search_case_insensitive를 선택합니다.

run()

테스트가 지켜야 할 것

  • case_sensitive는 기존 동작을 계속 통과해야 합니다.
  • case_insensitive는 질의어와 본문 양쪽의 대소문자 차이를 확인합니다.
  • Config 테스트를 추가하면 env 없음과 있음의 기본값을 분리할 수 있습니다.

설정 입력 매트릭스

환경 변수 없음 is_ok()가 false, 일반 검색으로 실행
IGNORE_CASE 설정 값 자체보다 존재 여부로 대소문자 무시 검색 선택
추가 CLI 옵션 충돌 시 우선권을 문서와 테스트로 고정