TIL

# 211116 TIL ([Ruby, slim] if/else 사용하기, 코드 중복 줄이기)

장기현장실습

PLSnote 이슈

#2876 OKR맵에서 수정해야하는 글자 이슈 코드리뷰  수정 

  • 기존에 작성한 _team_plans.html.slim 파일의 if/else 문은 코드 중복이 있고, 이를  간단하게 하기 위해 조건문 부분을 plans_helper.rb 파일에 따로 선언함 
    • 루비에서는 if/else 문을 사용하고 나서도 end를 붙여줘야 에러가 나지 않음
      def sort_by_type  
      	type = if @map.is_selected_navigation_category_a_project_related?(current_user) 
      		@map.okr_map? ? 'objective' : 'project' 
      	else 
      		'team'
      	end 
      	"plans.index.sort_by_#{type}_name" 
      end
    • 위의 루비 코드를 슬림에서 가져다 사용하여 코드 중복되는 부분을 없앰
      = link_to t(sort_by_type), set_plan_option_map_path(@map, show_plan: session[:show_plan], sort_options_for_plans: "#{@map.is_selected_navigation_category_a_project_related?(current_user) ? 'project' : 'team'}_name"), class: "#{'active' if session[:sort_options_for_plans] == "project_name"} dropdown-item", method: :put

 

PLSnote 관련 미팅

다같이 해결할 이슈에 대해 이야기하기 

  • #2644 그룹에 탈퇴신청을 하고 일정기간이 지나면 탈퇴가 되는 기능 이슈 파악  알고리즘 정리 + 역할분담 
    • UI (나)
      • 사용자 기준: 탈퇴신청 UI 추가 + 30일 이후에 버튼이 나오도록 하는 기능 
      • 그룹관리자 기준: 장기미사용 UI 추가 / 탈퇴신청날짜 UI (사용자가 탈퇴신청을  경우에 나타나는 UI ... 탈퇴기능은 이미 있기 때문)  
    • 기능 
      • (다른 개발자님) 장기미사용 표시 알고리즘 - 매일 12시에 그룹 사용자에게 +1을 하고, 사용자가 다음날 12시가 되기 전에 어떤 action을 하면 기존 값을 0을 바꾼다. 30을 채우면 장기미사용 표시를 준다. 
      • (개발자님/나) 60일 후 자동 탈퇴 처리 알고리즘 - 사용자가 탈퇴신청을 하면 job을 생성되게 한다. 여기서 job은 60일(60.day)뒤에 삭제 되도록 하는 것. 만약 60일 전에 그룹관리자가 탈퇴를 먼저하면 job 같이 지워준다. 
      • (개발자/나) 탈퇴신청철회 알고리즘 (사용자/그룹관리자 각각) - 맵 복원하기 기능처럼 탈퇴신청을 취소하면 job이 사라지도록 하게 한다. (map_manager/maps_controller.rb 에서 destory, restore 참고)