2012-11-21 4 views
0

iCalendar gem을 사용하여 iCal file에서 이벤트를 가져 오는 rake 태스크 설정이 있습니다. iCal에는 표준 .ics 필드 외에도 여러 개의 사용자 정의 필드가 있습니다. 그 값들을 가져올 수 있습니까? 나는 문제없이 처리 할 수있는 iCal의 파일이 같은Ruby/Rails 레이크 태스크를 통해 사용자 정의 필드로 iCalendar를 구문 분석

라인 :이 문제는이 같은 라인에 대한 발생

DESCRIPTION:The lions and tigers are on exhibit. 

: 나는 정의를 참조 할 방법

X-TRUMBA-CUSTOMFIELD;NAME="Event Location";ID=10831;TYPE=SingleLine:Lower Level\, 
across from the Stars and Stripes Cafe 

을 "이벤트 위치 " 들?

desc "Import events from Smithsonian" 
task :smithsonian => :environment do 
    url = "http://www.trumba.com/calendars/smithsonian-events.ics" 
    cals = Icalendar.parse(open(url)) 
    cal = cals.first 

    cal.events.each do |event| 
    e = TempEvent.find_or_create_by_name(
      :name   => event.summary.to_s, 
      :description => event.description.to_s, 
      :starts_at => event.dtstart.to_s, 
      :ends_at  => event.dtend.to_s, 
      :tag_list  => event.categories, 
      :url   => event.url, 
      :facebook_url => "https://www.facebook.com/Smithsonian", 
      :twitter_url => "https://twitter.com/smithsonian", 
      :venue_name => "Smithsonian", 
      :external_id => event.uid.to_s, 
      :source  => "Smithsonian iCal import", 
      :published => true) 
    end 
end 

답변

1

사용 icalendar 보석 :

는 여기에 내가 지금까지 가지고있는 코드입니다. 이 유형

주최자의 속성이 존재한다고 가정
, CN = ABC : MAILTO : [email protected]

파라미터 판독 값에 액세스하고 iCal의 파일을 구문 분석. 이제

event = cal.events.first

cal = Icalendar.parse(cal_file).first

는 event.organizer 나에게 URI를 제공합니다.

는 CN 값의 사용에 액세스하려면

event.organizer.ical_params["CN"][0]