Ruby에서 Cookie 값을 JSON 포맷으로 변환하기(Cookie format to JSON with hash!)

테스트하던 코드 생각나서 정리해둡니다. Ruby에서 Cookie format의 데이터를 JSON으로 변환하기 위해선 hash를 이용해서 간단하게 만들 수 있습니다.

require 'json'

def cookie_to_json cookie
  # cookie 데이터를 hash로 만들기 위한 hash 객체 하나를 만들어줍니다.
  output = Hash.new 
  # cookie 데이터를 세미콜론 기준으로 잘라서 each-do 문에 넣어줍니다.
  cookie.split(/\s*;\s*/).each do |row|
    # 세미 콜론 단위로 자르면 각각 쿠키 속성과 값이 하나의 array로 넘어오며 다시 =(equal) 단위로 잘라줍니다.
    row = row.split(/\s*=\s*/) 
    output[row[0]] = row[1].sub('=','') # cookie => hash
    # 아래 입력값 예시대로면 아래와 같은 형태의 값이 들어가며
   # row[0] : sessions
   # row[1] : =abcd1234 
   # sub 메소드로 맨앞에 = 을 날려줍니다. 
  end
  # output에는 hash 형태로 저장했기 때문에 json 라이브러리에서 제공하는 to_json을 사용할 수 있습니다. 
  # to_json 으로 바꿔서 return 합니다.
  output.to_json # hash => json return
end

puts cookie_to_json "sessions=abcd1234; role=adminzzzz;"