점심 메뉴/메뉴
-> 근처에 있는 메뉴 중에 하나를 선택해서 보여준 것
- rest-client, json, nokogiri
- 다음 웹툰, 네이버 웹툰에서 웹툰 데이터를 크롤링한다.
- 두 사이트에서 받아온 데이터 형태를 일치시킨다. 데이터는 (웹툰제목, 썸네일 이미지, 웹툰을 볼 수 있는 링크)
- 랜덤으로 비복원 추출으르 하려면 배열 형태로 데이터를 만든다.
- 배열 안에 있는 웹툰 1개의 데이터는 해쉬(딕셔너리)형태로 만든다.
- 웹툰 3개를 뽑아서 태그를 이용해서 표로 보여준다.
- 각 요일 별 추출하기
- 버튼에 일~토요일까지 버튼을 만들고 /webtoon?day=mon 의 형태로 접속하면 월요일 웹툰만 샘프링하도록
-
데이터는 기본적으로 1번만 받아온다.
-
만약에 데이터가 있으면, 전체 목록을 불러오는 /로 리디렉션을 해준다.
-
만약에 데이터가 없으면, 모든 정보를 저장하는 CSV파일을 새로 만들어준다.
1. 신의탑, 네이버어디, 누구, 누구, 링트, 네이버 2. 롱리브더킹, 카카오어디,누구,누구, 링크,카카오 ...
-
CSV파일이 새로 만들어 졌을 때
해시에서는 키 값으로 어떤 객체를 사용해도 상관없지만, 배열은 정수(integer)만 사용할 수 있다. 해시 리터럴은 대괄호 대신 중괄호
{ }
를 사용한다. => 기호의 왼쪽에 있는 것이 키이고, 오른쪽은 값이다. 특정 해시 안에서 키는 유일한 값이어야 한다. 주어진 키에 해당하는 객체가 없을 때는 기본적으로 nil을 반환한다.instSection = { ‘첼로‘ => ‘현악기‘, ‘클라리넷‘ => ‘관악기‘, ‘드럼‘ => ‘타악기‘, ‘오보에‘ => ‘관악기‘, ‘트럼펫‘ => ‘금관악기‘, ‘바이올린‘ => ‘현악기‘ }
메서드에서는 루비의
yield
문을 이용해서 코드 블록을 여러 차례 실행할 수 있다.yield
문은 현 위치의 메서드와 결합되어 있는 코드 블록을 불러오는 메서드 호출 로 생각해도 무방하다.def call_block puts “Start of method“ yield yield puts “End of method“ end call_block { puts “In the block“ }
결과는 아래와 같다. 코드 불록 안에 있는 코드
puts “In the blocks”
는yield
가 불릴 때마다 한 번씩 실행한다.Start of method In the block In the block End of method
코드 블록을 반복자(Iterators)를 구현하기 위해 사용한다.
반복자란 배열 등의 집합에서 구성요소를 하나씩 반환해주는 함수
a = %w{개미 벌 고양이 개 엘크} # 배열을 생성 a.each {|animal| puts animal } # 배열의 내용을 반복
콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템. CDN 이란 용어는 필요한 자바스크립트 라이브러리 또는 스타일시트 파일을 자신의 서버에 두지 않고 다른 사이트에서 가져올 때 사용한다.
yield
메소드는 레이아웃에서 뷰에 삽입해야할 장소를 지정할 때 사용합니다.yield
의 가장 단순한 사용법으로는yield
를 하나만 사용하고, 지정된 뷰의 컨텐츠 전체를 그 위치에 삽입하는 것입니다.yield
을 여러 곳에서 호출하는 레이아웃을 작성할 수도 있습니다.뷰의 메인 부분은 언제나 '이름이 없는'
yield
에서 랜더링 됩니다. 컨텐츠를 이름이 붙어있는yield
로서 랜더링 하는 경우에는content_for
메소드를 사용합니다.파일을 지정할 때, 구체적인 이름 대신에 여러 파일을 동시에 지정할 목적으로 사용하는 특수 기호.
*',
?' 따위.