루비에게 영화가왔다 🎉

Ruby 2.6.3 릴리스



2019/04/17 (수)에 Ruby 2.6.3이 출시되었습니다.
  • Ruby 2.6.3 릴리스

  • 주요 변경 사항은

    이 릴리스에서는 일본의 신원호 「영화」의 서포트를 추가하고 있습니다. 구체적으로는 유니코드 버전을 12.1 베타(#15195)로 업데이트하고 date 라이브러리를 업데이트합니다(#15742).

    라는 것입니다.

    마침내 Ruby에 령화가 왔습니다!



    확인



    유니코드 정보



    「영화」의 합자 1인 U+32FF 가 Unicode 12.1 으로 예약되어 있습니다. 그리고 Ruby 2.6.3은 베타 버전인 Unicode 12.1 beta를 지원합니다.

    Ruby 2.6.2


    "\u32FF"
    #=> "\u32FF"
    

    Ruby 2.6.3


    # 2019/04/18 (木) 時点では、ほとんどのフォントがまだ U+32FF (令和の合字) に対応していないので
    # ほとんどの環境で豆腐になってしまう。
    "\u32FF"
    #=> "㋿"
    
    # NFKD で Unicode 正規化すると……
    "\u32FF".unicode_normalize(:nfkd)
    #=> "令和"
    

    2017 년 4 월 45 일 74 일.

    Date 정보



    Date#jisx0301 메소드로 화력( JIS X 0301 형식)을 취득할 수 있습니다만, 이것이 령화에 대응했습니다.

    Ruby 2.6.2


    require 'date'
    
    Date.new(2019, 4, 30).jisx0301
    #=> "H31.04.30"
    
    Date.new(2019, 5, 1).jisx0301
    #=> "H31.05.01"
    

    Ruby 2.6.3


    require 'date'
    
    Date.new(2019, 4, 30).jisx0301
    #=> "H31.04.30"
    
    Date.new(2019, 5, 1).jisx0301
    #=> "R01.05.01"
    

    R01 키타 -



    Date 객체를 일본 달력 문자열로 변환하는 메서드를 구현해 보았습니다.
    def wareki(date)
      era_initials = %w[M T S H R]
      era_names = %w[明治 大正 昭和 平成 令和]
      wday_names = %w[日 月 火 水 木 金 土]
      jisx0301_pattern = /\A([A-Z]?)(\d+)[\.-](\d+)[\.-](\d+)\z/
    
      era_initial, year, month, day = date.jisx0301.match(jisx0301_pattern).captures
      era_name = era_initials.zip(era_names).to_h[era_initial]
      wday_name = wday_names[date.wday]
    
      format('%s%d年%d月%d日(%s)', era_name, year, month, day, wday_name)
    end
    
    require 'date'
    
    wareki(Date.new(1872, 12, 31))
    #=> "1872年12月31日(火)"
    wareki(Date.new(1873, 1, 1))
    #=> "明治6年1月1日(水)"
    wareki(Date.new(2019, 4, 30))
    #=> "平成31年4月30日(火)"
    wareki(Date.new(2019, 5, 1))
    #=> "令和1年5月1日(水)"
    


    ( U+337C ) 이나 ( U+337B ) 와 같이 복수의 문자를 합성해 한 문자로 한 문자입니다.

    좋은 웹페이지 즐겨찾기