최초의 CLI 구축
소개하다.
약 두 달 전에, 나는 Flatiron의 소프트웨어 공학 프로젝트를 시작했다.이 프로젝트에서 나는 기본적으로 인코딩 기술과 지식이 없다.지난 두 달 동안 Ruby를 배워 왔고 이제 제 첫 CLI를 구축했습니다.My CLI는 amakeup API에서 추출되므로 사용자가 특정 요구 사항에 맞는 특정 레이블을 탐색할 수 있습니다.레이블을 선택하면 해당 레이블에 대한 제품 유형 목록이 사용자에게 제공됩니다.제품 유형을 선택하면 브랜드, 설명, 사이트 링크를 포함한 제품의 상세한 목록을 보여 줍니다.
이것은 나의 첫 번째 프로젝트이기 때문에github, 환경과 전체 인코딩 방면에 약간의 학습 곡선이 있다.CLI를 구축할 때 유용한 것들을 많이 만났는데 여러분과 공유하고 싶습니다.
시스템(지우기)
터미널 응용 프로그램에 있어서 가장 좋은 일은 코드에서 이루어지는 것이다
system("clear")
.나는 사용자의 입력을 받은 후 바로 이 코드를 놓았기 때문에 사용자가 선택한 정보를 표시하기 전에 터미널 창이 지워진다.사용자가 입력을 터미널에 입력한 후에 터미널을 깨끗하고 읽기 쉽게 보일 수 있다.이렇게 작은 것이 나의 CLI에 커다란 영향을 미쳤다.각 교체기, 매핑/수집, 선택
자주 사용하는 교체기와 그 반환과 실행을 배우는 것은 교체 집합에 매우 유용하다.CLI를 구축하는 동안 저는
.collect
및 .select
를 사용하여 API에서 정보를 수집했습니다.각각
.each
블록 내수 그룹의 모든 요소를 처리하는 데 사용됩니다.array = [1, 2, 3, 4, 5]
array.each {|x| puts x}
output =>
1
2
3
4
5
return =>
[1, 2, 3, 4, 5]
주의해야 할 점은 .each
호출된 원시 그룹의 대상을 되돌려주는 것이다.방법 결과를 포함하는 그룹을 되돌려보내려면 빈 그룹을 가진 새 변수를 만들고 그 결과를 이 그룹으로 보내야 합니다.array = [1, 2, 3, 4, 5]
new_arr = []
array.each {|x| new_arr << x*2}
new_arr
output =>
return =>
[2, 4, 6, 8, 10]
프로젝트에서 자주 사용하는 .each
교체기는 .each_with_index
입니다.이렇게 하면 CLI에서 목록 메뉴와 제품 목록을 생성할 수 있도록 내 정보 배열을 교체할 수 있습니다.다음 예시 .each_with_index
는 그룹의 모든 요소의 숫자 목록을 인쇄하기 위해 그룹과 함께 사용합니다.x
는 수조의 모든 요소를 나타내고 i
는 모든 요소에 대응하는 색인을 나타낸다.번호 목록을 인쇄하려면 0부터 시작하는 색인을 설명하기 위해 1을 색인에 추가해야 합니다.array = ["a", "b", "c", "d", "e"]
array.each_with_index {|x, i| puts "#{i + 1}. #{x}"}
output =>
1. a
2. b
3. c
4. d
5. e
return =>
["a", "b", "c", "d", "e"]
지도/수집
.collect
또는 .map
방법은 우리가 .each
와 같은 그룹을 교체할 수 있도록 허락하지만 .collect
는 새로운 그룹과 교체기의 결과를 되돌려줍니다..collect
와.map
는 동일하여 교환하여 사용할 수 있습니다.내 CLI에서, 이 교체기는 매우 유용해서, 나의 집합 수조에서 교체를 진행하여, 나의 API 해시에서 더욱 깊은 정보를 포함하는 새로운 수조를 얻을 수 있다.array = [1, 2, 3, 4, 5]
new_arr = array.collect {|x| x*2}
new_arr
output =>
return =>
[2, 4, 6, 8, 10]
선택 항목
이거.select 방법은 수조에서 교체되고 블록에서 지정한 문장이true인 모든 요소를 가져옵니다.이것은 이 블록을 만족시키는 모든 요소를 포함하는 새 그룹을 되돌려줍니다.
array = [1, 2, 3, 4, 5]
new_arr = array.select {|x| x.even?}
new_arr
output =>
return =>
[2, 4]
찾아내다
.find
방법은 .select
방법과 유사하지만 블록을 만족시키는 첫 번째 요소를 되돌려주고 교체를 멈춘다.그것은 그룹을 되돌려주지 않을 뿐만 아니라, 이 블록을 만족시키는 모든 요소를 되돌려주지 않을 것이다.다음 예시에서 되돌아오는 값은 2이고, 수조에 있지 않으며, 4를 되돌아오지 않는다.array = [1, 2, 3, 4, 5]
new_arr = array.select {|x| x.even?}
new_arr
output =>
return =>
2
포장보석
내 API에 대해 나는 항목마다 설명을 추출한다. 이것은 긴 문자열이다.내가 겪은 문제는 문자열이 터미널 가장자리에 닿았을 때 단어 중간에 끊어진 것을 설명하는 것이다.word_wrap gem는 이 문제를 해결하는 보석이다.gem의 기능은 gem의 이름입니다. 텍스트를 터미널에 설정한 너비로 포장합니다.
마지막으로...
CLI를 완료한 후에 다른 CLI 방법을 사용할 수 있다는 것을 깨달았습니다.사람들이 내 코드를 보고 CLI의 일부 부분을 강제로 사용했다는 것을 깨달았지만, 나는 아직 초보자이다.나중에 코드를 개선할 수도 있지만 현재 CLI는 완벽한 기능을 갖춘 최종 제품이며 제 첫 번째 CLI로 완성된 것 같습니다.
Reference
이 문제에 관하여(최초의 CLI 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anglam/building-my-first-cli-1lbk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)